adding inputs and outputs attributes

Issue-ID: CCSDK-2874
Signed-off-by: ShaabanEltanany <shaaban.eltanany.ext@orange.com>
Change-Id: I2135575105379be9dc464245ea3a74029d541baf
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.ts
index 8e8b6ad..ee4b199 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.ts
@@ -1,5 +1,6 @@
 import {Component, OnInit} from '@angular/core';
 import {InputActionAttribute, OutputActionAttribute} from './models/InputActionAttribute';
+import {DesignerStore} from '../designer.store';
 
 @Component({
     selector: 'app-action-attributes',
@@ -18,7 +19,7 @@
     outputOtherType = '';
     inputOtherType = '';
 
-    constructor() {
+    constructor(private designerStore: DesignerStore) {
 
     }
 
@@ -67,6 +68,9 @@
         this.addInput(this.inputActionAttribute);
         this.addOutput(this.outputActionAttribute);
         this.clearFormInputs();
+        console.log(this.storeInputs(this.inputs));
+        this.designerStore.setInputsToSpecificWorkflow(this.storeInputs(this.inputs));
+        console.log(this.storeOutputs(this.outputs));
     }
 
     private clearFormInputs() {
@@ -75,4 +79,34 @@
         this.outputOtherType = '';
         this.inputOtherType = '';
     }
+
+    private storeInputs(InputActionAttributes: InputActionAttribute[]) {
+
+        let inputs = '';
+        InputActionAttributes.forEach(input => {
+            inputs += this.appendAttributes(input);
+
+        });
+        const returnedInputMap = new Map<string, string>();
+        returnedInputMap.set('inputs', inputs);
+        return returnedInputMap;
+    }
+
+    private storeOutputs(OutputActionAttributes: OutputActionAttribute[]) {
+        let outputs = '';
+        OutputActionAttributes.forEach(output => {
+            outputs += this.appendAttributes(output);
+        });
+        const returnedOutputMap = new Map<string, string>();
+        returnedOutputMap.set('outputs', outputs);
+        return returnedOutputMap;
+    }
+
+    private appendAttributes(output: OutputActionAttribute) {
+        return '"' + output.name + '":{\n' +
+            '                \'required\': ' + output.required + ',\n' +
+            '                \'type\': "' + output.type + '",\n' +
+            '                \'description\': "' + output.description + '"\n' +
+            '            }' + '\n';
+    }
 }
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.store.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.store.ts
index e07fbb9..923d59e 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.store.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.store.ts
@@ -145,6 +145,17 @@
         });
     }
 
+    setInputsToSpecificWorkflow(inputs: Map<string, string>) {
+        const mapOfWorkflows = this.state.template.workflows;
+        /*mapOfWorkflows.forEach(((value, key) => {
+            if (value.includes('resource-assignment')) {
+                value += inputs;
+            }
+        }));*/
+        console.log('the new workflows');
+        console.log(mapOfWorkflows);
+    }
+
     clear() {
         this.setState(new DesignerDashboardState());
     }