37 lines
1.3 KiB
TypeScript
37 lines
1.3 KiB
TypeScript
import { Injectable } from '@angular/core';
|
|
import { Store} from '@ngrx/store';
|
|
import * as appCommonReducer from '../reducers/app-common.reducer'
|
|
import { IPackages } from '../models/package';
|
|
|
|
import { IItem } from '../models/item';
|
|
import { IItemTask } from '../models/itemTask';
|
|
import { HttpClient } from "@angular/common/http";
|
|
import { AppConfig } from "../shared/app.config";
|
|
import { Observable } from 'rxjs';
|
|
|
|
@Injectable({
|
|
providedIn: 'root',
|
|
})
|
|
|
|
export class PackageService {
|
|
private packages$:IPackages = {};
|
|
|
|
constructor(private store$: Store<appCommonReducer.State>, public httpClient: HttpClient, public appConfig: AppConfig) {
|
|
store$.select(appCommonReducer.SelectGetUserPackages).subscribe((packages) => {
|
|
this.packages$ = packages;
|
|
})
|
|
}
|
|
|
|
ApiEndpoint() {
|
|
return this.appConfig.getConfig("apiEndPoint");
|
|
}
|
|
|
|
hasPackage(id:string):boolean {
|
|
if(!this.packages$[id]) return false;
|
|
return this.packages$[id].enabled ? this.packages$[id].enabled == true : true;
|
|
}
|
|
|
|
postItemPackageTask(item: IItem, task: IItemTask): Observable<IItemTask> {
|
|
return this.httpClient.post<IItemTask>(`${this.ApiEndpoint()}/api/v1/items/${item.code}/packagetasks`, task);
|
|
}
|
|
} |