diff options
author | Nirvan Ramjuttun <nirvan.ramjuttun@amdocs.com> | 2019-05-07 12:39:19 -0400 |
---|---|---|
committer | Nirvan Ramjuttun <nirvan.ramjuttun@amdocs.com> | 2019-05-07 12:40:03 -0400 |
commit | 087d4b667a9c5517ac7d014c2bbdad994b927147 (patch) | |
tree | 1c0f7eb856794a3a161ebdb3029fba4eb48a6f3e /cds-ui/server/src/controllers | |
parent | 0924c4da768d1119a17936933606a38de6526b52 (diff) |
Modify CDS-UI server to allow communicating with external blueprint mS
Issue-ID: CCSDK-1292
Change-Id: I3536437bad334841d7c7ecd577c092cd13f42a9b
Signed-off-by: Nirvan Ramjuttun <nirvan.ramjuttun@amdocs.com>
Diffstat (limited to 'cds-ui/server/src/controllers')
-rw-r--r-- | cds-ui/server/src/controllers/blueprint-rest.controller.ts | 44 | ||||
-rw-r--r-- | cds-ui/server/src/controllers/data-dictionary.controller.ts | 14 |
2 files changed, 35 insertions, 23 deletions
diff --git a/cds-ui/server/src/controllers/blueprint-rest.controller.ts b/cds-ui/server/src/controllers/blueprint-rest.controller.ts index 38abad80c..877fa02bb 100644 --- a/cds-ui/server/src/controllers/blueprint-rest.controller.ts +++ b/cds-ui/server/src/controllers/blueprint-rest.controller.ts @@ -48,11 +48,7 @@ import { BlueprintService } from '../services'; import * as fs from 'fs'; import * as multiparty from 'multiparty'; import * as request_lib from 'request'; - -const REST_BLUEPRINT_CONTROLLER_BASE_URL = process.env.REST_BLUEPRINT_CONTROLLER_BASE_URL || "http://localhost:8080/api/v1"; -const REST_BLUEPRINT_CONTROLLER_BASIC_AUTH_HEADER = process.env.REST_BLUEPRINT_CONTROLLER_BASIC_AUTH_HEADER || "Basic Y2NzZGthcHBzOmNjc2RrYXBwcw=="; -const REST_BLUEPRINT_PROCESSOR_BASE_URL= process.env.REST_BLUEPRINT_PROCESSOR_BASE_URL ||"http://localhost:8081/api/v1"; -const MULTIPART_FORM_UPLOAD_DIR = process.env.MULTIPART_FORM_UPLOAD_DIR || "/tmp"; +import {controllerApiConfig, processorApiConfig} from '../../config/app-config'; export class BlueprintRestController { constructor( @@ -69,7 +65,7 @@ export class BlueprintRestController { }, }) async getall() { - return await this.bpservice.getAllblueprints(REST_BLUEPRINT_CONTROLLER_BASIC_AUTH_HEADER); + return await this.bpservice.getAllblueprints(); } @post('/create-blueprint') @@ -90,7 +86,7 @@ export class BlueprintRestController { ): Promise<Response> { return new Promise((resolve, reject) => { this.getFileFromMultiPartForm(request).then(file=>{ - this.uploadFileToBlueprintController(file, REST_BLUEPRINT_CONTROLLER_BASE_URL+"/blueprint-model/", response).then(resp=>{ + this.uploadFileToBlueprintController(file, "/blueprint-model/", response).then(resp=>{ resolve(resp); }, err=>{ reject(err); @@ -100,6 +96,7 @@ export class BlueprintRestController { }); }); } + @post('/publish') async publish( @requestBody({ @@ -118,7 +115,7 @@ export class BlueprintRestController { ): Promise<Response> { return new Promise((resolve, reject) => { this.getFileFromMultiPartForm(request).then(file=>{ - this.uploadFileToBlueprintController(file, REST_BLUEPRINT_CONTROLLER_BASE_URL+"/blueprint-model/publish/", response).then(resp=>{ + this.uploadFileToBlueprintController(file, "/blueprint-model/publish/", response).then(resp=>{ resolve(resp); }, err=>{ reject(err); @@ -128,6 +125,7 @@ export class BlueprintRestController { }); }); } + @post('/enrich-blueprint') async enrich( @requestBody({ @@ -146,7 +144,7 @@ export class BlueprintRestController { ): Promise<Response> { return new Promise((resolve, reject) => { this.getFileFromMultiPartForm(request).then(file=>{ - this.uploadFileToBlueprintController(file, REST_BLUEPRINT_CONTROLLER_BASE_URL+"/blueprint-model/enrich/", response).then(resp=>{ + this.uploadFileToBlueprintController(file, "/blueprint-model/enrich/", response).then(resp=>{ resolve(resp); }, err=>{ reject(err); @@ -163,7 +161,7 @@ export class BlueprintRestController { @param.path.string('version') version:string, @inject(RestBindings.Http.RESPONSE) response: Response, ): Promise<Response> { - return this.downloadFileFromBlueprintController(REST_BLUEPRINT_CONTROLLER_BASE_URL+"/blueprint-model/download/by-name/"+name+"/version/"+version, response); + return this.downloadFileFromBlueprintController("/blueprint-model/download/by-name/"+name+"/version/"+version, response); } async getFileFromMultiPartForm(request: Request): Promise<multiparty.File>{ @@ -199,7 +197,7 @@ export class BlueprintRestController { ): Promise<Response> { return new Promise((resolve, reject) => { this.getFileFromMultiPartForm(request).then(file=>{ - this.uploadFileToBlueprintController(file, REST_BLUEPRINT_PROCESSOR_BASE_URL+"/execution-service/upload/", response).then(resp=>{ + this.uploadFileToBlueprintProcessor(file, "/execution-service/upload/", response).then(resp=>{ resolve(resp); }, err=>{ reject(err); @@ -209,12 +207,20 @@ export class BlueprintRestController { }); }); } + async uploadFileToBlueprintController(file: multiparty.File, uri: string, response: Response): Promise<Response>{ + return this.uploadFileToBlueprintService(file, controllerApiConfig.url + uri, controllerApiConfig.authToken, response); + } + + async uploadFileToBlueprintProcessor(file: multiparty.File, uri: string, response: Response): Promise<Response>{ + return this.uploadFileToBlueprintService(file, processorApiConfig.url + uri, processorApiConfig.authToken, response); + } + + async uploadFileToBlueprintService(file: multiparty.File, url: string, authToken: string, response: Response): Promise<Response>{ let options = { - // url: REST_BLUEPRINT_CONTROLLER_BASE_URL + uri, - url:uri, + url: url, headers: { - Authorization: REST_BLUEPRINT_CONTROLLER_BASIC_AUTH_HEADER, + Authorization: authToken, 'content-type': 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' }, formData: { @@ -248,12 +254,16 @@ export class BlueprintRestController { }); }) } + async downloadFileFromBlueprintController(uri: string, response: Response): Promise<Response> { + return this.downloadFileFromBlueprintService(controllerApiConfig.url + uri, controllerApiConfig.authToken, response); + } + + async downloadFileFromBlueprintService(url: string, authToken: string, response: Response): Promise<Response> { let options = { - url: uri, - // REST_BLUEPRINT_CONTROLLER_BASE_URL + uri, + url: url, headers: { - Authorization: REST_BLUEPRINT_CONTROLLER_BASIC_AUTH_HEADER, + Authorization: authToken, } }; return new Promise((resolve, reject) => { diff --git a/cds-ui/server/src/controllers/data-dictionary.controller.ts b/cds-ui/server/src/controllers/data-dictionary.controller.ts index d535e27b2..486c28658 100644 --- a/cds-ui/server/src/controllers/data-dictionary.controller.ts +++ b/cds-ui/server/src/controllers/data-dictionary.controller.ts @@ -18,7 +18,6 @@ import { import { inject } from '@loopback/core'; import { ResourceDictionaryService } from '../services'; -const REST_RESOURCE_DICTIONARY_BASIC_AUTH_HEADER = process.env.REST_BLUEPRINT_CONTROLLER_BASIC_AUTH_HEADER || "Basic Y2NzZGthcHBzOmNjc2RrYXBwcw=="; export class DataDictionaryController { constructor( @inject('services.ResourceDictionaryService') @@ -33,8 +32,9 @@ export class DataDictionaryController { }, }) async getByName(@param.path.string('name') name: string) { - return await this.rdservice.getByName(name, REST_RESOURCE_DICTIONARY_BASIC_AUTH_HEADER); + return await this.rdservice.getByName(name); } + @get('/resourcedictionary/search/{tags}', { responses: { '200': { @@ -43,7 +43,7 @@ export class DataDictionaryController { }, }) async getByTags(@param.path.string('tags') tags: string) { - return await this.rdservice.getByTags(tags, REST_RESOURCE_DICTIONARY_BASIC_AUTH_HEADER); + return await this.rdservice.getByTags(tags); } @get('/resourcedictionary/source-mapping', { @@ -54,8 +54,9 @@ export class DataDictionaryController { }, }) async getSourceMapping() { - return await this.rdservice.getSourceMapping(REST_RESOURCE_DICTIONARY_BASIC_AUTH_HEADER); + return await this.rdservice.getSourceMapping(); } + @post('/resourcedictionary/save', { responses: { '200': { @@ -67,8 +68,9 @@ export class DataDictionaryController { content: { 'application/json': { schema: { 'x-ts-type': JSON } } }, accepts: { 'application/json': { schema: { 'x-ts-type': JSON } } } }) resourceDictionary: JSON): Promise<any> { - return await this.rdservice.save(REST_RESOURCE_DICTIONARY_BASIC_AUTH_HEADER, resourceDictionary); + return await this.rdservice.save(resourceDictionary); } + @post('/resourcedictionary/search/by-names', { responses: { '200': { @@ -80,6 +82,6 @@ export class DataDictionaryController { content: { 'application/json': { schema: { 'x-ts-type': JSON } } }, accepts: { 'application/json': { schema: { 'x-ts-type': JSON } } } }) resourceDictionaryList: JSON): Promise<any> { - return await this.rdservice.searchbyNames(REST_RESOURCE_DICTIONARY_BASIC_AUTH_HEADER, resourceDictionaryList); + return await this.rdservice.searchbyNames(resourceDictionaryList); } } |