@things-factory/integration-base 5.0.0-alpha.50 → 5.0.0-alpha.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist-server/engine/task/graphql-mutate.js +20 -6
  2. package/dist-server/engine/task/graphql-mutate.js.map +1 -1
  3. package/dist-server/engine/task/graphql-query.js +18 -3
  4. package/dist-server/engine/task/graphql-query.js.map +1 -1
  5. package/dist-server/engine/task/local-graphql-mutate.js +20 -6
  6. package/dist-server/engine/task/local-graphql-mutate.js.map +1 -1
  7. package/dist-server/engine/task/local-graphql-query.js +20 -6
  8. package/dist-server/engine/task/local-graphql-query.js.map +1 -1
  9. package/dist-server/engine/task/switch-goto.js +1 -1
  10. package/dist-server/engine/task/switch-goto.js.map +1 -1
  11. package/dist-server/engine/task/switch-range-goto.js +1 -1
  12. package/dist-server/engine/task/switch-range-goto.js.map +1 -1
  13. package/dist-server/engine/task/switch-range-scenario.js +3 -3
  14. package/dist-server/engine/task/switch-range-scenario.js.map +1 -1
  15. package/dist-server/engine/task/switch-scenario.js +3 -3
  16. package/dist-server/engine/task/switch-scenario.js.map +1 -1
  17. package/helps/integration/task/graphql-mutate.md +44 -0
  18. package/helps/integration/task/graphql-query.md +44 -0
  19. package/helps/integration/task/local-graphql-mutate.md +24 -1
  20. package/helps/integration/task/local-graphql-query.md +25 -2
  21. package/package.json +7 -7
  22. package/server/engine/task/graphql-mutate.ts +24 -7
  23. package/server/engine/task/graphql-query.ts +21 -3
  24. package/server/engine/task/local-graphql-mutate.ts +23 -6
  25. package/server/engine/task/local-graphql-query.ts +23 -6
  26. package/server/engine/task/switch-goto.ts +2 -1
  27. package/server/engine/task/switch-range-goto.ts +2 -1
  28. package/server/engine/task/switch-range-scenario.ts +5 -3
  29. package/server/engine/task/switch-scenario.ts +5 -3
@@ -5,11 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const graphql_tag_1 = __importDefault(require("graphql-tag"));
7
7
  const vm2_1 = require("vm2");
8
- const task_registry_1 = require("../task-registry");
8
+ const utils_1 = require("@things-factory/utils");
9
9
  const connection_manager_1 = require("../connection-manager");
10
+ const task_registry_1 = require("../task-registry");
10
11
  async function GraphqlMutate(step, context) {
11
12
  var { connection: connectionName, params: stepOptions } = step;
12
- var { mutation } = stepOptions || {};
13
+ var { mutation, variables: variablesAccessorMap } = stepOptions || {};
13
14
  var { data, variables } = context;
14
15
  const vm = new vm2_1.VM({
15
16
  sandbox: {
@@ -19,14 +20,19 @@ async function GraphqlMutate(step, context) {
19
20
  });
20
21
  mutation = vm.run('`' + mutation + '`');
21
22
  var client = connection_manager_1.ConnectionManager.getConnectionInstanceByName(context.domain, connectionName);
22
- var response = await client.mutate({
23
+ const queryVariables = Object.keys(variablesAccessorMap).reduce((variables, key) => {
24
+ const accessor = variablesAccessorMap[key];
25
+ variables[key] = (0, utils_1.access)(accessor, data);
26
+ return variables;
27
+ }, {});
28
+ var { data: mutateResult } = await client.mutate({
23
29
  mutation: (0, graphql_tag_1.default) `
24
30
  ${mutation}
25
- `
31
+ `,
32
+ variables: queryVariables
26
33
  });
27
- var { data: mutationResult } = response.data;
28
34
  return {
29
- data: mutationResult
35
+ data: mutateResult
30
36
  };
31
37
  }
32
38
  GraphqlMutate.parameterSpec = [
@@ -34,6 +40,14 @@ GraphqlMutate.parameterSpec = [
34
40
  type: 'graphql',
35
41
  name: 'mutation',
36
42
  label: 'mutation'
43
+ },
44
+ {
45
+ type: 'key-values',
46
+ name: 'variables',
47
+ label: 'variables',
48
+ property: {
49
+ options: [] //'scenario-step-input'
50
+ }
37
51
  }
38
52
  ];
39
53
  GraphqlMutate.help = 'integration/task/graphql-mutate';
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-mutate.js","sourceRoot":"","sources":["../../../server/engine/task/graphql-mutate.ts"],"names":[],"mappings":";;;;;AAAA,8DAA6B;AAC7B,6BAAwB;AACxB,oDAA+C;AAC/C,8DAAyD;AAEzD,KAAK,UAAU,aAAa,CAAC,IAAI,EAAE,OAAO;IACxC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IAC9D,IAAI,EAAE,QAAQ,EAAE,GAAG,WAAW,IAAI,EAAE,CAAA;IACpC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAEjC,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAA;IAEvC,IAAI,MAAM,GAAG,sCAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAE1F,IAAI,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACjC,QAAQ,EAAE,IAAA,qBAAG,EAAA;QACT,QAAQ;KACX;KACF,CAAC,CAAA;IAEF,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAA;IAE5C,OAAO;QACL,IAAI,EAAE,cAAc;KACrB,CAAA;AACH,CAAC;AAED,aAAa,CAAC,aAAa,GAAG;IAC5B;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;CACF,CAAA;AACD,aAAa,CAAC,IAAI,GAAG,iCAAiC,CAAA;AAEtD,4BAAY,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA"}
1
+ {"version":3,"file":"graphql-mutate.js","sourceRoot":"","sources":["../../../server/engine/task/graphql-mutate.ts"],"names":[],"mappings":";;;;;AAAA,8DAA6B;AAC7B,6BAAwB;AAExB,iDAA8C;AAE9C,8DAAyD;AACzD,oDAA+C;AAE/C,KAAK,UAAU,aAAa,CAAC,IAAI,EAAE,OAAO;IACxC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IAC9D,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,WAAW,IAAI,EAAE,CAAA;IAErE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAEjC,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAA;IAEvC,IAAI,MAAM,GAAG,sCAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAE1F,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;QACjF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC1C,SAAS,CAAC,GAAG,CAAC,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACvC,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QAC/C,QAAQ,EAAE,IAAA,qBAAG,EAAA;QACT,QAAQ;KACX;QACD,SAAS,EAAE,cAAc;KAC1B,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,YAAY;KACnB,CAAA;AACH,CAAC;AAED,aAAa,CAAC,aAAa,GAAG;IAC5B;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,CAAC,uBAAuB;SACpC;KACF;CACF,CAAA;AACD,aAAa,CAAC,IAAI,GAAG,iCAAiC,CAAA;AAEtD,4BAAY,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA"}
@@ -5,11 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const graphql_tag_1 = __importDefault(require("graphql-tag"));
7
7
  const vm2_1 = require("vm2");
8
- const task_registry_1 = require("../task-registry");
8
+ const utils_1 = require("@things-factory/utils");
9
9
  const connection_manager_1 = require("../connection-manager");
10
+ const task_registry_1 = require("../task-registry");
10
11
  async function GraphqlQuery(step, context) {
11
12
  var { connection: connectionName, params: stepOptions } = step;
12
- var { query } = stepOptions || {};
13
+ var { query, variables: variablesAccessorMap } = stepOptions || {};
13
14
  var { domain, data, variables } = context;
14
15
  const vm = new vm2_1.VM({
15
16
  sandbox: {
@@ -19,10 +20,16 @@ async function GraphqlQuery(step, context) {
19
20
  });
20
21
  query = vm.run('`' + query + '`');
21
22
  var client = connection_manager_1.ConnectionManager.getConnectionInstanceByName(domain, connectionName);
23
+ const queryVariables = Object.keys(variablesAccessorMap).reduce((variables, key) => {
24
+ const accessor = variablesAccessorMap[key];
25
+ variables[key] = (0, utils_1.access)(accessor, data);
26
+ return variables;
27
+ }, {});
22
28
  var { data: queryResult } = await client.query({
23
29
  query: (0, graphql_tag_1.default) `
24
30
  ${query}
25
- `
31
+ `,
32
+ variables: queryVariables
26
33
  });
27
34
  return {
28
35
  data: queryResult
@@ -33,6 +40,14 @@ GraphqlQuery.parameterSpec = [
33
40
  type: 'graphql',
34
41
  name: 'query',
35
42
  label: 'query'
43
+ },
44
+ {
45
+ type: 'key-values',
46
+ name: 'variables',
47
+ label: 'variables',
48
+ property: {
49
+ options: [] //'scenario-step-input'
50
+ }
36
51
  }
37
52
  ];
38
53
  GraphqlQuery.help = 'integration/task/graphql-query';
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-query.js","sourceRoot":"","sources":["../../../server/engine/task/graphql-query.ts"],"names":[],"mappings":";;;;;AAAA,8DAA6B;AAC7B,6BAAwB;AACxB,oDAA+C;AAC/C,8DAAyD;AAEzD,KAAK,UAAU,YAAY,CAAC,IAAI,EAAE,OAAO;IACvC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IAC9D,IAAI,EAAE,KAAK,EAAE,GAAG,WAAW,IAAI,EAAE,CAAA;IACjC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAEzC,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAA;IAEjC,IAAI,MAAM,GAAG,sCAAiB,CAAC,2BAA2B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAElF,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAC7C,KAAK,EAAE,IAAA,qBAAG,EAAA;QACN,KAAK;KACR;KACF,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,WAAW;KAClB,CAAA;AACH,CAAC;AAED,YAAY,CAAC,aAAa,GAAG;IAC3B;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;KACf;CACF,CAAA;AACD,YAAY,CAAC,IAAI,GAAG,gCAAgC,CAAA;AAEpD,4BAAY,CAAC,mBAAmB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA"}
1
+ {"version":3,"file":"graphql-query.js","sourceRoot":"","sources":["../../../server/engine/task/graphql-query.ts"],"names":[],"mappings":";;;;;AAAA,8DAA6B;AAC7B,6BAAwB;AAExB,iDAA8C;AAE9C,8DAAyD;AACzD,oDAA+C;AAE/C,KAAK,UAAU,YAAY,CAAC,IAAI,EAAE,OAAO;IACvC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IAC9D,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,WAAW,IAAI,EAAE,CAAA;IAClE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAEzC,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAA;IAEjC,IAAI,MAAM,GAAG,sCAAiB,CAAC,2BAA2B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAElF,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;QACjF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC1C,SAAS,CAAC,GAAG,CAAC,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACvC,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAC7C,KAAK,EAAE,IAAA,qBAAG,EAAA;QACN,KAAK;KACR;QACD,SAAS,EAAE,cAAc;KAC1B,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,WAAW;KAClB,CAAA;AACH,CAAC;AAED,YAAY,CAAC,aAAa,GAAG;IAC3B;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;KACf;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,CAAC,uBAAuB;SACpC;KACF;CACF,CAAA;AACD,YAAY,CAAC,IAAI,GAAG,gCAAgC,CAAA;AAEpD,4BAAY,CAAC,mBAAmB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA"}
@@ -3,14 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const task_registry_1 = require("../task-registry");
7
- const auth_base_1 = require("@things-factory/auth-base");
8
- const vm2_1 = require("vm2");
9
- const typeorm_1 = require("typeorm");
10
6
  const graphql_tag_1 = __importDefault(require("graphql-tag"));
7
+ const typeorm_1 = require("typeorm");
8
+ const vm2_1 = require("vm2");
9
+ const auth_base_1 = require("@things-factory/auth-base");
10
+ const utils_1 = require("@things-factory/utils");
11
+ const task_registry_1 = require("../task-registry");
11
12
  async function LocalGraphqlMutate(step, context) {
12
13
  var { params, updaterId } = step;
13
- var { mutation } = params || {};
14
+ var { mutation, variables: variablesAccessorMap } = params || {};
14
15
  var { client, domain, data, variables } = context;
15
16
  const user = await (0, typeorm_1.getRepository)(auth_base_1.User).findOne(updaterId, {
16
17
  relations: ['domains']
@@ -22,11 +23,16 @@ async function LocalGraphqlMutate(step, context) {
22
23
  }
23
24
  });
24
25
  mutation = vm.run('`' + mutation + '`');
26
+ const queryVariables = Object.keys(variablesAccessorMap).reduce((variables, key) => {
27
+ const accessor = variablesAccessorMap[key];
28
+ variables[key] = (0, utils_1.access)(accessor, data);
29
+ return variables;
30
+ }, {});
25
31
  var { data: mutateResult } = await client.mutate({
26
32
  mutation: (0, graphql_tag_1.default) `
27
33
  ${mutation}
28
34
  `,
29
- variables,
35
+ variables: queryVariables,
30
36
  context: {
31
37
  state: {
32
38
  domain,
@@ -43,6 +49,14 @@ LocalGraphqlMutate.parameterSpec = [
43
49
  type: 'graphql',
44
50
  name: 'mutation',
45
51
  label: 'mutation'
52
+ },
53
+ {
54
+ type: 'key-values',
55
+ name: 'variables',
56
+ label: 'variables',
57
+ property: {
58
+ options: [] //'scenario-step-input'
59
+ }
46
60
  }
47
61
  ];
48
62
  LocalGraphqlMutate.connectorFree = true;
@@ -1 +1 @@
1
- {"version":3,"file":"local-graphql-mutate.js","sourceRoot":"","sources":["../../../server/engine/task/local-graphql-mutate.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C;AAC/C,yDAAgD;AAChD,6BAAwB;AACxB,qCAAuC;AACvC,8DAA6B;AAE7B,KAAK,UAAU,kBAAkB,CAAC,IAAI,EAAE,OAAO;IAC7C,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAChC,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAC/B,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAEjD,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE;QACxD,SAAS,EAAE,CAAC,SAAS,CAAC;KACvB,CAAC,CAAA;IAEF,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAA;IAEvC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QAC/C,QAAQ,EAAE,IAAA,qBAAG,EAAA;QACT,QAAQ;KACX;QACD,SAAS;QACT,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,YAAY;KACnB,CAAA;AACH,CAAC;AAED,kBAAkB,CAAC,aAAa,GAAG;IACjC;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;CACF,CAAA;AAED,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAA;AACvC,kBAAkB,CAAC,IAAI,GAAG,uCAAuC,CAAA;AAEjE,4BAAY,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAA"}
1
+ {"version":3,"file":"local-graphql-mutate.js","sourceRoot":"","sources":["../../../server/engine/task/local-graphql-mutate.ts"],"names":[],"mappings":";;;;;AAAA,8DAA6B;AAC7B,qCAAuC;AACvC,6BAAwB;AAExB,yDAAgD;AAChD,iDAA8C;AAE9C,oDAA+C;AAE/C,KAAK,UAAU,kBAAkB,CAAC,IAAI,EAAE,OAAO;IAC7C,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAChC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAChE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAEjD,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE;QACxD,SAAS,EAAE,CAAC,SAAS,CAAC;KACvB,CAAC,CAAA;IAEF,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAA;IAEvC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;QACjF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC1C,SAAS,CAAC,GAAG,CAAC,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACvC,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QAC/C,QAAQ,EAAE,IAAA,qBAAG,EAAA;QACT,QAAQ;KACX;QACD,SAAS,EAAE,cAAc;QACzB,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,YAAY;KACnB,CAAA;AACH,CAAC;AAED,kBAAkB,CAAC,aAAa,GAAG;IACjC;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,CAAC,uBAAuB;SACpC;KACF;CACF,CAAA;AAED,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAA;AACvC,kBAAkB,CAAC,IAAI,GAAG,uCAAuC,CAAA;AAEjE,4BAAY,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAA"}
@@ -3,14 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const task_registry_1 = require("../task-registry");
7
- const auth_base_1 = require("@things-factory/auth-base");
8
- const vm2_1 = require("vm2");
9
- const typeorm_1 = require("typeorm");
10
6
  const graphql_tag_1 = __importDefault(require("graphql-tag"));
7
+ const typeorm_1 = require("typeorm");
8
+ const vm2_1 = require("vm2");
9
+ const auth_base_1 = require("@things-factory/auth-base");
10
+ const utils_1 = require("@things-factory/utils");
11
+ const task_registry_1 = require("../task-registry");
11
12
  async function LocalGraphqlQuery(step, context) {
12
13
  var { params, updaterId } = step;
13
- var { query } = params || {};
14
+ var { query, variables: variablesAccessorMap } = params || {};
14
15
  var { client, domain, data, variables } = context;
15
16
  const user = await (0, typeorm_1.getRepository)(auth_base_1.User).findOne(updaterId, {
16
17
  relations: ['domains']
@@ -22,11 +23,16 @@ async function LocalGraphqlQuery(step, context) {
22
23
  }
23
24
  });
24
25
  query = vm.run('`' + query + '`');
26
+ const queryVariables = Object.keys(variablesAccessorMap).reduce((variables, key) => {
27
+ const accessor = variablesAccessorMap[key];
28
+ variables[key] = (0, utils_1.access)(accessor, data);
29
+ return variables;
30
+ }, {});
25
31
  var { data: queryResult } = await client.query({
26
32
  query: (0, graphql_tag_1.default) `
27
33
  ${query}
28
34
  `,
29
- variables,
35
+ variables: queryVariables,
30
36
  context: {
31
37
  state: {
32
38
  domain,
@@ -43,6 +49,14 @@ LocalGraphqlQuery.parameterSpec = [
43
49
  type: 'graphql',
44
50
  name: 'query',
45
51
  label: 'query'
52
+ },
53
+ {
54
+ type: 'key-values',
55
+ name: 'variables',
56
+ label: 'variables',
57
+ property: {
58
+ options: [] //'scenario-step-input'
59
+ }
46
60
  }
47
61
  ];
48
62
  LocalGraphqlQuery.connectorFree = true;
@@ -1 +1 @@
1
- {"version":3,"file":"local-graphql-query.js","sourceRoot":"","sources":["../../../server/engine/task/local-graphql-query.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C;AAC/C,yDAAgD;AAChD,6BAAwB;AACxB,qCAAuC;AACvC,8DAA6B;AAE7B,KAAK,UAAU,iBAAiB,CAAC,IAAI,EAAE,OAAO;IAC5C,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAChC,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAC5B,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAEjD,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE;QACxD,SAAS,EAAE,CAAC,SAAS,CAAC;KACvB,CAAC,CAAA;IAEF,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAA;IAEjC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAC7C,KAAK,EAAE,IAAA,qBAAG,EAAA;QACN,KAAK;KACR;QACD,SAAS;QACT,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,WAAW;KAClB,CAAA;AACH,CAAC;AAED,iBAAiB,CAAC,aAAa,GAAG;IAChC;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;KACf;CACF,CAAA;AAED,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAA;AACtC,iBAAiB,CAAC,IAAI,GAAG,uCAAuC,CAAA;AAEhE,4BAAY,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,CAAA"}
1
+ {"version":3,"file":"local-graphql-query.js","sourceRoot":"","sources":["../../../server/engine/task/local-graphql-query.ts"],"names":[],"mappings":";;;;;AAAA,8DAA6B;AAC7B,qCAAuC;AACvC,6BAAwB;AAExB,yDAAgD;AAChD,iDAA8C;AAE9C,oDAA+C;AAE/C,KAAK,UAAU,iBAAiB,CAAC,IAAI,EAAE,OAAO;IAC5C,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAChC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAC7D,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAEjD,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE;QACxD,SAAS,EAAE,CAAC,SAAS,CAAC;KACvB,CAAC,CAAA;IAEF,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAA;IAEjC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;QACjF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC1C,SAAS,CAAC,GAAG,CAAC,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACvC,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAC7C,KAAK,EAAE,IAAA,qBAAG,EAAA;QACN,KAAK;KACR;QACD,SAAS,EAAE,cAAc;QACzB,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,WAAW;KAClB,CAAA;AACH,CAAC;AAED,iBAAiB,CAAC,aAAa,GAAG;IAChC;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;KACf;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,CAAC,uBAAuB;SACpC;KACF;CACF,CAAA;AAED,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAA;AACtC,iBAAiB,CAAC,IAAI,GAAG,uCAAuC,CAAA;AAEhE,4BAAY,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,CAAA"}
@@ -21,7 +21,7 @@ SwitchGoTo.parameterSpec = [
21
21
  type: 'map',
22
22
  name: 'cases',
23
23
  label: 'cases',
24
- properties: {
24
+ property: {
25
25
  valuetype: 'scenario-step-input'
26
26
  }
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"switch-goto.js","sourceRoot":"","sources":["../../../server/engine/task/switch-goto.ts"],"names":[],"mappings":";;AAAA,iDAA8C;AAC9C,oDAA+C;AAE/C,KAAK,UAAU,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAC9C,IAAI,EACF,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAC5B,GAAG,IAAI,CAAA;IAER,IAAI,KAAK,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAElC,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;IAE3C,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,eAAe,KAAK,KAAK,CAAC,CAAA;IAE7D,OAAO;QACL,IAAI;KACL,CAAA;AACH,CAAC;AAED,UAAU,CAAC,aAAa,GAAG;IACzB;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,UAAU,EAAE;YACV,SAAS,EAAE,qBAAqB;SACjC;KACF;CACF,CAAA;AAED,UAAU,CAAC,aAAa,GAAG,IAAI,CAAA;AAE/B,4BAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;AACtD,4BAAY,CAAC,mBAAmB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA"}
1
+ {"version":3,"file":"switch-goto.js","sourceRoot":"","sources":["../../../server/engine/task/switch-goto.ts"],"names":[],"mappings":";;AAAA,iDAA8C;AAE9C,oDAA+C;AAE/C,KAAK,UAAU,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAC9C,IAAI,EACF,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAC5B,GAAG,IAAI,CAAA;IAER,IAAI,KAAK,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAElC,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;IAE3C,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,eAAe,KAAK,KAAK,CAAC,CAAA;IAE7D,OAAO;QACL,IAAI;KACL,CAAA;AACH,CAAC;AAED,UAAU,CAAC,aAAa,GAAG;IACzB;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE;YACR,SAAS,EAAE,qBAAqB;SACjC;KACF;CACF,CAAA;AAED,UAAU,CAAC,aAAa,GAAG,IAAI,CAAA;AAE/B,4BAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;AACtD,4BAAY,CAAC,mBAAmB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA"}
@@ -28,7 +28,7 @@ SwitchRangeGoTo.parameterSpec = [
28
28
  type: 'range',
29
29
  name: 'cases',
30
30
  label: 'cases',
31
- properties: {
31
+ property: {
32
32
  valuetype: 'scenario-step-input'
33
33
  }
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"switch-range-goto.js","sourceRoot":"","sources":["../../../server/engine/task/switch-range-goto.ts"],"names":[],"mappings":";;AAAA,iDAA8C;AAC9C,oDAA+C;AAE/C,KAAK,UAAU,eAAe,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACnD,IAAI,EACF,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAC5B,GAAG,IAAI,CAAA;IAER,IAAI,KAAK,GAAG,MAAM,CAAC,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;IAE1C,IAAI,KAAK,GACP,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC5B,IAAI,GAAG,IAAI,SAAS,EAAE;YACpB,OAAM;SACP;QAED,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAE/B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAA;IACpD,CAAC,CAAC,IAAI,SAAS,CAAA;IAEjB,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;IAEvB,MAAM,CAAC,IAAI,CAAC,yBAAyB,IAAI,eAAe,KAAK,KAAK,CAAC,CAAA;IAEnE,OAAO;QACL,IAAI;KACL,CAAA;AACH,CAAC;AAED,eAAe,CAAC,aAAa,GAAG;IAC9B;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,UAAU,EAAE;YACV,SAAS,EAAE,qBAAqB;SACjC;KACF;CACF,CAAA;AAED,eAAe,CAAC,aAAa,GAAG,IAAI,CAAA;AAEpC,4BAAY,CAAC,mBAAmB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAA;AACjE,4BAAY,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAA"}
1
+ {"version":3,"file":"switch-range-goto.js","sourceRoot":"","sources":["../../../server/engine/task/switch-range-goto.ts"],"names":[],"mappings":";;AAAA,iDAA8C;AAE9C,oDAA+C;AAE/C,KAAK,UAAU,eAAe,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACnD,IAAI,EACF,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAC5B,GAAG,IAAI,CAAA;IAER,IAAI,KAAK,GAAG,MAAM,CAAC,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;IAE1C,IAAI,KAAK,GACP,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC5B,IAAI,GAAG,IAAI,SAAS,EAAE;YACpB,OAAM;SACP;QAED,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAE/B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAA;IACpD,CAAC,CAAC,IAAI,SAAS,CAAA;IAEjB,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;IAEvB,MAAM,CAAC,IAAI,CAAC,yBAAyB,IAAI,eAAe,KAAK,KAAK,CAAC,CAAA;IAEnE,OAAO;QACL,IAAI;KACL,CAAA;AACH,CAAC;AAED,eAAe,CAAC,aAAa,GAAG;IAC9B;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE;YACR,SAAS,EAAE,qBAAqB;SACjC;KACF;CACF,CAAA;AAED,eAAe,CAAC,aAAa,GAAG,IAAI,CAAA;AAEpC,4BAAY,CAAC,mBAAmB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAA;AACjE,4BAAY,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAA"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const typeorm_1 = require("typeorm");
3
4
  const utils_1 = require("@things-factory/utils");
4
- const task_registry_1 = require("../task-registry");
5
5
  const service_1 = require("../../service");
6
- const typeorm_1 = require("typeorm");
6
+ const task_registry_1 = require("../task-registry");
7
7
  async function SwitchRangeScenario(step, context) {
8
8
  var { logger, data, load } = context;
9
9
  var { params: { accessor, cases, variables } } = step;
@@ -45,7 +45,7 @@ SwitchRangeScenario.parameterSpec = [
45
45
  type: 'range',
46
46
  name: 'cases',
47
47
  label: 'cases',
48
- properties: {
48
+ property: {
49
49
  valuetype: 'scenario-input'
50
50
  }
51
51
  },
@@ -1 +1 @@
1
- {"version":3,"file":"switch-range-scenario.js","sourceRoot":"","sources":["../../../server/engine/task/switch-range-scenario.ts"],"names":[],"mappings":";;AAAA,iDAAyD;AACzD,oDAA+C;AAC/C,2CAAwC;AACxC,qCAAuC;AAEvC,KAAK,UAAU,mBAAmB,CAAC,IAAI,EAAE,OAAO;IAC9C,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IACpC,IAAI,EACF,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EACvC,GAAG,IAAI,CAAA;IAER,IAAI,KAAK,GAAG,MAAM,CAAC,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;IAE1C,IAAI,KAAK,GACP,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC5B,IAAI,GAAG,IAAI,SAAS,EAAE;YACpB,OAAM;SACP;QAED,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAE/B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAA;IACpD,CAAC,CAAC,IAAI,SAAS,CAAA;IAEjB,IAAI,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;IAE/B,MAAM,CAAC,IAAI,CAAC,6BAA6B,YAAY,eAAe,KAAK,KAAK,CAAC,CAAA;IAE/E,IAAI,WAAW,GAAG,MAAM,IAAA,uBAAa,EAAC,kBAAQ,CAAC,CAAC,OAAO,CAAC;QACtD,KAAK,EAAE;YACL,IAAI,EAAE,YAAY;SACnB;QACD,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;KAC/B,CAAC,CAAA;IAEF,MAAM,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,IAAI,YAAY,CAAC,CAAA;IAC1D,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,WAAW,kCACxC,OAAO,KACV,IAAI,EAAE,EAAE;QACR;;;UAGE;QACF,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,IAAA,iBAAS,EAAC,IAAA,cAAM,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,IAC7E,CAAA;IACF,MAAM,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,IAAI,SAAS,CAAC,CAAA;IAEvD,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,IAAI;KACtB,CAAA;AACH,CAAC;AAED,mBAAmB,CAAC,aAAa,GAAG;IAClC;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,UAAU,EAAE;YACV,SAAS,EAAE,gBAAgB;SAC5B;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;KACnB;CACF,CAAA;AAED,mBAAmB,CAAC,aAAa,GAAG,IAAI,CAAA;AAExC,4BAAY,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,mBAAmB,CAAC,CAAA"}
1
+ {"version":3,"file":"switch-range-scenario.js","sourceRoot":"","sources":["../../../server/engine/task/switch-range-scenario.ts"],"names":[],"mappings":";;AAAA,qCAAuC;AAEvC,iDAAyD;AAEzD,2CAAwC;AACxC,oDAA+C;AAE/C,KAAK,UAAU,mBAAmB,CAAC,IAAI,EAAE,OAAO;IAC9C,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IACpC,IAAI,EACF,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EACvC,GAAG,IAAI,CAAA;IAER,IAAI,KAAK,GAAG,MAAM,CAAC,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;IAE1C,IAAI,KAAK,GACP,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC5B,IAAI,GAAG,IAAI,SAAS,EAAE;YACpB,OAAM;SACP;QAED,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAE/B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAA;IACpD,CAAC,CAAC,IAAI,SAAS,CAAA;IAEjB,IAAI,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;IAE/B,MAAM,CAAC,IAAI,CAAC,6BAA6B,YAAY,eAAe,KAAK,KAAK,CAAC,CAAA;IAE/E,IAAI,WAAW,GAAG,MAAM,IAAA,uBAAa,EAAC,kBAAQ,CAAC,CAAC,OAAO,CAAC;QACtD,KAAK,EAAE;YACL,IAAI,EAAE,YAAY;SACnB;QACD,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;KAC/B,CAAC,CAAA;IAEF,MAAM,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,IAAI,YAAY,CAAC,CAAA;IAC1D,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,WAAW,kCACxC,OAAO,KACV,IAAI,EAAE,EAAE;QACR;;;UAGE;QACF,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,IAAA,iBAAS,EAAC,IAAA,cAAM,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,IAC7E,CAAA;IACF,MAAM,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,IAAI,SAAS,CAAC,CAAA;IAEvD,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,IAAI;KACtB,CAAA;AACH,CAAC;AAED,mBAAmB,CAAC,aAAa,GAAG;IAClC;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE;YACR,SAAS,EAAE,gBAAgB;SAC5B;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;KACnB;CACF,CAAA;AAED,mBAAmB,CAAC,aAAa,GAAG,IAAI,CAAA;AAExC,4BAAY,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,mBAAmB,CAAC,CAAA"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const typeorm_1 = require("typeorm");
3
4
  const utils_1 = require("@things-factory/utils");
4
- const task_registry_1 = require("../task-registry");
5
5
  const service_1 = require("../../service");
6
- const typeorm_1 = require("typeorm");
6
+ const task_registry_1 = require("../task-registry");
7
7
  async function SwitchScenario(step, context) {
8
8
  var { logger, data, load } = context;
9
9
  var { params: { accessor, cases, variables } } = step;
@@ -38,7 +38,7 @@ SwitchScenario.parameterSpec = [
38
38
  type: 'map',
39
39
  name: 'cases',
40
40
  label: 'cases',
41
- properties: {
41
+ property: {
42
42
  valuetype: 'scenario-input'
43
43
  }
44
44
  },
@@ -1 +1 @@
1
- {"version":3,"file":"switch-scenario.js","sourceRoot":"","sources":["../../../server/engine/task/switch-scenario.ts"],"names":[],"mappings":";;AAAA,iDAAyD;AACzD,oDAA+C;AAC/C,2CAAwC;AACxC,qCAAuC;AAEvC,KAAK,UAAU,cAAc,CAAC,IAAI,EAAE,OAAO;IACzC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IACpC,IAAI,EACF,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EACvC,GAAG,IAAI,CAAA;IAER,IAAI,KAAK,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAElC,IAAI,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;IACnD,MAAM,CAAC,IAAI,CAAC,uBAAuB,YAAY,eAAe,KAAK,KAAK,CAAC,CAAA;IAEzE,IAAI,WAAW,GAAG,MAAM,IAAA,uBAAa,EAAC,kBAAQ,CAAC,CAAC,OAAO,CAAC;QACtD,KAAK,EAAE;YACL,IAAI,EAAE,YAAY;SACnB;QACD,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;KAC/B,CAAC,CAAA;IAEF,MAAM,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,IAAI,YAAY,CAAC,CAAA;IAC1D,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,WAAW,kCACxC,OAAO,KACV,IAAI,EAAE,EAAE;QACR;;;UAGE;QACF,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,IAAA,iBAAS,EAAC,IAAA,cAAM,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,IAC7E,CAAA;IACF,MAAM,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,IAAI,SAAS,CAAC,CAAA;IAEvD,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,IAAI;KACtB,CAAA;AACH,CAAC;AAED,cAAc,CAAC,aAAa,GAAG;IAC7B;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,UAAU,EAAE;YACV,SAAS,EAAE,gBAAgB;SAC5B;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;KACnB;CACF,CAAA;AAED,cAAc,CAAC,aAAa,GAAG,IAAI,CAAA;AAEnC,4BAAY,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAA"}
1
+ {"version":3,"file":"switch-scenario.js","sourceRoot":"","sources":["../../../server/engine/task/switch-scenario.ts"],"names":[],"mappings":";;AAAA,qCAAuC;AAEvC,iDAAyD;AAEzD,2CAAwC;AACxC,oDAA+C;AAE/C,KAAK,UAAU,cAAc,CAAC,IAAI,EAAE,OAAO;IACzC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IACpC,IAAI,EACF,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EACvC,GAAG,IAAI,CAAA;IAER,IAAI,KAAK,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAElC,IAAI,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;IACnD,MAAM,CAAC,IAAI,CAAC,uBAAuB,YAAY,eAAe,KAAK,KAAK,CAAC,CAAA;IAEzE,IAAI,WAAW,GAAG,MAAM,IAAA,uBAAa,EAAC,kBAAQ,CAAC,CAAC,OAAO,CAAC;QACtD,KAAK,EAAE;YACL,IAAI,EAAE,YAAY;SACnB;QACD,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;KAC/B,CAAC,CAAA;IAEF,MAAM,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,IAAI,YAAY,CAAC,CAAA;IAC1D,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,WAAW,kCACxC,OAAO,KACV,IAAI,EAAE,EAAE;QACR;;;UAGE;QACF,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,IAAA,iBAAS,EAAC,IAAA,cAAM,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,IAC7E,CAAA;IACF,MAAM,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,IAAI,SAAS,CAAC,CAAA;IAEvD,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,IAAI;KACtB,CAAA;AACH,CAAC;AAED,cAAc,CAAC,aAAa,GAAG;IAC7B;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE;YACR,SAAS,EAAE,gBAAgB;SAC5B;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;KACnB;CACF,CAAA;AAED,cAAc,CAAC,aAAa,GAAG,IAAI,CAAA;AAEnC,4BAAY,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAA"}
@@ -0,0 +1,44 @@
1
+ # GraphqlMutate Task
2
+
3
+ 서버에서 제공하는 graphql mutate API를 호출하는 태스크이다.
4
+ MutationQuery를 작성할 때, 변수 처리는 다음과 같이 두 가지 방법으로 가능하며, 방법 2를 사용하기를 권장한다.
5
+
6
+ 방법 1. 시나리오 컨텍스트의 data와 variables를 변수로 활용할 수 있다.
7
+ 이 방법은 문자열 변수를 적용할 때 적합하다.
8
+
9
+ ```
10
+ mutation {
11
+ syncAllMarketplaceOrder(fromDate: "${this.variables.fromDate}", toDate: "${this.variables.toDate}") {
12
+ ...
13
+ }
14
+
15
+ removeTagFromObject(tag: "${this.data.tag}") {
16
+ ...
17
+ }
18
+ }
19
+ ```
20
+
21
+ 방법 2. varibles에 사용할 변수를 지정하고, graphql 변수 처리방법을 사용한다. variables의 값은 시나리오 컨텍스트의 data 에 대한 accessor로 지정할 수 있다.
22
+ 이 방법은 문자열 변수를 적용할 때 적합하다.
23
+
24
+ ```
25
+ mutation($fromDate: String!, $toDate: String!) {
26
+ syncAllMarketplaceOrder(fromDate: $fromDate, toDate: $toDate) {
27
+ ...
28
+ }
29
+
30
+ removeTagFromObject(tag: $tag) {
31
+ ...
32
+ }
33
+ }
34
+ ```
35
+
36
+ ## parameters
37
+
38
+ - mutation
39
+
40
+ - graphql mutation 쿼리를 입력한다.
41
+
42
+ - variables
43
+ - graphql query에서 사용될 변수를 정의한다.
44
+ - key예는 변수의 이름을 지정하며, value에는 변수값에 해당하는 data accessor를 설정한다.
@@ -0,0 +1,44 @@
1
+ # GraphqlQuery Task
2
+
3
+ 서버에서 제공하는 graphql query API를 호출하는 태스크이다.
4
+ Query를 작성할 때, 변수 처리는 다음과 같이 두 가지 방법으로 가능하며, 방법 2를 사용하기를 권장한다.
5
+
6
+ 방법 1. 시나리오 컨텍스트의 data와 variables를 변수로 활용할 수 있다.
7
+ 이 방법은 문자열 변수를 적용할 때 적합하다.
8
+
9
+ ```
10
+ query {
11
+ fetchWorkOrderHistory(fromDate: "${this.variables.fromDate}", toDate: "${this.variables.toDate}") {
12
+ ...
13
+ }
14
+
15
+ searchObjectWithTag(tag: "${this.data.tag}") {
16
+ ...
17
+ }
18
+ }
19
+ ```
20
+
21
+ 방법 2. varibles에 사용할 변수를 지정하고, graphql 변수 처리방법을 사용한다. variables의 값은 시나리오 컨텍스트의 data 에 대한 accessor로 지정할 수 있다.
22
+ 이 방법은 문자열 변수를 적용할 때 적합하다.
23
+
24
+ ```
25
+ query($filters: [Filter!], $sortings: [Sorting!], $pagination: Pagination, tag: String!) {
26
+ boards(filters: $filters, sortings: $sortings, pagination: $pagination) {
27
+ ...
28
+ }
29
+
30
+ searchObjectWithTag(tag: $tag) {
31
+ ...
32
+ }
33
+ }
34
+ ```
35
+
36
+ ## parameters
37
+
38
+ - query
39
+
40
+ - graphql query를 입력한다.
41
+
42
+ - variables
43
+ - graphql query에서 사용될 변수를 정의한다.
44
+ - key예는 변수의 이름을 지정하며, value에는 변수값에 해당하는 data accessor를 설정한다.
@@ -1,7 +1,10 @@
1
1
  # LocalGraphqlMutate Task
2
2
 
3
3
  서버에서 제공하는 graphql mutate API를 호출하는 태스크이다.
4
- Mutation을 작성할 때, 다음과 같이 시나리오 컨텍스트의 data와 variables를 변수로 활용할 있다.
4
+ MutationQuery를 작성할 때, 변수 처리는 다음과 같이 가지 방법으로 가능하며, 방법 2를 사용하기를 권장한다.
5
+
6
+ 방법 1. 시나리오 컨텍스트의 data와 variables를 변수로 활용할 수 있다.
7
+ 이 방법은 문자열 변수를 적용할 때 적합하다.
5
8
 
6
9
  ```
7
10
  mutation {
@@ -15,7 +18,27 @@ mutation {
15
18
  }
16
19
  ```
17
20
 
21
+ 방법 2. varibles에 사용할 변수를 지정하고, graphql 변수 처리방법을 사용한다. variables의 값은 시나리오 컨텍스트의 data 에 대한 accessor로 지정할 수 있다.
22
+ 이 방법은 문자열 변수를 적용할 때 적합하다.
23
+
24
+ ```
25
+ mutation($fromDate: String!, $toDate: String!) {
26
+ syncAllMarketplaceOrder(fromDate: $fromDate, toDate: $toDate) {
27
+ ...
28
+ }
29
+
30
+ removeTagFromObject(tag: $tag) {
31
+ ...
32
+ }
33
+ }
34
+ ```
35
+
18
36
  ## parameters
19
37
 
20
38
  - mutation
39
+
21
40
  - graphql mutation 쿼리를 입력한다.
41
+
42
+ - variables
43
+ - graphql query에서 사용될 변수를 정의한다.
44
+ - key예는 변수의 이름을 지정하며, value에는 변수값에 해당하는 data accessor를 설정한다.
@@ -1,7 +1,10 @@
1
- # LocalGraphqlMutate Task
1
+ # LocalGraphqlQuery Task
2
2
 
3
3
  서버에서 제공하는 graphql query API를 호출하는 태스크이다.
4
- Query를 작성할 때, 다음과 같이 시나리오 컨텍스트의 data와 variables를 변수로 활용할 있다.
4
+ Query를 작성할 때, 변수 처리는 다음과 같이 가지 방법으로 가능하며, 방법 2를 사용하기를 권장한다.
5
+
6
+ 방법 1. 시나리오 컨텍스트의 data와 variables를 변수로 활용할 수 있다.
7
+ 이 방법은 문자열 변수를 적용할 때 적합하다.
5
8
 
6
9
  ```
7
10
  query {
@@ -15,7 +18,27 @@ query {
15
18
  }
16
19
  ```
17
20
 
21
+ 방법 2. varibles에 사용할 변수를 지정하고, graphql 변수 처리방법을 사용한다. variables의 값은 시나리오 컨텍스트의 data 에 대한 accessor로 지정할 수 있다.
22
+ 이 방법은 문자열 변수를 적용할 때 적합하다.
23
+
24
+ ```
25
+ query($filters: [Filter!], $sortings: [Sorting!], $pagination: Pagination, tag: String!) {
26
+ boards(filters: $filters, sortings: $sortings, pagination: $pagination) {
27
+ ...
28
+ }
29
+
30
+ searchObjectWithTag(tag: $tag) {
31
+ ...
32
+ }
33
+ }
34
+ ```
35
+
18
36
  ## parameters
19
37
 
20
38
  - query
39
+
21
40
  - graphql query를 입력한다.
41
+
42
+ - variables
43
+ - graphql query에서 사용될 변수를 정의한다.
44
+ - key예는 변수의 이름을 지정하며, value에는 변수값에 해당하는 data accessor를 설정한다.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/integration-base",
3
- "version": "5.0.0-alpha.50",
3
+ "version": "5.0.0-alpha.51",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -26,11 +26,11 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "@apollo/client": "^3.5.10",
29
- "@things-factory/api": "^5.0.0-alpha.50",
30
- "@things-factory/auth-base": "^5.0.0-alpha.50",
31
- "@things-factory/env": "^5.0.0-alpha.50",
32
- "@things-factory/oauth2-client": "^5.0.0-alpha.50",
33
- "@things-factory/shell": "^5.0.0-alpha.50",
29
+ "@things-factory/api": "^5.0.0-alpha.51",
30
+ "@things-factory/auth-base": "^5.0.0-alpha.51",
31
+ "@things-factory/env": "^5.0.0-alpha.51",
32
+ "@things-factory/oauth2-client": "^5.0.0-alpha.51",
33
+ "@things-factory/shell": "^5.0.0-alpha.51",
34
34
  "async-mqtt": "^2.5.0",
35
35
  "cron": "^1.7.2",
36
36
  "cross-fetch": "^3.0.4",
@@ -41,5 +41,5 @@
41
41
  "promise-socket": "^7.0.0",
42
42
  "vm2": "^3.9.2"
43
43
  },
44
- "gitHead": "ba819c6d9ddf60319283f620b80c9737e7486a91"
44
+ "gitHead": "b83a1e08b773501783b4a95438291ce96f558bde"
45
45
  }
@@ -1,11 +1,15 @@
1
1
  import gql from 'graphql-tag'
2
2
  import { VM } from 'vm2'
3
- import { TaskRegistry } from '../task-registry'
3
+
4
+ import { access } from '@things-factory/utils'
5
+
4
6
  import { ConnectionManager } from '../connection-manager'
7
+ import { TaskRegistry } from '../task-registry'
5
8
 
6
9
  async function GraphqlMutate(step, context) {
7
10
  var { connection: connectionName, params: stepOptions } = step
8
- var { mutation } = stepOptions || {}
11
+ var { mutation, variables: variablesAccessorMap } = stepOptions || {}
12
+
9
13
  var { data, variables } = context
10
14
 
11
15
  const vm = new VM({
@@ -19,16 +23,21 @@ async function GraphqlMutate(step, context) {
19
23
 
20
24
  var client = ConnectionManager.getConnectionInstanceByName(context.domain, connectionName)
21
25
 
22
- var response = await client.mutate({
26
+ const queryVariables = Object.keys(variablesAccessorMap).reduce((variables, key) => {
27
+ const accessor = variablesAccessorMap[key]
28
+ variables[key] = access(accessor, data)
29
+ return variables
30
+ }, {})
31
+
32
+ var { data: mutateResult } = await client.mutate({
23
33
  mutation: gql`
24
34
  ${mutation}
25
- `
35
+ `,
36
+ variables: queryVariables
26
37
  })
27
38
 
28
- var { data: mutationResult } = response.data
29
-
30
39
  return {
31
- data: mutationResult
40
+ data: mutateResult
32
41
  }
33
42
  }
34
43
 
@@ -37,6 +46,14 @@ GraphqlMutate.parameterSpec = [
37
46
  type: 'graphql',
38
47
  name: 'mutation',
39
48
  label: 'mutation'
49
+ },
50
+ {
51
+ type: 'key-values',
52
+ name: 'variables',
53
+ label: 'variables',
54
+ property: {
55
+ options: [] //'scenario-step-input'
56
+ }
40
57
  }
41
58
  ]
42
59
  GraphqlMutate.help = 'integration/task/graphql-mutate'
@@ -1,11 +1,14 @@
1
1
  import gql from 'graphql-tag'
2
2
  import { VM } from 'vm2'
3
- import { TaskRegistry } from '../task-registry'
3
+
4
+ import { access } from '@things-factory/utils'
5
+
4
6
  import { ConnectionManager } from '../connection-manager'
7
+ import { TaskRegistry } from '../task-registry'
5
8
 
6
9
  async function GraphqlQuery(step, context) {
7
10
  var { connection: connectionName, params: stepOptions } = step
8
- var { query } = stepOptions || {}
11
+ var { query, variables: variablesAccessorMap } = stepOptions || {}
9
12
  var { domain, data, variables } = context
10
13
 
11
14
  const vm = new VM({
@@ -19,10 +22,17 @@ async function GraphqlQuery(step, context) {
19
22
 
20
23
  var client = ConnectionManager.getConnectionInstanceByName(domain, connectionName)
21
24
 
25
+ const queryVariables = Object.keys(variablesAccessorMap).reduce((variables, key) => {
26
+ const accessor = variablesAccessorMap[key]
27
+ variables[key] = access(accessor, data)
28
+ return variables
29
+ }, {})
30
+
22
31
  var { data: queryResult } = await client.query({
23
32
  query: gql`
24
33
  ${query}
25
- `
34
+ `,
35
+ variables: queryVariables
26
36
  })
27
37
 
28
38
  return {
@@ -35,6 +45,14 @@ GraphqlQuery.parameterSpec = [
35
45
  type: 'graphql',
36
46
  name: 'query',
37
47
  label: 'query'
48
+ },
49
+ {
50
+ type: 'key-values',
51
+ name: 'variables',
52
+ label: 'variables',
53
+ property: {
54
+ options: [] //'scenario-step-input'
55
+ }
38
56
  }
39
57
  ]
40
58
  GraphqlQuery.help = 'integration/task/graphql-query'
@@ -1,12 +1,15 @@
1
- import { TaskRegistry } from '../task-registry'
2
- import { User } from '@things-factory/auth-base'
3
- import { VM } from 'vm2'
4
- import { getRepository } from 'typeorm'
5
1
  import gql from 'graphql-tag'
2
+ import { getRepository } from 'typeorm'
3
+ import { VM } from 'vm2'
4
+
5
+ import { User } from '@things-factory/auth-base'
6
+ import { access } from '@things-factory/utils'
7
+
8
+ import { TaskRegistry } from '../task-registry'
6
9
 
7
10
  async function LocalGraphqlMutate(step, context) {
8
11
  var { params, updaterId } = step
9
- var { mutation } = params || {}
12
+ var { mutation, variables: variablesAccessorMap } = params || {}
10
13
  var { client, domain, data, variables } = context
11
14
 
12
15
  const user = await getRepository(User).findOne(updaterId, {
@@ -22,11 +25,17 @@ async function LocalGraphqlMutate(step, context) {
22
25
 
23
26
  mutation = vm.run('`' + mutation + '`')
24
27
 
28
+ const queryVariables = Object.keys(variablesAccessorMap).reduce((variables, key) => {
29
+ const accessor = variablesAccessorMap[key]
30
+ variables[key] = access(accessor, data)
31
+ return variables
32
+ }, {})
33
+
25
34
  var { data: mutateResult } = await client.mutate({
26
35
  mutation: gql`
27
36
  ${mutation}
28
37
  `,
29
- variables,
38
+ variables: queryVariables,
30
39
  context: {
31
40
  state: {
32
41
  domain,
@@ -45,6 +54,14 @@ LocalGraphqlMutate.parameterSpec = [
45
54
  type: 'graphql',
46
55
  name: 'mutation',
47
56
  label: 'mutation'
57
+ },
58
+ {
59
+ type: 'key-values',
60
+ name: 'variables',
61
+ label: 'variables',
62
+ property: {
63
+ options: [] //'scenario-step-input'
64
+ }
48
65
  }
49
66
  ]
50
67
 
@@ -1,12 +1,15 @@
1
- import { TaskRegistry } from '../task-registry'
2
- import { User } from '@things-factory/auth-base'
3
- import { VM } from 'vm2'
4
- import { getRepository } from 'typeorm'
5
1
  import gql from 'graphql-tag'
2
+ import { getRepository } from 'typeorm'
3
+ import { VM } from 'vm2'
4
+
5
+ import { User } from '@things-factory/auth-base'
6
+ import { access } from '@things-factory/utils'
7
+
8
+ import { TaskRegistry } from '../task-registry'
6
9
 
7
10
  async function LocalGraphqlQuery(step, context) {
8
11
  var { params, updaterId } = step
9
- var { query } = params || {}
12
+ var { query, variables: variablesAccessorMap } = params || {}
10
13
  var { client, domain, data, variables } = context
11
14
 
12
15
  const user = await getRepository(User).findOne(updaterId, {
@@ -22,11 +25,17 @@ async function LocalGraphqlQuery(step, context) {
22
25
 
23
26
  query = vm.run('`' + query + '`')
24
27
 
28
+ const queryVariables = Object.keys(variablesAccessorMap).reduce((variables, key) => {
29
+ const accessor = variablesAccessorMap[key]
30
+ variables[key] = access(accessor, data)
31
+ return variables
32
+ }, {})
33
+
25
34
  var { data: queryResult } = await client.query({
26
35
  query: gql`
27
36
  ${query}
28
37
  `,
29
- variables,
38
+ variables: queryVariables,
30
39
  context: {
31
40
  state: {
32
41
  domain,
@@ -45,6 +54,14 @@ LocalGraphqlQuery.parameterSpec = [
45
54
  type: 'graphql',
46
55
  name: 'query',
47
56
  label: 'query'
57
+ },
58
+ {
59
+ type: 'key-values',
60
+ name: 'variables',
61
+ label: 'variables',
62
+ property: {
63
+ options: [] //'scenario-step-input'
64
+ }
48
65
  }
49
66
  ]
50
67
 
@@ -1,4 +1,5 @@
1
1
  import { access } from '@things-factory/utils'
2
+
2
3
  import { TaskRegistry } from '../task-registry'
3
4
 
4
5
  async function SwitchGoTo(step, { logger, data }) {
@@ -27,7 +28,7 @@ SwitchGoTo.parameterSpec = [
27
28
  type: 'map',
28
29
  name: 'cases',
29
30
  label: 'cases',
30
- properties: {
31
+ property: {
31
32
  valuetype: 'scenario-step-input'
32
33
  }
33
34
  }
@@ -1,4 +1,5 @@
1
1
  import { access } from '@things-factory/utils'
2
+
2
3
  import { TaskRegistry } from '../task-registry'
3
4
 
4
5
  async function SwitchRangeGoTo(step, { logger, data }) {
@@ -38,7 +39,7 @@ SwitchRangeGoTo.parameterSpec = [
38
39
  type: 'range',
39
40
  name: 'cases',
40
41
  label: 'cases',
41
- properties: {
42
+ property: {
42
43
  valuetype: 'scenario-step-input'
43
44
  }
44
45
  }
@@ -1,7 +1,9 @@
1
+ import { getRepository } from 'typeorm'
2
+
1
3
  import { access, deepClone } from '@things-factory/utils'
2
- import { TaskRegistry } from '../task-registry'
4
+
3
5
  import { Scenario } from '../../service'
4
- import { getRepository } from 'typeorm'
6
+ import { TaskRegistry } from '../task-registry'
5
7
 
6
8
  async function SwitchRangeScenario(step, context) {
7
9
  var { logger, data, load } = context
@@ -60,7 +62,7 @@ SwitchRangeScenario.parameterSpec = [
60
62
  type: 'range',
61
63
  name: 'cases',
62
64
  label: 'cases',
63
- properties: {
65
+ property: {
64
66
  valuetype: 'scenario-input'
65
67
  }
66
68
  },
@@ -1,7 +1,9 @@
1
+ import { getRepository } from 'typeorm'
2
+
1
3
  import { access, deepClone } from '@things-factory/utils'
2
- import { TaskRegistry } from '../task-registry'
4
+
3
5
  import { Scenario } from '../../service'
4
- import { getRepository } from 'typeorm'
6
+ import { TaskRegistry } from '../task-registry'
5
7
 
6
8
  async function SwitchScenario(step, context) {
7
9
  var { logger, data, load } = context
@@ -48,7 +50,7 @@ SwitchScenario.parameterSpec = [
48
50
  type: 'map',
49
51
  name: 'cases',
50
52
  label: 'cases',
51
- properties: {
53
+ property: {
52
54
  valuetype: 'scenario-input'
53
55
  }
54
56
  },