From decc114888f4378611c0f885cde306840f222af3 Mon Sep 17 00:00:00 2001 From: dotansimha Date: Tue, 24 Jan 2017 22:47:18 +0200 Subject: [PATCH] Step 13.16: Implement upload method --- src/services/picture.ts | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/services/picture.ts b/src/services/picture.ts index 75396609e..43c37d10b 100644 --- a/src/services/picture.ts +++ b/src/services/picture.ts @@ -2,6 +2,9 @@ import { Injectable } from '@angular/core'; import { Platform } from 'ionic-angular'; import { ImagePicker } from '@ionic-native/image-picker'; import { UploadFS } from 'meteor/jalik:ufs'; +import { PicturesStore } from 'api/collections'; +import * as _ from 'lodash'; +import { DEFAULT_PICTURE_URL } from 'api/models'; @Injectable() export class PictureService { @@ -29,7 +32,23 @@ export class PictureService { } upload(blob: File): Promise { - return Promise.resolve(); + return new Promise((resolve, reject) => { + const metadata: any = _.pick(blob, 'name', 'type', 'size'); + + if (!metadata.name) { + metadata.name = DEFAULT_PICTURE_URL; + } + + const upload = new UploadFS.Uploader({ + data: blob, + file: metadata, + store: PicturesStore, + onComplete: resolve, + onError: reject + }); + + upload.start(); + }); } convertURLtoBlob(url: string, options = {}): Promise {