From c3736d86c041598e2cc39d29d25f69d7f61444b1 Mon Sep 17 00:00:00 2001 From: Sandeep J Date: Wed, 11 Jul 2018 16:53:40 +0530 Subject: added util methods to utility service added methods in utility service for creating common payload method for save andretrieve and downloading artifact Issue-ID: APPC-1063 Change-Id: I05d8e0df05bf74fe30358b0a44506baf03442a99 Signed-off-by: Sandeep J --- .../services/utilityService/utility.service.ts | 137 ++++++++++++++++++++- 1 file changed, 132 insertions(+), 5 deletions(-) (limited to 'src/app') diff --git a/src/app/shared/services/utilityService/utility.service.ts b/src/app/shared/services/utilityService/utility.service.ts index 11fa888..f22f2ab 100644 --- a/src/app/shared/services/utilityService/utility.service.ts +++ b/src/app/shared/services/utilityService/utility.service.ts @@ -3,7 +3,8 @@ =================================================================== Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. =================================================================== - +Copyright (C) 2018 IBM. +=================================================================== Unless otherwise specified, all software contained herein is licensed under the Apache License, Version 2.0 (the License); you may not use this software except in compliance with the License. @@ -24,28 +25,36 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property. import {Injectable} from '@angular/core'; import {NotificationsService} from 'angular2-notifications'; +import { saveAs } from 'file-saver'; @Injectable() export class UtilityService { - + public putAction = 'uploadArtifact'; + public getAction = 'getArtifact'; + private retrievalSuccessMessage = 'Retrieved artifact successfully'; + private retrievalFailureMessage = 'There is no artifact saved in APPC for the selected action'; + private saveSuccessMessage = 'Successfully uploaded the '; + private saveFailureMessage = 'Error in saving the '; + public connectionErrorMessage = 'Error in connecting to the APPC Server'; + private successMessage = 'Retrieved artifact successfully'; private failureMessage = 'There is no artifact saved in APPC for the selected action!'; constructor(private notificationService: NotificationsService) { } - randomId() { + public randomId() { let x = (new Date().getUTCMilliseconds()) * Math.random(); return (x + '').substr(4, 12); } - appendSlashes(artifactData) { + public appendSlashes(artifactData) { return artifactData.replace(/"/g, '\\"'); } - checkResult(result: any) { + public checkResult(result: any) { if (result.output.status.code == '401') { this.notificationService.info('Information', this.failureMessage); @@ -58,5 +67,123 @@ export class UtilityService { } + public processApiSubscribe(result: any, action, artifactType) { + + if (result.output.status.code == '401' && action == this.getAction) { + this.notificationService.info('Information', this.retrievalFailureMessage); + } + else if (result.output.status.code == '400' && action == this.getAction) { + this.notificationService.success('Success', this.retrievalSuccessMessage); + } + if (result.output.status.code == '401' && action == this.putAction) { + this.notificationService.warn('Error', this.saveFailureMessage + artifactType); + } + else if (result.output.status.code == '400' && action == this.putAction) { + this.notificationService.success('Success', this.saveSuccessMessage + artifactType); + } + + } + + public processApiError() + { + this.notificationService.error('Error', this.connectionErrorMessage); + } + + + public checkNotNull(object:any) + { + + if (object != undefined || object != null) + { + if(object.length > 0) + return true; + else return false; + } + else return false; + } + + public createPayLoadForSave(artifactType,vnfType,action,fileName, versionNo, artifactContent) + { + let userId=localStorage['userId']; + let apiToken=localStorage['apiToken'] + let newPayload:any; + switch(artifactType) + { + case "reference_data": + //newPayload='{"userID": "' + userId + '","vnf-type" : "' + vnfType + '","action: "'+action+'","artifact-name" : "' + fileName.replace(/ /g, '').replace(new RegExp('/', 'g'), '_').replace(/ /g, '') + '","artifact-type" : "APPC-CONFIG","artifact-version" : "0.1","artifact-contents" :" ' + artifactContent + '"}'; + newPayload='{"userID": "' + userId + '","vnf-type" : "' + vnfType + '","action" : "AllAction","artifact-name" : "' + fileName.replace(/ /g, '').replace(new RegExp('/', 'g'), '_').replace(/ /g, '') + '","artifact-type" : "APPC-CONFIG","artifact-version" : "0.1","artifact-contents" :" ' + artifactContent + '"}'; + break; + case "template_data": + newPayload= JSON.stringify({ + "userID": userId, + "vnf-type": vnfType, + "action": action, + "artifact-name": fileName, + "artifact-type": "APPC-CONFIG", + "artifact-version": versionNo, + "artifact-contents": artifactContent.replace(/\(([^()]|(R))*\)=\(/g, '').replace(/\)}/g, '}') + }); + break; + case "param_data": + newPayload=JSON.stringify({ + "userID": userId, + "vnf-type": vnfType, + "action": action, + "artifact-name": fileName, + "artifact-type": "APPC-CONFIG", + "artifact-version": versionNo, + "artifact-contents": artifactContent + }); + break; + case "pd_data": + newPayload='{"userID": "' + userId + '","vnf-type" : "' + vnfType + '","action" : "' + action + '","artifact-name" : "' + fileName + '","artifact-type" : "APPC-CONFIG","artifact-version" :"'+versionNo+'","artifact-contents" : ' + artifactContent + '}'; + break; + default : newPayload={}; + } + + let data = + { + "input": { + "design-request": { + "request-id": apiToken, + "action": "uploadArtifact", + "payload": newPayload + + } + } + } + return data; + } + + public createPayloadForRetrieve(isReference:boolean,action,vnfType,fileName) + { + let payload:any; + if(isReference) { + payload=JSON.parse(sessionStorage.getItem('updateParams')); + payload['userID'] = localStorage['userId']; + payload = JSON.stringify(payload); + } + else payload = '{"userID": "' + localStorage['userId'] + '","action": "' + action + '", "vnf-type" : "' + vnfType + '", "artifact-type":"APPC-CONFIG", "artifact-name":"' + fileName + '"}'; + let data = { + 'input': { + 'design-request': { + 'request-id': localStorage['apiToken'], + 'action': 'getArtifact', + 'payload': payload + } + } + }; + return data; + } + + public downloadArtifactToPc(data,extension, fileName, delay) + { + var blob = new Blob([data], { + type: 'text/'+extension + }); + setTimeout(() => { + saveAs(blob, fileName); + }, delay) + } } -- cgit 1.2.3-korg