import { Injectable } from '@angular/core'; import { Coupon } from './coupon'; import { ApiProvider } from '../../services/api/api.provider'; import 'rxjs/add/operator/map'; import * as _ from 'lodash'; @Injectable() export class CouponProvider { coupons: Coupon[]; constructor(public apiProvider: ApiProvider) { } create(couponParameters: Coupon ) { // TODO REMOVE let payload = couponParameters.toJson(); let promise = new Promise((resolve, reject) => { this.apiProvider.api('POST', `/v1/coupon` , payload) .then((response: any) => { if (response.id) { // TODO cast to class resolve(response); } else { reject(); } }, (err) => { // catch error // @todo: We should check for errors ?!? reject(err); }); }); return promise; } retrieveByid(couponId: string) { let payload: any = {}; let promise = new Promise((resolve, reject) => { this.apiProvider.api('GET', `/v1/coupon/${couponId}`, payload) .then((response: any) => { if (response.id){ resolve(Coupon.fromJson(response)); }else { reject(); } }, (err) => { // catch error // @todo: We should check for errors ?!? reject(err); }); }); return promise; } retrieveForLoggedUser() { let payload: any = {}; let promise = new Promise((resolve, reject) => { if( _.isUndefined(this.coupons)){ this.apiProvider.api('GET', `/v1/coupons`, payload) .then((response: any) => { this.coupons = _.map((_.values(response)), Coupon.fromJson); console.log(this.coupons); resolve(this.coupons); }, (err) => { // catch error // @todo: We should check for errors ?!? reject(err); }); } else resolve (this.coupons); }); return promise; } changestatus(id: string, status: string){ let payload: any = {}; let promise = new Promise((resolve, reject) => { this.apiProvider.api('PATCH', `/v1/coupon/${id}/status/${status}`, payload) .then((response: any) => { const coupon = Coupon.fromJson(response); const position = this.coupons.findIndex((item) => { return item.id === coupon.id; }); this.coupons.splice(position, 1, coupon); console.log(coupon); resolve(coupon); }, (err) => { // catch error // @todo: We should check for errors ?!? reject(err); }); }); return promise; } }