diff options
author | Stone, Avi (as206k) <as206k@att.com> | 2018-04-12 16:36:39 +0300 |
---|---|---|
committer | Stone, Avi (as206k) <as206k@att.com> | 2018-04-12 16:36:39 +0300 |
commit | 9b2ceb347a3371819fcad6bbe2268203afecaf4e (patch) | |
tree | fbb5ea2c147d71dfeeec0882b215423e7b7206b4 /public/src/app/rule-engine/api | |
parent | 72dc8e3298d3e4315cdd9717b778671cb0b625bc (diff) |
DCAE-D fe initial commit
DCAE-D fe initial commit
Change-Id: Ica8ccb7c7ef769c969664d1e168d205eb9fc67f2
Issue-ID: SDC-1218
Signed-off-by: Stone, Avi (as206k) <as206k@att.com>
Diffstat (limited to 'public/src/app/rule-engine/api')
-rw-r--r-- | public/src/app/rule-engine/api/rule-engine-api.service.spec.ts | 19 | ||||
-rw-r--r-- | public/src/app/rule-engine/api/rule-engine-api.service.ts | 134 |
2 files changed, 153 insertions, 0 deletions
diff --git a/public/src/app/rule-engine/api/rule-engine-api.service.spec.ts b/public/src/app/rule-engine/api/rule-engine-api.service.spec.ts new file mode 100644 index 0000000..e15535b --- /dev/null +++ b/public/src/app/rule-engine/api/rule-engine-api.service.spec.ts @@ -0,0 +1,19 @@ +import { TestBed, inject } from '@angular/core/testing'; +import { HttpModule } from '@angular/http'; +import { RuleEngineApiService } from './rule-engine-api.service'; + +describe('RuleEngineApiService', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpModule], + providers: [RuleEngineApiService] + }); + }); + + it( + 'should be created', + inject([RuleEngineApiService], (service: RuleEngineApiService) => { + expect(service).toBeTruthy(); + }) + ); +}); diff --git a/public/src/app/rule-engine/api/rule-engine-api.service.ts b/public/src/app/rule-engine/api/rule-engine-api.service.ts new file mode 100644 index 0000000..0d7ab5e --- /dev/null +++ b/public/src/app/rule-engine/api/rule-engine-api.service.ts @@ -0,0 +1,134 @@ +import { Injectable, EventEmitter } from '@angular/core'; +import { + Http, + Response, + Headers, + RequestOptions, + URLSearchParams +} from '@angular/http'; +import { Observable, Subject } from 'rxjs/Rx'; +// Import RxJs required methods +import 'rxjs/add/operator/map'; +import 'rxjs/add/operator/catch'; +import { environment } from '../../../environments/environment'; +import { v4 as uuid } from 'uuid'; + +@Injectable() +export class RuleEngineApiService { + options: RequestOptions; + headers: Headers; + baseUrl: string; + vfcmtUuid: string; + dcaeCompName: string; + nid: string; + configParam: string; + flowType: string; + editorData: Subject<any> = new Subject(); + updateVersionLock: Subject<any> = new Subject(); + + constructor(private http: Http) { + this.baseUrl = `${environment.apiBaseUrl}/rule-editor`; + } + + setParams(params) { + this.headers = new Headers({ + 'Content-Type': 'application/json', + USER_ID: params.userId + }); + this.options = new RequestOptions({ headers: this.headers }); + this.vfcmtUuid = params.vfcmtUuid; + this.dcaeCompName = params.nodeName; + this.nid = params.nodeId; + this.configParam = params.fieldName; + this.flowType = params.flowType; + } + + setFieldName(name) { + this.configParam = name; + } + + getMetaData() { + const url = `${this.baseUrl}/list-events-by-versions`; + this.options.headers.set('X-ECOMP-RequestID', uuid()); + return this.http + .get(url, this.options) + .map((res: Response) => res.json()) + .catch((error: any) => + Observable.throw(error.json().requestError || 'Server error') + ); + } + + getSchema(version, eventType) { + const url = `${this.baseUrl}/definition/${version}/${eventType}`; + this.options.headers.set('X-ECOMP-RequestID', uuid()); + return this.http + .get(url, this.options) + .map((res: Response) => res.json()) + .catch((error: any) => + Observable.throw(error.json().requestError || 'Server error') + ); + } + + getListOfRules(): Observable<any> { + const url = `${this.baseUrl}/rule/${this.vfcmtUuid}/${this.dcaeCompName}/${ + this.nid + }/${this.configParam}`; + this.options.headers.set('X-ECOMP-RequestID', uuid()); + return this.http + .get(url, this.options) + .map(response => response.json()) + .catch((error: any) => { + return Observable.throw(error.json().requestError || 'Server error'); + }); + } + + modifyRule(newRole) { + const url = `${this.baseUrl}/rule/${this.vfcmtUuid}/${this.dcaeCompName}/${ + this.nid + }/${this.configParam}`; + this.options.headers.set('X-ECOMP-RequestID', uuid()); + return this.http + .post(url, newRole, this.options) + .map((res: Response) => res.json()) + .catch((error: any) => { + return Observable.throw(error.json().requestError || 'Server error'); + }); + } + + deleteRule(uid) { + const url = `${this.baseUrl}/rule/${this.vfcmtUuid}/${this.dcaeCompName}/${ + this.nid + }/${this.configParam}/${uid}`; + this.options.headers.set('X-ECOMP-RequestID', uuid()); + return this.http + .delete(url, this.options) + .map((res: Response) => res.json()) + .catch((error: any) => { + return Observable.throw(error.json().requestError || 'Server error'); + }); + } + + translate() { + const url = `${this.baseUrl}/rule/translate/${this.vfcmtUuid}/${ + this.dcaeCompName + }/${this.nid}/${this.configParam}`; + this.options.headers.set('X-ECOMP-RequestID', uuid()); + const params = new URLSearchParams(); + params.append('flowType', this.flowType); + const options = { ...this.options, params: params }; + return this.http + .get(url, options) + .map(response => response.json()) + .catch((error: any) => { + return Observable.throw(error.json().requestError || 'Server error'); + }); + } + + passDataToEditor(data) { + this.editorData.next(data); + } + + callUpdateVersionLock() { + this.updateVersionLock.next(); + } +} |