summaryrefslogtreecommitdiffstats
path: root/cds-ui/server
diff options
context:
space:
mode:
authorAhmedEldeeb50 <ahmed.eldeeb.ext@orange.com>2020-06-28 15:29:33 +0200
committerAhmedEldeeb50 <ahmed.eldeeb.ext@orange.com>2020-06-28 15:29:33 +0200
commit34862b8ae117126e055f3cb71b464e448d2c5827 (patch)
tree7caf9ca723f5f2b634891aa206199dd0f7b2078d /cds-ui/server
parent83221b2423060db32826065938edeebb5680b30f (diff)
Add package deletion button
Issue-ID: CCSDK-2483 Signed-off-by: AhmedEldeeb50 <ahmed.eldeeb.ext@orange.com> Change-Id: I7e1c0f80eb9e6073a1eb472bd6f042e8545c5ab7
Diffstat (limited to 'cds-ui/server')
-rw-r--r--cds-ui/server/src/controllers/blueprint-rest.controller.ts58
-rw-r--r--cds-ui/server/src/datasources/blueprint.datasource-template.ts152
-rw-r--r--cds-ui/server/src/services/blueprint.service.ts23
3 files changed, 131 insertions, 102 deletions
diff --git a/cds-ui/server/src/controllers/blueprint-rest.controller.ts b/cds-ui/server/src/controllers/blueprint-rest.controller.ts
index 2319e0a5e..870f9793f 100644
--- a/cds-ui/server/src/controllers/blueprint-rest.controller.ts
+++ b/cds-ui/server/src/controllers/blueprint-rest.controller.ts
@@ -20,16 +20,16 @@ limitations under the License.
*/
-import {get, param, post, Request, requestBody, Response, RestBindings} from '@loopback/rest';
-import {Blueprint} from '../models';
-import {inject} from '@loopback/core';
-import {BlueprintService} from '../services';
+import { get, param, post, Request, requestBody, Response, RestBindings, del } from '@loopback/rest';
+import { Blueprint } from '../models';
+import { inject } from '@loopback/core';
+import { BlueprintService } from '../services';
import * as fs from 'fs';
import * as multiparty from 'multiparty';
import * as request_lib from 'request';
-import {appConfig, processorApiConfig} from '../config/app-config';
-import {bluePrintManagementServiceGrpcClient} from '../clients/blueprint-management-service-grpc-client';
-import {BlueprintDetail} from '../models/blueprint.detail.model';
+import { appConfig, processorApiConfig } from '../config/app-config';
+import { bluePrintManagementServiceGrpcClient } from '../clients/blueprint-management-service-grpc-client';
+import { BlueprintDetail } from '../models/blueprint.detail.model';
export class BlueprintRestController {
constructor(
@@ -42,7 +42,7 @@ export class BlueprintRestController {
responses: {
'200': {
description: 'Blueprint model instance',
- content: {'application/json': {schema: {'x-ts-type': Blueprint}}},
+ content: { 'application/json': { schema: { 'x-ts-type': Blueprint } } },
},
},
})
@@ -54,7 +54,7 @@ export class BlueprintRestController {
responses: {
'200': {
description: 'Blueprint model instance',
- content: {'application/json': {schema: {'x-ts-type': BlueprintDetail}}},
+ content: { 'application/json': { schema: { 'x-ts-type': BlueprintDetail } } },
},
},
})
@@ -62,12 +62,24 @@ export class BlueprintRestController {
return await this.bpservice.getOneBluePrint(id);
}
+ @del('/controllerblueprint/{id}', {
+ responses: {
+ '200': {
+ description: 'Blueprint model instance',
+ content: { 'application/json': { schema: { 'x-ts-type': BlueprintDetail } } },
+ },
+ },
+ })
+ async deleteBluePrint(@param.path.string('id') id: string) {
+ return await this.bpservice.deleteBluePrint(id);
+ }
+
@get('/controllerblueprint/paged', {
responses: {
'200': {
description: 'Blueprint model instance with pagination',
- content: {'application/json': {schema: {'x-ts-type': Blueprint}}},
+ content: { 'application/json': { schema: { 'x-ts-type': Blueprint } } },
},
},
})
@@ -83,7 +95,7 @@ export class BlueprintRestController {
responses: {
'200': {
description: 'Blueprint model instance with pagination',
- content: {'application/json': {schema: {'x-ts-type': Blueprint}}},
+ content: { 'application/json': { schema: { 'x-ts-type': Blueprint } } },
},
},
})
@@ -100,7 +112,7 @@ export class BlueprintRestController {
responses: {
'200': {
description: 'Blueprint model instance',
- content: {'application/json': {schema: {'x-ts-type': Blueprint}}},
+ content: { 'application/json': { schema: { 'x-ts-type': Blueprint } } },
},
},
})
@@ -112,7 +124,7 @@ export class BlueprintRestController {
responses: {
'200': {
description: 'Blueprint model instance',
- content: {'application/json': {schema: {'x-ts-type': Blueprint}}},
+ content: { 'application/json': { schema: { 'x-ts-type': Blueprint } } },
},
},
})
@@ -123,7 +135,7 @@ export class BlueprintRestController {
@get('/controllerblueprint/searchByTags/{tags}', {
responses: {
'200': {
- content: {'application/json': {}},
+ content: { 'application/json': {} },
},
},
})
@@ -140,11 +152,11 @@ export class BlueprintRestController {
'multipart/form-data': {
// Skip body parsing
'x-parser': 'stream',
- schema: {type: 'object'},
+ schema: { type: 'object' },
},
},
})
- request: Request,
+ request: Request,
@inject(RestBindings.Http.RESPONSE) response: Response,
): Promise<Response> {
return new Promise((resolve, reject) => {
@@ -180,11 +192,11 @@ export class BlueprintRestController {
'multipart/form-data': {
// Skip body parsing
'x-parser': 'stream',
- schema: {type: 'object'},
+ schema: { type: 'object' },
},
},
})
- request: Request,
+ request: Request,
@inject(RestBindings.Http.RESPONSE) response: Response,
): Promise<Response> {
return new Promise((resolve, reject) => {
@@ -220,11 +232,11 @@ export class BlueprintRestController {
'multipart/form-data': {
// Skip body parsing
'x-parser': 'stream',
- schema: {type: 'object'},
+ schema: { type: 'object' },
},
},
})
- request: Request,
+ request: Request,
@inject(RestBindings.Http.RESPONSE) response: Response,
): Promise<Response> {
return new Promise((resolve, reject) => {
@@ -261,7 +273,7 @@ export class BlueprintRestController {
async getFileFromMultiPartForm(request: Request): Promise<multiparty.File> {
return new Promise((resolve, reject) => {
let form = new multiparty.Form();
- form.parse(request, (err: any, fields: any, files: {[x: string]: any[];}) => {
+ form.parse(request, (err: any, fields: any, files: { [x: string]: any[]; }) => {
if (err) reject(err);
let file = files['file'][0]; // get the file from the returned files object
if (!file) {
@@ -282,11 +294,11 @@ export class BlueprintRestController {
'multipart/form-data': {
// Skip body parsing
'x-parser': 'stream',
- schema: {type: 'object'},
+ schema: { type: 'object' },
},
},
})
- request: Request,
+ request: Request,
@inject(RestBindings.Http.RESPONSE) response: Response,
): Promise<Response> {
return new Promise((resolve, reject) => {
diff --git a/cds-ui/server/src/datasources/blueprint.datasource-template.ts b/cds-ui/server/src/datasources/blueprint.datasource-template.ts
index 9b8e06a13..3b502d334 100644
--- a/cds-ui/server/src/datasources/blueprint.datasource-template.ts
+++ b/cds-ui/server/src/datasources/blueprint.datasource-template.ts
@@ -1,4 +1,4 @@
-import {processorApiConfig} from '../config/app-config';
+import { processorApiConfig } from '../config/app-config';
export default {
"name": "blueprint",
@@ -37,84 +37,100 @@ export default {
}
},
-
- {
- "template": {
- "method": "GET",
- "url": processorApiConfig.http.url + "/blueprint-model/search/{tags}",
- "headers": {
- "accepts": "application/json",
- "content-type": "application/json",
- "authorization": processorApiConfig.http.authToken
- },
- "responsePath": "$.*"
+ {
+ "template": {
+ "method": "DELETE",
+ "url": processorApiConfig.http.url + "/blueprint-model/{id}",
+ "headers": {
+ "accepts": "application/json",
+ "content-type": "application/json",
+ "authorization": processorApiConfig.http.authToken
},
- "functions": {
- "getByTags": ["tags"]
-
- }
+ "responsePath": "$.*"
},
- {
- "template": {
- "method": "GET",
- "url": processorApiConfig.http.url + "/blueprint-model/meta-data/{keyword}",
- "headers": {
- "accepts": "application/json",
- "content-type": "application/json",
- "authorization": processorApiConfig.http.authToken
- },
- "responsePath": "$.*"
+ "functions": {
+ "deleteBluePrint": ["id"]
+
+ }
+ },
+
+ {
+ "template": {
+ "method": "GET",
+ "url": processorApiConfig.http.url + "/blueprint-model/search/{tags}",
+ "headers": {
+ "accepts": "application/json",
+ "content-type": "application/json",
+ "authorization": processorApiConfig.http.authToken
},
- "functions": {
- "getBlueprintsByKeyword": ["keyword"]
+ "responsePath": "$.*"
+ },
+ "functions": {
+ "getByTags": ["tags"]
- }
+ }
+ },
+ {
+ "template": {
+ "method": "GET",
+ "url": processorApiConfig.http.url + "/blueprint-model/meta-data/{keyword}",
+ "headers": {
+ "accepts": "application/json",
+ "content-type": "application/json",
+ "authorization": processorApiConfig.http.authToken
+ },
+ "responsePath": "$.*"
},
- {
- "template": {
- "method": "GET",
- "url": processorApiConfig.http.url + "/blueprint-model/paged?limit={limit}&offset={offset}&sort={sort}&sortType={sortType}",
- "headers": {
- "accepts": "application/json",
- "content-type": "application/json",
- "authorization": processorApiConfig.http.authToken
- },
- "responsePath": "$",
+ "functions": {
+ "getBlueprintsByKeyword": ["keyword"]
+
+ }
+ },
+ {
+ "template": {
+ "method": "GET",
+ "url": processorApiConfig.http.url + "/blueprint-model/paged?limit={limit}&offset={offset}&sort={sort}&sortType={sortType}",
+ "headers": {
+ "accepts": "application/json",
+ "content-type": "application/json",
+ "authorization": processorApiConfig.http.authToken
},
- "functions": {
- "getPagedBueprints": ["limit", "offset", "sort","sortType"],
- }
+ "responsePath": "$",
},
- {
- "template": {
- "method": "GET",
- "url": processorApiConfig.http.url + "/blueprint-model/paged/meta-data/{keyword}?limit={limit}&offset={offset}&sort={sort}&sortType={sortType}",
- "headers": {
- "accepts": "application/json",
- "content-type": "application/json",
- "authorization": processorApiConfig.http.authToken
- },
- "responsePath": "$",
+ "functions": {
+ "getPagedBueprints": ["limit", "offset", "sort", "sortType"],
+ }
+ },
+ {
+ "template": {
+ "method": "GET",
+ "url": processorApiConfig.http.url + "/blueprint-model/paged/meta-data/{keyword}?limit={limit}&offset={offset}&sort={sort}&sortType={sortType}",
+ "headers": {
+ "accepts": "application/json",
+ "content-type": "application/json",
+ "authorization": processorApiConfig.http.authToken
},
- "functions": {
- "getMetaDataPagedBlueprints": ["limit", "offset", "sort", "keyword","sortType"],
- }
+ "responsePath": "$",
},
- {
- "template": {
- "method": "GET",
- "url": processorApiConfig.http.url + "/blueprint-model/by-name/{name}/version/{version}",
- "headers": {
- "accepts": "application/json",
- "content-type": "application/json",
- "authorization": processorApiConfig.http.authToken
- },
- "responsePath": "$",
+ "functions": {
+ "getMetaDataPagedBlueprints": ["limit", "offset", "sort", "keyword", "sortType"],
+ }
+ },
+ {
+ "template": {
+ "method": "GET",
+ "url": processorApiConfig.http.url + "/blueprint-model/by-name/{name}/version/{version}",
+ "headers": {
+ "accepts": "application/json",
+ "content-type": "application/json",
+ "authorization": processorApiConfig.http.authToken
},
- "functions": {
- "getBlueprintByNameAndVersion": ["name", "version"],
- }
+ "responsePath": "$",
},
+ "functions": {
+ "getBlueprintByNameAndVersion": ["name", "version"],
+ }
+ },
]
};
diff --git a/cds-ui/server/src/services/blueprint.service.ts b/cds-ui/server/src/services/blueprint.service.ts
index 2680e105a..379f8d4d5 100644
--- a/cds-ui/server/src/services/blueprint.service.ts
+++ b/cds-ui/server/src/services/blueprint.service.ts
@@ -1,15 +1,16 @@
-import {getService} from '@loopback/service-proxy';
-import {inject, Provider} from '@loopback/core';
-import {BlueprintDataSource} from '../datasources';
+import { getService } from '@loopback/service-proxy';
+import { inject, Provider } from '@loopback/core';
+import { BlueprintDataSource } from '../datasources';
export interface BlueprintService {
- getOneBluePrint(id: string): any;
- getAllblueprints(): Promise<any>;
- getBlueprintsByKeyword(keyword: string): Promise<any>;
- getByTags(tags: string): Promise<JSON>;
- getPagedBueprints(limit: number, offset: number , sort: string,sortType: String): Promise<any>;
- getMetaDataPagedBlueprints(limit: number, offset: number, sort: string, keyword: string,sortType: String): Promise<any>;
- getBlueprintByNameAndVersion(name:string, version:string): Promise<any>;
+ getOneBluePrint(id: string): any;
+ deleteBluePrint(id: string): any;
+ getAllblueprints(): Promise<any>;
+ getBlueprintsByKeyword(keyword: string): Promise<any>;
+ getByTags(tags: string): Promise<JSON>;
+ getPagedBueprints(limit: number, offset: number, sort: string, sortType: String): Promise<any>;
+ getMetaDataPagedBlueprints(limit: number, offset: number, sort: string, keyword: string, sortType: String): Promise<any>;
+ getBlueprintByNameAndVersion(name: string, version: string): Promise<any>;
}
@@ -19,7 +20,7 @@ export class BlueprintServiceProvider implements Provider<BlueprintService> {
// blueprint must match the name property in the datasource json file
@inject('datasources.blueprint')
protected dataSource: BlueprintDataSource = new BlueprintDataSource(),
- ) {}
+ ) { }
value(): Promise<BlueprintService> {
return getService(this.dataSource);