From 34862b8ae117126e055f3cb71b464e448d2c5827 Mon Sep 17 00:00:00 2001 From: AhmedEldeeb50 Date: Sun, 28 Jun 2020 15:29:33 +0200 Subject: Add package deletion button Issue-ID: CCSDK-2483 Signed-off-by: AhmedEldeeb50 Change-Id: I7e1c0f80eb9e6073a1eb472bd6f042e8545c5ab7 --- .../src/controllers/blueprint-rest.controller.ts | 58 ++++---- .../datasources/blueprint.datasource-template.ts | 152 ++++++++++++--------- cds-ui/server/src/services/blueprint.service.ts | 23 ++-- 3 files changed, 131 insertions(+), 102 deletions(-) (limited to 'cds-ui/server') 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 { 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 { 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 { return new Promise((resolve, reject) => { @@ -261,7 +273,7 @@ export class BlueprintRestController { async getFileFromMultiPartForm(request: Request): Promise { 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 { 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; - getBlueprintsByKeyword(keyword: string): Promise; - getByTags(tags: string): Promise; - getPagedBueprints(limit: number, offset: number , sort: string,sortType: String): Promise; - getMetaDataPagedBlueprints(limit: number, offset: number, sort: string, keyword: string,sortType: String): Promise; - getBlueprintByNameAndVersion(name:string, version:string): Promise; + getOneBluePrint(id: string): any; + deleteBluePrint(id: string): any; + getAllblueprints(): Promise; + getBlueprintsByKeyword(keyword: string): Promise; + getByTags(tags: string): Promise; + getPagedBueprints(limit: number, offset: number, sort: string, sortType: String): Promise; + getMetaDataPagedBlueprints(limit: number, offset: number, sort: string, keyword: string, sortType: String): Promise; + getBlueprintByNameAndVersion(name: string, version: string): Promise; } @@ -19,7 +20,7 @@ export class BlueprintServiceProvider implements Provider { // blueprint must match the name property in the datasource json file @inject('datasources.blueprint') protected dataSource: BlueprintDataSource = new BlueprintDataSource(), - ) {} + ) { } value(): Promise { return getService(this.dataSource); -- cgit 1.2.3-korg