1 /* Copyright (c) 2019 AT&T Intellectual Property. #
\r
3 # Licensed under the Apache License, Version 2.0 (the "License"); #
\r
4 # you may not use this file except in compliance with the License. #
\r
5 # You may obtain a copy of the License at #
\r
7 # http://www.apache.org/licenses/LICENSE-2.0 #
\r
9 # Unless required by applicable law or agreed to in writing, software #
\r
10 # distributed under the License is distributed on an "AS IS" BASIS, #
\r
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
\r
12 # See the License for the specific language governing permissions and #
\r
13 # limitations under the License. #
\r
14 ##############################################################################*/
\r
17 const request = require('request');
\r
18 const Response = require('http-response-object');
\r
19 const logger = require('../../../lib/logger');
\r
20 const util = require('../../../lib/otf-util');
\r
21 const errors = require('@feathersjs/errors');
\r
24 constructor (options) {
\r
25 this.options = options || {};
\r
28 async find (params) {
\r
32 async get (id, params) {
\r
36 async create (data, params) {
\r
40 delete data.createdBy;
\r
43 url: this.options.app.get('serviceApi').url + 'testInstance/execute/v1/id/' + id,
\r
45 'Authorization': 'Basic ' + util.base64Encode(this.options.app.get('serviceApi').aafId + ':' + this.options.app.get('serviceApi').aafPassword),
\r
46 'Content-Type': "application/json"
\r
48 rejectUnauthorized: false,
\r
49 body: JSON.stringify(data)
\r
52 return await new Promise((resolve, reject) => {
\r
53 request.post(options, (err, res, body) => {
\r
58 res.body = JSON.parse(res.body);
\r
59 if(res.body.statusCode != 200){
\r
79 async update (id, data, params) {
\r
83 async patch (id, data, params) {
\r
87 async remove (id, params) {
\r
89 let execution = await this.options.app.services[this.options.app.get('base-path') + 'test-executions'].get(id, { query: { $select: ['processInstanceId']}});
\r
91 if(!execution.processInstanceId){
\r
92 throw new errors.GeneralError('Could not find the execution process instance id');
\r
96 url: this.options.app.get('camundaApi').url + 'otf/tcu/delete-process-instance/v1/' + execution.processInstanceId,
\r
98 'Authorization': 'Basic ' + util.base64Encode(this.options.app.get('serviceApi').aafId + ':' + this.options.app.get('serviceApi').aafPassword),
\r
99 'Content-Type': "application/json"
\r
101 rejectUnauthorized: false
\r
104 return await new Promise((resolve, reject) => {
\r
105 request.delete(options, (err, res, body) => {
\r
110 res.body = JSON.parse(res.body);
\r
128 module.exports = function (options) {
\r
129 return new Service(options);
\r
132 module.exports.Service = Service;
\r