summaryrefslogtreecommitdiffstats
path: root/sdc-workflow-designer-ui/src/app/components/property/rest-task
diff options
context:
space:
mode:
authorLvbo163 <lv.bo163@zte.com.cn>2017-09-05 11:26:28 +0800
committerLvbo163 <lv.bo163@zte.com.cn>2017-09-05 11:26:28 +0800
commit4251a21da3b59005344d8b05497639b4d2fda631 (patch)
treeda4e6ea73f11af472f2e81aba88d12959fabf2f7 /sdc-workflow-designer-ui/src/app/components/property/rest-task
parentb613e1a776d5751818b46c11cd94257873b01243 (diff)
get parameters for rest task
get parameters for rest task from swagger definition Issue-ID: SDC-284 Change-Id: I3d3504fffe1e99d1793a74de2af585a5393cb358 Signed-off-by: Lvbo163 <lv.bo163@zte.com.cn>
Diffstat (limited to 'sdc-workflow-designer-ui/src/app/components/property/rest-task')
-rw-r--r--sdc-workflow-designer-ui/src/app/components/property/rest-task/rest-task.component.ts34
1 files changed, 32 insertions, 2 deletions
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 654d19b9..58b28370 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
@@ -19,6 +19,8 @@ import { RestTask } from '../../../model/workflow/rest-task';
import { BroadcastService } from '../../../services/broadcast.service';
import { WorkflowConfigService } from '../../../services/workflow-config.service';
import { Microservice } from "../../../model/workflow/microservice";
+import { WorkflowUtil } from "../../../util/workflow-util";
+import { RestParameter } from "../../../model/workflow/rest-parameter";
@Component({
selector: 'b4t-rest-task',
@@ -107,7 +109,35 @@ export class RestTaskComponent implements AfterViewInit, OnInit {
}
private updateMethodInfo() {
- // TODO update parameters
- console.log('rest task updated');
+ if (this.node.method) {
+ const path: any = this.swagger.paths[this.node.url];
+ const method: SwaggerMethod = path[this.node.method];
+
+ this.node.consumes = WorkflowUtil.deepClone(method.consumes);
+ this.node.produces = WorkflowUtil.deepClone(method.produces);
+
+ // request parameters
+ method.parameters.forEach(param => {
+ const nodeParam = new RestParameter(param.name, '', ValueSource[ValueSource.String],
+ param.type, param.position, param.schema);
+ this.node.parameters.push(nodeParam);
+ });
+
+ // response parameters
+ const responseParams = this.getResponseParameters(method.responses);
+ this.node.responses = responseParams.map(param => WorkflowUtil.deepClone(param));
+ }
+ }
+
+ private getResponseParameters(responses: any) {
+ let response: SwaggerResponse = null;
+
+ for (const key of Object.keys(responses)) {
+ if (key.startsWith('20')) {
+ response = responses[key];
+ }
+ }
+
+ return [response];
}
}