UNPKG

ngx-firebase-cms

Version:

Angular Content Management System using Google Firebase (Authentication, Storage & Firestore)

164 lines 11.5 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; import { NzMessageService } from 'ng-zorro-antd'; import { AngularFireStorage } from '@angular/fire/storage'; import { AngularFirestore } from '@angular/fire/firestore'; import { AuthService } from './auth.service'; import { of } from 'rxjs'; import * as firebase from 'firebase/app'; import * as i0 from "@angular/core"; import * as i1 from "./auth.service"; import * as i2 from "@angular/fire/storage"; import * as i3 from "@angular/fire/firestore"; import * as i4 from "ng-zorro-antd"; var FileService = /** @class */ (function () { function FileService(auth, storage, afs, message) { var _this = this; this.auth = auth; this.storage = storage; this.afs = afs; this.message = message; this.beforeUpload = (/** * @param {?} file * @return {?} */ function (file) { if (file['type'] != "image/jpeg") { _this.message.error("File type should be JPEG"); return false; } else if (file['size'] / 1024 / 1024 > 1) { _this.message.error("File size should be less than 1 Mb"); return false; } else { return true; } }); this.massUploadFile = (/** * @param {?} item * @return {?} */ function (item) { /** @type {?} */ var timestamp = new Date().valueOf(); /** @type {?} */ var filePath = "/media/" + timestamp + ".jpeg"; /** @type {?} */ var file = item['file']; /** @type {?} */ var task = _this.storage.upload(filePath, file) .then((/** * @param {?} res * @return {?} */ function (res) { return _this.storage.ref(filePath).getDownloadURL().toPromise(); })) .then((/** * @param {?} url * @return {?} */ function (url) { return _this.save({ title: "Untitled Media", author: _this.auth.uid, mime: file.type, url: url, createdTime: firebase.firestore.FieldValue.serverTimestamp(), type: "media" }); })) .then((/** * @param {?} url * @return {?} */ function (url) { _this.message.success("Successfully upload an image"); })) .catch((/** * @param {?} err * @return {?} */ function (err) { _this.message.error(err); })); return of().subscribe((/** * @param {?} event * @return {?} */ function (event) { if (event['percent'] != 100) { item.onProgress(event, item.file); } else { item.onSuccess(event['body'], item.file, event); } }), (/** * @param {?} err * @return {?} */ function (err) { item.onError(err, item.file); })); }); } /** * @private * @param {?} post * @return {?} */ FileService.prototype.save = /** * @private * @param {?} post * @return {?} */ function (post) { return this.afs.collection("posts").add(post); }; FileService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ FileService.ctorParameters = function () { return [ { type: AuthService }, { type: AngularFireStorage }, { type: AngularFirestore }, { type: NzMessageService } ]; }; /** @nocollapse */ FileService.ngInjectableDef = i0.defineInjectable({ factory: function FileService_Factory() { return new FileService(i0.inject(i1.AuthService), i0.inject(i2.AngularFireStorage), i0.inject(i3.AngularFirestore), i0.inject(i4.NzMessageService)); }, token: FileService, providedIn: "root" }); return FileService; }()); export { FileService }; if (false) { /** @type {?} */ FileService.prototype.beforeUpload; /** @type {?} */ FileService.prototype.massUploadFile; /** * @type {?} * @private */ FileService.prototype.auth; /** * @type {?} * @private */ FileService.prototype.storage; /** * @type {?} * @private */ FileService.prototype.afs; /** * @type {?} * @private */ FileService.prototype.message; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWZpcmViYXNlLWNtcy8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL2ZpbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWlCLGdCQUFnQixFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sS0FBSyxRQUFRLE1BQU0sY0FBYyxDQUFBOzs7Ozs7QUFFeEM7SUFLRSxxQkFDVSxJQUFpQixFQUNqQixPQUEyQixFQUMzQixHQUFxQixFQUNyQixPQUF5QjtRQUpuQyxpQkFLSztRQUpLLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDckIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFPNUIsaUJBQVk7Ozs7UUFBRyxVQUFDLElBQWdCO1lBQ3JDLElBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQVksRUFBRTtnQkFDL0IsS0FBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtnQkFDOUMsT0FBTyxLQUFLLENBQUE7YUFDYjtpQkFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBQyxJQUFJLEdBQUMsSUFBSSxHQUFHLENBQUMsRUFBRTtnQkFDckMsS0FBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQTtnQkFDeEQsT0FBTyxLQUFLLENBQUE7YUFDYjtpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQTthQUNaO1FBQ0gsQ0FBQyxFQUFBO1FBRU0sbUJBQWM7Ozs7UUFBRyxVQUFDLElBQW1COztnQkFDdEMsU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFOztnQkFDaEMsUUFBUSxHQUFHLFlBQVUsU0FBUyxVQUFPOztnQkFDckMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7O2dCQUNqQixJQUFJLEdBQUcsS0FBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztpQkFDL0MsSUFBSTs7OztZQUFDLFVBQUEsR0FBRztnQkFDUCxPQUFPLEtBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFBO1lBQ2hFLENBQUMsRUFBQztpQkFDRCxJQUFJOzs7O1lBQUMsVUFBQSxHQUFHO2dCQUNQLE9BQU8sS0FBSSxDQUFDLElBQUksQ0FBQztvQkFDZixLQUFLLEVBQUUsZ0JBQWdCO29CQUN2QixNQUFNLEVBQUUsS0FBSSxDQUFDLElBQUksQ0FBQyxHQUFHO29CQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7b0JBQ2YsR0FBRyxFQUFFLEdBQUc7b0JBQ1IsV0FBVyxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRTtvQkFDNUQsSUFBSSxFQUFFLE9BQU87aUJBQ2QsQ0FBQyxDQUFBO1lBQ0osQ0FBQyxFQUFDO2lCQUNELElBQUk7Ozs7WUFBQyxVQUFBLEdBQUc7Z0JBQ1AsS0FBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FBQTtZQUN0RCxDQUFDLEVBQUM7aUJBQ0QsS0FBSzs7OztZQUFDLFVBQUEsR0FBRztnQkFDUixLQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUN6QixDQUFDLEVBQUM7WUFDRixPQUFPLEVBQUUsRUFBRSxDQUFDLFNBQVM7Ozs7WUFBQyxVQUFDLEtBQW9CO2dCQUN6QyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDbkM7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDakQ7WUFDSCxDQUFDOzs7O1lBQUUsVUFBQyxHQUFHO2dCQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQixDQUFDLEVBQUMsQ0FBQTtRQUNKLENBQUMsRUFBQTtJQW5ERyxDQUFDOzs7Ozs7SUFFRywwQkFBSTs7Ozs7SUFBWixVQUFhLElBQVU7UUFDckIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDL0MsQ0FBQzs7Z0JBZEYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFQUSxXQUFXO2dCQUhYLGtCQUFrQjtnQkFDbEIsZ0JBQWdCO2dCQUZELGdCQUFnQjs7O3NCQUR4QztDQXdFQyxBQTlERCxJQThEQztTQTNEWSxXQUFXOzs7SUFhdEIsbUNBVUM7O0lBRUQscUNBaUNDOzs7OztJQXZEQywyQkFBeUI7Ozs7O0lBQ3pCLDhCQUFtQzs7Ozs7SUFDbkMsMEJBQTZCOzs7OztJQUM3Qiw4QkFBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVcGxvYWRYSFJBcmdzLCBOek1lc3NhZ2VTZXJ2aWNlLCBVcGxvYWRGaWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZCc7XG5pbXBvcnQgeyBBbmd1bGFyRmlyZVN0b3JhZ2UgfSBmcm9tICdAYW5ndWxhci9maXJlL3N0b3JhZ2UnO1xuaW1wb3J0IHsgQW5ndWxhckZpcmVzdG9yZSB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZmlyZXN0b3JlJztcbmltcG9ydCB7IFBvc3QgfSBmcm9tICcuLi9pbnRlcmZhY2UvcG9zdCc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEh0dHBFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyBmaXJlYmFzZSBmcm9tICdmaXJlYmFzZS9hcHAnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGF1dGg6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmFnZTogQW5ndWxhckZpcmVTdG9yYWdlLFxuICAgIHByaXZhdGUgYWZzOiBBbmd1bGFyRmlyZXN0b3JlLFxuICAgIHByaXZhdGUgbWVzc2FnZTogTnpNZXNzYWdlU2VydmljZVxuICApIHsgfVxuXG4gIHByaXZhdGUgc2F2ZShwb3N0OiBQb3N0KSB7XG4gICAgcmV0dXJuIHRoaXMuYWZzLmNvbGxlY3Rpb24oXCJwb3N0c1wiKS5hZGQocG9zdClcbiAgfVxuXG4gIHB1YmxpYyBiZWZvcmVVcGxvYWQgPSAoZmlsZTogVXBsb2FkRmlsZSk6IGJvb2xlYW4gPT4ge1xuICAgIGlmKGZpbGVbJ3R5cGUnXSAhPSBcImltYWdlL2pwZWdcIikge1xuICAgICAgdGhpcy5tZXNzYWdlLmVycm9yKFwiRmlsZSB0eXBlIHNob3VsZCBiZSBKUEVHXCIpXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9IGVsc2UgaWYgKGZpbGVbJ3NpemUnXS8xMDI0LzEwMjQgPiAxKSB7XG4gICAgICB0aGlzLm1lc3NhZ2UuZXJyb3IoXCJGaWxlIHNpemUgc2hvdWxkIGJlIGxlc3MgdGhhbiAxIE1iXCIpXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbWFzc1VwbG9hZEZpbGUgPSAoaXRlbTogVXBsb2FkWEhSQXJncykgPT4ge1xuICAgIGxldCB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLnZhbHVlT2YoKVxuICAgIGxldCBmaWxlUGF0aCA9IGAvbWVkaWEvJHt0aW1lc3RhbXB9LmpwZWdgXG4gICAgbGV0IGZpbGUgPSBpdGVtWydmaWxlJ11cbiAgICBjb25zdCB0YXNrID0gdGhpcy5zdG9yYWdlLnVwbG9hZChmaWxlUGF0aCwgZmlsZSlcbiAgICAudGhlbihyZXMgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZS5yZWYoZmlsZVBhdGgpLmdldERvd25sb2FkVVJMKCkudG9Qcm9taXNlKClcbiAgICB9KVxuICAgIC50aGVuKHVybCA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5zYXZlKHtcbiAgICAgICAgdGl0bGU6IFwiVW50aXRsZWQgTWVkaWFcIixcbiAgICAgICAgYXV0aG9yOiB0aGlzLmF1dGgudWlkLFxuICAgICAgICBtaW1lOiBmaWxlLnR5cGUsXG4gICAgICAgIHVybDogdXJsLFxuICAgICAgICBjcmVhdGVkVGltZTogZmlyZWJhc2UuZmlyZXN0b3JlLkZpZWxkVmFsdWUuc2VydmVyVGltZXN0YW1wKCksXG4gICAgICAgIHR5cGU6IFwibWVkaWFcIlxuICAgICAgfSlcbiAgICB9KVxuICAgIC50aGVuKHVybCA9PiB7XG4gICAgICB0aGlzLm1lc3NhZ2Uuc3VjY2VzcyhgU3VjY2Vzc2Z1bGx5IHVwbG9hZCBhbiBpbWFnZWApXG4gICAgfSlcbiAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgIHRoaXMubWVzc2FnZS5lcnJvcihlcnIpXG4gICAgfSlcbiAgICByZXR1cm4gb2YoKS5zdWJzY3JpYmUoKGV2ZW50OiBIdHRwRXZlbnQ8e30+KSA9PiB7XG4gICAgICBpZiAoZXZlbnRbJ3BlcmNlbnQnXSAhPSAxMDApIHtcbiAgICAgICAgaXRlbS5vblByb2dyZXNzKGV2ZW50LCBpdGVtLmZpbGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXRlbS5vblN1Y2Nlc3MoZXZlbnRbJ2JvZHknXSwgaXRlbS5maWxlLCBldmVudCk7XG4gICAgICB9XG4gICAgfSwgKGVycikgPT4ge1xuICAgICAgaXRlbS5vbkVycm9yKGVyciwgaXRlbS5maWxlKTtcbiAgICB9KVxuICB9XG59XG4iXX0=