From 230109ebf31b922a5b84d8936ac3e9afbbf9e1b5 Mon Sep 17 00:00:00 2001 From: Lvbo163 Date: Wed, 6 Sep 2017 09:25:40 +0800 Subject: support set path and query parameters support set path and query parameters for rest task Issue-ID: SDC-285 Change-Id: I4e8e17bea57898487d5d81c86ea3fd24e7529882 Signed-off-by: Lvbo163 --- sdc-workflow-designer-ui/src/app/app.module.ts | 2 + .../rest-task-parameters.component.html | 14 +++++ .../rest-task-parameters.component.ts | 69 ++++++++++++++++++++++ .../property/rest-task/rest-task.component.html | 2 + .../property/rest-task/rest-task.component.ts | 7 +++ .../src/app/services/broadcast.service.ts | 3 + 6 files changed, 97 insertions(+) create mode 100644 sdc-workflow-designer-ui/src/app/components/property/rest-task/rest-task-parameters/rest-task-parameters.component.html create mode 100644 sdc-workflow-designer-ui/src/app/components/property/rest-task/rest-task-parameters/rest-task-parameters.component.ts (limited to 'sdc-workflow-designer-ui/src/app') diff --git a/sdc-workflow-designer-ui/src/app/app.module.ts b/sdc-workflow-designer-ui/src/app/app.module.ts index 302f5b78..f2577196 100644 --- a/sdc-workflow-designer-ui/src/app/app.module.ts +++ b/sdc-workflow-designer-ui/src/app/app.module.ts @@ -37,6 +37,7 @@ import { MicroserviceListComponent } from "./components/menu/microservice/micros import { ModalModule } from "ngx-bootstrap/modal"; import { WorkflowConfigService } from "./services/workflow-config.service"; import { RestTaskComponent } from "./components/property/rest-task/rest-task.component"; +import { RestTaskParametersComponent } from "./components/property/rest-task/rest-task-parameters/rest-task-parameters.component"; @NgModule({ declarations: [ @@ -50,6 +51,7 @@ import { RestTaskComponent } from "./components/property/rest-task/rest-task.com ParameterComponent, PropertiesComponent, RestTaskComponent, + RestTaskParametersComponent, StartEventParametersComponent, ToolbarComponent, ], diff --git a/sdc-workflow-designer-ui/src/app/components/property/rest-task/rest-task-parameters/rest-task-parameters.component.html b/sdc-workflow-designer-ui/src/app/components/property/rest-task/rest-task-parameters/rest-task-parameters.component.html new file mode 100644 index 00000000..4f98e689 --- /dev/null +++ b/sdc-workflow-designer-ui/src/app/components/property/rest-task/rest-task-parameters/rest-task-parameters.component.html @@ -0,0 +1,14 @@ + + diff --git a/sdc-workflow-designer-ui/src/app/components/property/rest-task/rest-task-parameters/rest-task-parameters.component.ts b/sdc-workflow-designer-ui/src/app/components/property/rest-task/rest-task-parameters/rest-task-parameters.component.ts new file mode 100644 index 00000000..f2d802c2 --- /dev/null +++ b/sdc-workflow-designer-ui/src/app/components/property/rest-task/rest-task-parameters/rest-task-parameters.component.ts @@ -0,0 +1,69 @@ +/** + * Copyright (c) 2017 ZTE Corporation. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and the Apache License 2.0 which both accompany this distribution, + * and are available at http://www.eclipse.org/legal/epl-v10.html + * and http://www.apache.org/licenses/LICENSE-2.0 + * + * Contributors: + * ZTE - initial API and implementation and/or initial documentation + */ + +import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; +import { TreeNode } from 'primeng/primeng'; + +import { Swagger } from '../../../../model/swagger'; +import { RestTask } from '../../../../model/workflow/rest-task'; +import { BroadcastService } from '../../../../services/broadcast.service'; +import { RestParameter } from "../../../../model/workflow/rest-parameter"; +import { ValueSource } from "../../../../model/value-source.enum"; + +/** + * property component presents information of a workflow node. + * the presented information can be edit in this component. + * it may load information dynamically. the content may be different for different node type. + */ +@Component({ + selector: 'b4t-rest-task-parameters', + templateUrl: 'rest-task-parameters.component.html', +}) +export class RestTaskParametersComponent implements OnInit { + @Input() public task: RestTask; + + public inputSources: ValueSource[] = [ValueSource.String]; + public requestParameters: RestParameter[] = []; // not include body parameter + public bodyParameter: TreeNode[] = []; + public responseParameter: TreeNode[] = []; + public valueSource = ValueSource; + + private index = 1; + + constructor(private broadcastService: BroadcastService) { + } + + public ngOnInit() { + this.broadcastService.nodeTaskChange$.subscribe(() => { + this.resetRequestParams(); + this.resetResponseParams(); + }); + } + + public resetRequestParams() { + this.requestParameters = []; + this.bodyParameter = []; + + this.task.parameters.forEach(param => { + if (param.position === 'body') { + // TODO add body parameter handler + // this.bodyParameter.push(param); + } else { + this.requestParameters.push(param); + } + }); + } + + public resetResponseParams() { + // TODO add response body handler + } +} diff --git a/sdc-workflow-designer-ui/src/app/components/property/rest-task/rest-task.component.html b/sdc-workflow-designer-ui/src/app/components/property/rest-task/rest-task.component.html index 75422581..a416944c 100644 --- a/sdc-workflow-designer-ui/src/app/components/property/rest-task/rest-task.component.html +++ b/sdc-workflow-designer-ui/src/app/components/property/rest-task/rest-task.component.html @@ -42,3 +42,5 @@
+ + diff --git a/sdc-workflow-designer-ui/src/app/components/property/rest-task/rest-task.component.ts b/sdc-workflow-designer-ui/src/app/components/property/rest-task/rest-task.component.ts index 58b28370..6c264646 100644 --- a/sdc-workflow-designer-ui/src/app/components/property/rest-task/rest-task.component.ts +++ b/sdc-workflow-designer-ui/src/app/components/property/rest-task/rest-task.component.ts @@ -46,9 +46,14 @@ export class RestTaskComponent implements AfterViewInit, OnInit { public ngAfterViewInit() { setTimeout(() => { this.loadInterfaces(); + this.notifyTaskChanged(); }, 0); } + private notifyTaskChanged() { + this.broadcastService.broadcast(this.broadcastService.nodeTaskChange, this.node); + } + public getText4Microservice(microservice: Microservice): string { return `${microservice.name} [${microservice.version}] `; } @@ -78,6 +83,8 @@ export class RestTaskComponent implements AfterViewInit, OnInit { this.node.responses = []; this.updateMethodInfo(); + + this.notifyTaskChanged(); } diff --git a/sdc-workflow-designer-ui/src/app/services/broadcast.service.ts b/sdc-workflow-designer-ui/src/app/services/broadcast.service.ts index d5be2316..eb87ba09 100644 --- a/sdc-workflow-designer-ui/src/app/services/broadcast.service.ts +++ b/sdc-workflow-designer-ui/src/app/services/broadcast.service.ts @@ -34,6 +34,9 @@ export class BroadcastService { public nodeProperty = new Subject(); public nodeProperty$ = this.nodeProperty.asObservable(); + public nodeTaskChange = new Subject(); + public nodeTaskChange$ = this.nodeTaskChange.asObservable(); + /** * broadcast datas * this method will catch the exceptions for the broadcast -- cgit 1.2.3-korg