summaryrefslogtreecommitdiffstats
path: root/gui-clamp/ui-react/src/api/ControlLoopService.js
blob: 30b052241d96a3ca11533306912e475a75ce3287 (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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/*
 * ============LICENSE_START=======================================================
 *  Copyright (C) 2021 Nordix Foundation.
 *  ================================================================================
 *  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.
 *
 *  SPDX-License-Identifier: Apache-2.0
 *  ============LICENSE_END=========================================================
 */

export default class ControlLoopService {

  static async fetchControlLoopInstantiation(windowLocationPathname) {

    return await fetch(windowLocationPathname + '/restservices/clds/v2/toscaControlLoop/getToscaInstantiation', {
      method: 'GET',
      headers: {
        'Content-Type': 'application/json',
      },
      credentials: 'same-origin',
    }).then(response => {
      console.log("fetchControlLoopInstantiation received " + response.status);

      if (response.ok) {
        console.info("fetchControlLoopInstantiation query successful");
        return response.json();
      } else {
        return response.text().then(responseBody => {
          throw Error("HTTP " + response.status + "," + responseBody);
        });
      }
    }).catch(error => {
      console.error("fetchControlLoopInstantiation error occurred ", error);
      alert("fetchControlLoopInstantiation error occurred " + error);
      return undefined;
    });
  }

  static async uploadToscaInstantiation(toscaObject, windowLocationPathname) {

    const response =  await fetch(windowLocationPathname + '/restservices/clds/v2/toscaControlLoop/postToscaInstantiation', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      credentials: 'same-origin',
      body: JSON.stringify(toscaObject)
    });

    return response;
  }

  static async getToscaTemplate(name, version, windowLocationPathname) {
    const params = {
      name: name,
      version: version
    }

    const response = await fetch(windowLocationPathname +
      '/restservices/clds/v2/toscaControlLoop/getToscaTemplate' + '?' + (new URLSearchParams(params)));

    if (!response.ok) {
      const message = `An error has occurred: ${response.status}`;
      throw new Error(message);
    }

    const data = await response;

    return data;
  }

  static async uploadToscaFile(toscaObject, windowLocationPathName) {
    const response = await fetch(windowLocationPathName +
      '/restservices/clds/v2/toscaControlLoop/commissionToscaTemplate', {
      method: 'POST',
      headers: {
        "Content-Type": "application/json"
      },
      credentials: 'same-origin',
      body: JSON.stringify(toscaObject),
    });

    return response

  }
}