Commit 28d86107d90afd1485f9c24198da801f5d829f95

Authored by Victor Costa
1 parent ed34cf65

Support storage of current object in generic restangular service

src/lib/ng-noosfero-api/http/restangular_service.ts
... ... @@ -11,6 +11,8 @@
11 11 export abstract class RestangularService<T extends noosfero.RestModel> {
12 12  
13 13 private baseResource: restangular.IElement;
  14 + private currentPromise: ng.IDeferred<T>;
  15 +
14 16 /**
15 17 * Creates an instance of RestangularService.
16 18 *
... ... @@ -20,6 +22,7 @@ export abstract class RestangularService&lt;T extends noosfero.RestModel&gt; {
20 22 */
21 23 constructor(protected restangularService: restangular.IService, protected $q: ng.IQService, protected $log: ng.ILogService) {
22 24 this.baseResource = restangularService.all(this.getResourcePath());
  25 + this.resetCurrent();
23 26 // TODO
24 27 // this.restangularService.setResponseInterceptor((data, operation, what, url, response, deferred) => {
25 28 // let transformedData: any = data;
... ... @@ -32,6 +35,18 @@ export abstract class RestangularService&lt;T extends noosfero.RestModel&gt; {
32 35 // });
33 36 }
34 37  
  38 + public resetCurrent() {
  39 + this.currentPromise = this.$q.defer();
  40 + }
  41 +
  42 + public getCurrent(): ng.IPromise<T> {
  43 + return this.currentPromise.promise;
  44 + }
  45 +
  46 + public setCurrent(object: T) {
  47 + this.currentPromise.resolve(object);
  48 + }
  49 +
35 50 protected extractData(response: restangular.IResponse): noosfero.RestResult<T> {
36 51 let dataKey: string;
37 52 if (response.data && this.getDataKeys()) {
... ...