aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/ng2/services/component-services/resource.service.ts
blob: 2f84418e9ea8262f5ce4776873f671827a086860 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*-
 * ============LICENSE_START=======================================================
 * SDC
 * ================================================================================
 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
 * ================================================================================
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ============LICENSE_END=========================================================
 */

import {Inject, Injectable} from '@angular/core';
import {HttpClient} from '@angular/common/http';
import {ISdcConfig, SdcConfigToken} from "../../config/sdc-config.config";
import {Observable} from "rxjs/Observable";
import {ComponentMetadata} from "../../../models/component-metadata";
import {ComponentLifecycleState} from "../../../models/component-lifecycle-state.enum";

@Injectable()
export class ResourceServiceNg2 {

  private readonly baseUrl: string;

  constructor(protected http: HttpClient, @Inject(SdcConfigToken) sdcConfig: ISdcConfig) {
    this.baseUrl = sdcConfig.api.root + sdcConfig.api.component_api_root;
  }

  public checkout(componentUniqueId: string): Observable<ComponentMetadata> {
    return this.changeLifecycleState(componentUniqueId, ComponentLifecycleState.CHECKOUT);
  }

  private changeLifecycleState(componentUniqueId: string, state: ComponentLifecycleState): Observable<ComponentMetadata> {
    const url: string = this.baseUrl + 'resources/' + componentUniqueId + '/lifecycleState/' + state;
    return this.http.post<ComponentMetadata>(url, {}).map(value => {
          return value;
        }
    );
  }

}