Catalog alignment
[sdc.git] / catalog-ui / src / app / ng2 / services / modules.service.ts
1 import {Inject, Injectable} from "@angular/core";
2 import {HttpClient} from "@angular/common/http";
3 import {ISdcConfig, SdcConfigToken} from "../config/sdc-config.config";
4 import {DisplayModule, Module} from "../../models/modules/base-module";
5 import {Observable} from "rxjs/Observable";
6 import {ServerTypeUrl} from "../../utils/constants";
7
8 @Injectable()
9 export class ModulesService {
10
11     protected baseUrl;
12
13     constructor(private http: HttpClient, @Inject(SdcConfigToken) sdcConfig: ISdcConfig) {
14         this.baseUrl = sdcConfig.api.root + sdcConfig.api.component_api_root;
15     }
16
17     getComponentInstanceModule = (topologyTemplateType: string, topologyTemplateId: string, componentInstanceId: string, moduleId: string):Observable<DisplayModule> => {
18         return this.http.get<DisplayModule>(this.baseUrl + ServerTypeUrl.toServerTypeUrl(topologyTemplateType) + "/" + topologyTemplateId + "/resourceInstance/" + componentInstanceId + "/groupInstance/" + moduleId)
19             .map((response) => {
20                 return new DisplayModule(response);
21             })
22     };
23
24     getModuleForDisplay = (topologyTemplateType: string, topologyTemplateId: string, moduleId: string):Observable<DisplayModule> => {
25         return this.http.get<DisplayModule>(this.baseUrl + ServerTypeUrl.toServerTypeUrl(topologyTemplateType) + "/" + topologyTemplateId + "/groups/" + moduleId)
26             .map((response) => {
27                 return new DisplayModule(response);
28             })
29     };
30
31     public updateModuleMetadata = (topologyTemplateType: string, topologyTemplateId: string, module: Module):Observable<Module> => {
32         return this.http.put<Module>(this.baseUrl + ServerTypeUrl.toServerTypeUrl(topologyTemplateType) + "/" + topologyTemplateId + "/groups/" + module.uniqueId + "/metadata", module)
33     }
34 }