@things-factory/integration-base 6.2.34 → 6.2.35

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 (64) hide show
  1. package/dist-server/engine/task/index.js +2 -0
  2. package/dist-server/engine/task/index.js.map +1 -1
  3. package/dist-server/engine/task/local-graphql-mutate.js +7 -2
  4. package/dist-server/engine/task/local-graphql-mutate.js.map +1 -1
  5. package/dist-server/engine/task/local-graphql-query.js +7 -2
  6. package/dist-server/engine/task/local-graphql-query.js.map +1 -1
  7. package/dist-server/engine/task/read-state.js +48 -0
  8. package/dist-server/engine/task/read-state.js.map +1 -0
  9. package/dist-server/engine/task/state-read.js +49 -0
  10. package/dist-server/engine/task/state-read.js.map +1 -0
  11. package/dist-server/engine/task/state-write.js +57 -0
  12. package/dist-server/engine/task/state-write.js.map +1 -0
  13. package/dist-server/engine/task/write-state.js +56 -0
  14. package/dist-server/engine/task/write-state.js.map +1 -0
  15. package/dist-server/service/index.js +6 -2
  16. package/dist-server/service/index.js.map +1 -1
  17. package/dist-server/service/state-register/index.js +10 -0
  18. package/dist-server/service/state-register/index.js.map +1 -0
  19. package/dist-server/service/state-register/state-register-mutation.js +153 -0
  20. package/dist-server/service/state-register/state-register-mutation.js.map +1 -0
  21. package/dist-server/service/state-register/state-register-query.js +113 -0
  22. package/dist-server/service/state-register/state-register-query.js.map +1 -0
  23. package/dist-server/service/state-register/state-register-type.js +90 -0
  24. package/dist-server/service/state-register/state-register-type.js.map +1 -0
  25. package/dist-server/service/state-register/state-register.js +105 -0
  26. package/dist-server/service/state-register/state-register.js.map +1 -0
  27. package/dist-server/tsconfig.tsbuildinfo +1 -1
  28. package/helps/integration/concept/scenario.ja.md +4 -0
  29. package/helps/integration/concept/scenario.ko.md +4 -0
  30. package/helps/integration/concept/scenario.md +3 -3
  31. package/helps/integration/concept/scenario.ms.md +4 -0
  32. package/helps/integration/concept/scenario.zh.md +4 -0
  33. package/helps/integration/concept/state-register.ja.md +8 -0
  34. package/helps/integration/concept/state-register.ko.md +8 -0
  35. package/helps/integration/concept/state-register.md +8 -0
  36. package/helps/integration/concept/state-register.ms.md +8 -0
  37. package/helps/integration/concept/state-register.zh.md +8 -0
  38. package/helps/integration/concept/task.ja.md +25 -0
  39. package/helps/integration/concept/task.ko.md +25 -0
  40. package/helps/integration/concept/task.md +17 -17
  41. package/helps/integration/concept/task.ms.md +28 -0
  42. package/helps/integration/concept/task.zh.md +25 -0
  43. package/helps/integration/task/state-read.ja.md +8 -0
  44. package/helps/integration/task/state-read.ko.md +8 -0
  45. package/helps/integration/task/state-read.md +8 -0
  46. package/helps/integration/task/state-read.ms.md +8 -0
  47. package/helps/integration/task/state-read.zh.md +8 -0
  48. package/helps/integration/task/state-write.ja.md +10 -0
  49. package/helps/integration/task/state-write.ko.md +10 -0
  50. package/helps/integration/task/state-write.md +10 -0
  51. package/helps/integration/task/state-write.ms.md +10 -0
  52. package/helps/integration/task/state-write.zh.md +10 -0
  53. package/package.json +2 -2
  54. package/server/engine/task/index.ts +2 -0
  55. package/server/engine/task/local-graphql-mutate.ts +8 -2
  56. package/server/engine/task/local-graphql-query.ts +8 -2
  57. package/server/engine/task/state-read.ts +54 -0
  58. package/server/engine/task/state-write.ts +63 -0
  59. package/server/service/index.ts +6 -2
  60. package/server/service/state-register/index.ts +7 -0
  61. package/server/service/state-register/state-register-mutation.ts +166 -0
  62. package/server/service/state-register/state-register-query.ts +72 -0
  63. package/server/service/state-register/state-register-type.ts +64 -0
  64. package/server/service/state-register/state-register.ts +91 -0
@@ -41,4 +41,6 @@ require("./headless-scrap");
41
41
  require("./set-domain");
42
42
  require("./oracle-procedure");
43
43
  require("./jsonata");
44
+ require("./state-read");
45
+ require("./state-write");
44
46
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/engine/task/index.ts"],"names":[],"mappings":";;AAAA,uBAAoB;AACpB,0BAAuB;AACvB,mBAAgB;AAChB,iBAAc;AACd,qBAAkB;AAClB,sBAAmB;AACnB,uBAAoB;AACpB,2BAAwB;AACxB,4BAAyB;AACzB,iCAA8B;AAC9B,kCAA+B;AAC/B,0BAAuB;AACvB,2BAAwB;AACxB,8BAA2B;AAC3B,mCAAgC;AAChC,iCAA8B;AAC9B,yBAAsB;AACtB,kBAAe;AACf,iBAAc;AACd,yBAAsB;AACtB,+BAA4B;AAC5B,6BAA0B;AAC1B,mCAAgC;AAChC,wBAAqB;AACrB,8BAA2B;AAC3B,oBAAiB;AACjB,4BAAyB;AACzB,4BAAyB;AACzB,0BAAuB;AACvB,mBAAgB;AAChB,uBAAoB;AACpB,4BAAyB;AACzB,6BAA0B;AAC1B,oBAAiB;AACjB,0BAAuB;AACvB,yBAAsB;AACtB,2BAAwB;AACxB,4BAAyB;AACzB,wBAAqB;AACrB,8BAA2B;AAC3B,qBAAkB","sourcesContent":["import './echo-send'\nimport './echo-receive'\nimport './sleep'\nimport './log'\nimport './publish'\nimport './http-get'\nimport './http-post'\nimport './graphql-query'\nimport './graphql-mutate'\nimport './local-graphql-query'\nimport './local-graphql-mutate'\nimport './sub-scenario'\nimport './stop-scenario'\nimport './book-up-scenario'\nimport './pick-pending-scenario'\nimport './reset-pending-queue'\nimport './empty-check'\nimport './goto'\nimport './end'\nimport './switch-goto'\nimport './switch-range-goto'\nimport './switch-scenario'\nimport './switch-range-scenario'\nimport './switch-set'\nimport './switch-range-set'\nimport './script'\nimport './database-query'\nimport './mqtt-subscribe'\nimport './mqtt-publish'\nimport './throw'\nimport './variables'\nimport './floating-point'\nimport './socket-listener'\nimport './random'\nimport './csv-readline'\nimport './data-mapper'\nimport './headless-post'\nimport './headless-scrap'\nimport './set-domain'\nimport './oracle-procedure'\nimport './jsonata'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/engine/task/index.ts"],"names":[],"mappings":";;AAAA,uBAAoB;AACpB,0BAAuB;AACvB,mBAAgB;AAChB,iBAAc;AACd,qBAAkB;AAClB,sBAAmB;AACnB,uBAAoB;AACpB,2BAAwB;AACxB,4BAAyB;AACzB,iCAA8B;AAC9B,kCAA+B;AAC/B,0BAAuB;AACvB,2BAAwB;AACxB,8BAA2B;AAC3B,mCAAgC;AAChC,iCAA8B;AAC9B,yBAAsB;AACtB,kBAAe;AACf,iBAAc;AACd,yBAAsB;AACtB,+BAA4B;AAC5B,6BAA0B;AAC1B,mCAAgC;AAChC,wBAAqB;AACrB,8BAA2B;AAC3B,oBAAiB;AACjB,4BAAyB;AACzB,4BAAyB;AACzB,0BAAuB;AACvB,mBAAgB;AAChB,uBAAoB;AACpB,4BAAyB;AACzB,6BAA0B;AAC1B,oBAAiB;AACjB,0BAAuB;AACvB,yBAAsB;AACtB,2BAAwB;AACxB,4BAAyB;AACzB,wBAAqB;AACrB,8BAA2B;AAC3B,qBAAkB;AAClB,wBAAqB;AACrB,yBAAsB","sourcesContent":["import './echo-send'\nimport './echo-receive'\nimport './sleep'\nimport './log'\nimport './publish'\nimport './http-get'\nimport './http-post'\nimport './graphql-query'\nimport './graphql-mutate'\nimport './local-graphql-query'\nimport './local-graphql-mutate'\nimport './sub-scenario'\nimport './stop-scenario'\nimport './book-up-scenario'\nimport './pick-pending-scenario'\nimport './reset-pending-queue'\nimport './empty-check'\nimport './goto'\nimport './end'\nimport './switch-goto'\nimport './switch-range-goto'\nimport './switch-scenario'\nimport './switch-range-scenario'\nimport './switch-set'\nimport './switch-range-set'\nimport './script'\nimport './database-query'\nimport './mqtt-subscribe'\nimport './mqtt-publish'\nimport './throw'\nimport './variables'\nimport './floating-point'\nimport './socket-listener'\nimport './random'\nimport './csv-readline'\nimport './data-mapper'\nimport './headless-post'\nimport './headless-scrap'\nimport './set-domain'\nimport './oracle-procedure'\nimport './jsonata'\nimport './state-read'\nimport './state-write'\n"]}
@@ -10,7 +10,7 @@ const task_registry_1 = require("../task-registry");
10
10
  async function LocalGraphqlMutate(step, context) {
11
11
  var { params, updaterId } = step;
12
12
  var { mutation, variables: variablesAccessorMap, headers } = params || {};
13
- var { client, domain, user, data, variables, lng } = context;
13
+ var { logger, client, domain, user, data, variables, lng } = context;
14
14
  user =
15
15
  user ||
16
16
  (await (0, shell_1.getRepository)(auth_base_1.User).findOne({
@@ -32,7 +32,7 @@ async function LocalGraphqlMutate(step, context) {
32
32
  variables[key] = (0, utils_1.access)(accessor, data);
33
33
  return variables;
34
34
  }, {});
35
- var { data: mutateResult } = await client.mutate({
35
+ var { data: mutateResult, errors } = await client.mutate({
36
36
  mutation: (0, graphql_tag_1.default) `
37
37
  ${mutation}
38
38
  `,
@@ -45,6 +45,11 @@ async function LocalGraphqlMutate(step, context) {
45
45
  }
46
46
  }
47
47
  });
48
+ if (errors) {
49
+ errors.forEach(error => {
50
+ logger.error('GraphQL Error: %s', error);
51
+ });
52
+ }
48
53
  return {
49
54
  data: mutateResult
50
55
  };
@@ -1 +1 @@
1
- {"version":3,"file":"local-graphql-mutate.js","sourceRoot":"","sources":["../../../server/engine/task/local-graphql-mutate.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,6BAAwB;AAExB,yDAAgD;AAChD,iDAAqD;AACrD,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,OAAO,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IACzE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAE5D,IAAI;QACF,IAAI;YACJ,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC;gBACjC,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;gBACxB,SAAS,EAAE,CAAC,SAAS,CAAC;aACvB,CAAC,CAAC,CAAA;IAEL,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,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,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;QACvF,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;QACP,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;KACnB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KACjB;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","sourcesContent":["import gql from 'graphql-tag'\nimport { VM } from 'vm2'\n\nimport { User } from '@things-factory/auth-base'\nimport { getRepository } from '@things-factory/shell'\nimport { access } from '@things-factory/utils'\n\nimport { TaskRegistry } from '../task-registry'\n\nasync function LocalGraphqlMutate(step, context) {\n var { params, updaterId } = step\n var { mutation, variables: variablesAccessorMap, headers } = params || {}\n var { client, domain, user, data, variables, lng } = context\n\n user =\n user ||\n (await getRepository(User).findOne({\n where: { id: updaterId },\n relations: ['domains']\n }))\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n mutation = vm.run('`' + mutation + '`')\n\n const queryVariables = Object.keys(variablesAccessorMap || {}).reduce((variables, key) => {\n const accessor = variablesAccessorMap[key]\n variables[key] = access(accessor, data)\n return variables\n }, {})\n\n var { data: mutateResult } = await client.mutate({\n mutation: gql`\n ${mutation}\n `,\n variables: queryVariables,\n headers,\n context: {\n state: {\n domain,\n user\n }\n }\n })\n\n return {\n data: mutateResult\n }\n}\n\nLocalGraphqlMutate.parameterSpec = [\n {\n type: 'graphql',\n name: 'mutation',\n label: 'mutation'\n },\n {\n type: 'key-values',\n name: 'variables',\n label: 'variables'\n },\n {\n type: 'key-values',\n name: 'headers',\n label: 'headers'\n }\n]\n\nLocalGraphqlMutate.connectorFree = true\nLocalGraphqlMutate.help = 'integration/task/local-graphql-mutate'\n\nTaskRegistry.registerTaskHandler('local-graphql-mutate', LocalGraphqlMutate)\n"]}
1
+ {"version":3,"file":"local-graphql-mutate.js","sourceRoot":"","sources":["../../../server/engine/task/local-graphql-mutate.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,6BAAwB;AAExB,yDAAgD;AAChD,iDAAqD;AACrD,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,OAAO,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IACzE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAEpE,IAAI;QACF,IAAI;YACJ,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC;gBACjC,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;gBACxB,SAAS,EAAE,CAAC,SAAS,CAAC;aACvB,CAAC,CAAC,CAAA;IAEL,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,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,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;QACvF,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,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACvD,QAAQ,EAAE,IAAA,qBAAG,EAAA;QACT,QAAQ;KACX;QACD,SAAS,EAAE,cAAc;QACzB,OAAO;QACP,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;KACH;IAED,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;KACnB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KACjB;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","sourcesContent":["import gql from 'graphql-tag'\nimport { VM } from 'vm2'\n\nimport { User } from '@things-factory/auth-base'\nimport { getRepository } from '@things-factory/shell'\nimport { access } from '@things-factory/utils'\n\nimport { TaskRegistry } from '../task-registry'\n\nasync function LocalGraphqlMutate(step, context) {\n var { params, updaterId } = step\n var { mutation, variables: variablesAccessorMap, headers } = params || {}\n var { logger, client, domain, user, data, variables, lng } = context\n\n user =\n user ||\n (await getRepository(User).findOne({\n where: { id: updaterId },\n relations: ['domains']\n }))\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n mutation = vm.run('`' + mutation + '`')\n\n const queryVariables = Object.keys(variablesAccessorMap || {}).reduce((variables, key) => {\n const accessor = variablesAccessorMap[key]\n variables[key] = access(accessor, data)\n return variables\n }, {})\n\n var { data: mutateResult, errors } = await client.mutate({\n mutation: gql`\n ${mutation}\n `,\n variables: queryVariables,\n headers,\n context: {\n state: {\n domain,\n user\n }\n }\n })\n\n if (errors) {\n errors.forEach(error => {\n logger.error('GraphQL Error: %s', error)\n })\n }\n\n return {\n data: mutateResult\n }\n}\n\nLocalGraphqlMutate.parameterSpec = [\n {\n type: 'graphql',\n name: 'mutation',\n label: 'mutation'\n },\n {\n type: 'key-values',\n name: 'variables',\n label: 'variables'\n },\n {\n type: 'key-values',\n name: 'headers',\n label: 'headers'\n }\n]\n\nLocalGraphqlMutate.connectorFree = true\nLocalGraphqlMutate.help = 'integration/task/local-graphql-mutate'\n\nTaskRegistry.registerTaskHandler('local-graphql-mutate', LocalGraphqlMutate)\n"]}
@@ -10,7 +10,7 @@ const task_registry_1 = require("../task-registry");
10
10
  async function LocalGraphqlQuery(step, context) {
11
11
  var { params, updaterId } = step;
12
12
  var { query, variables: variablesAccessorMap, headers } = params || {};
13
- var { client, domain, user, data, variables, lng } = context;
13
+ var { logger, client, domain, user, data, variables, lng } = context;
14
14
  user =
15
15
  user ||
16
16
  (await (0, shell_1.getRepository)(auth_base_1.User).findOne({
@@ -32,7 +32,7 @@ async function LocalGraphqlQuery(step, context) {
32
32
  variables[key] = (0, utils_1.access)(accessor, data);
33
33
  return variables;
34
34
  }, {});
35
- var { data: queryResult } = await client.query({
35
+ var { data: queryResult, errors } = await client.query({
36
36
  query: (0, graphql_tag_1.default) `
37
37
  ${query}
38
38
  `,
@@ -45,6 +45,11 @@ async function LocalGraphqlQuery(step, context) {
45
45
  }
46
46
  }
47
47
  });
48
+ if (errors) {
49
+ errors.forEach(error => {
50
+ logger.error('GraphQL Error: %s', error);
51
+ });
52
+ }
48
53
  return {
49
54
  data: queryResult
50
55
  };
@@ -1 +1 @@
1
- {"version":3,"file":"local-graphql-query.js","sourceRoot":"","sources":["../../../server/engine/task/local-graphql-query.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,6BAAwB;AAExB,yDAAgD;AAChD,iDAAqD;AACrD,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,OAAO,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IACtE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAE5D,IAAI;QACF,IAAI;YACJ,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC;gBACjC,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;gBACxB,SAAS,EAAE,CAAC,SAAS,CAAC;aACvB,CAAC,CAAC,CAAA;IAEL,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,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,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;QACvF,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;QACP,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;KACnB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KACjB;CACF,CAAA;AAED,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAA;AACtC,iBAAiB,CAAC,IAAI,GAAG,sCAAsC,CAAA;AAE/D,4BAAY,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { VM } from 'vm2'\n\nimport { User } from '@things-factory/auth-base'\nimport { getRepository } from '@things-factory/shell'\nimport { access } from '@things-factory/utils'\n\nimport { TaskRegistry } from '../task-registry'\n\nasync function LocalGraphqlQuery(step, context) {\n var { params, updaterId } = step\n var { query, variables: variablesAccessorMap, headers } = params || {}\n var { client, domain, user, data, variables, lng } = context\n\n user =\n user ||\n (await getRepository(User).findOne({\n where: { id: updaterId },\n relations: ['domains']\n }))\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n query = vm.run('`' + query + '`')\n\n const queryVariables = Object.keys(variablesAccessorMap || {}).reduce((variables, key) => {\n const accessor = variablesAccessorMap[key]\n variables[key] = access(accessor, data)\n return variables\n }, {})\n\n var { data: queryResult } = await client.query({\n query: gql`\n ${query}\n `,\n variables: queryVariables,\n headers,\n context: {\n state: {\n domain,\n user\n }\n }\n })\n\n return {\n data: queryResult\n }\n}\n\nLocalGraphqlQuery.parameterSpec = [\n {\n type: 'graphql',\n name: 'query',\n label: 'query'\n },\n {\n type: 'key-values',\n name: 'variables',\n label: 'variables'\n },\n {\n type: 'key-values',\n name: 'headers',\n label: 'headers'\n }\n]\n\nLocalGraphqlQuery.connectorFree = true\nLocalGraphqlQuery.help = 'integration/task/local-graphql-query'\n\nTaskRegistry.registerTaskHandler('local-graphql-query', LocalGraphqlQuery)\n"]}
1
+ {"version":3,"file":"local-graphql-query.js","sourceRoot":"","sources":["../../../server/engine/task/local-graphql-query.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,6BAAwB;AAExB,yDAAgD;AAChD,iDAAqD;AACrD,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,OAAO,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IACtE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAEpE,IAAI;QACF,IAAI;YACJ,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC;gBACjC,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;gBACxB,SAAS,EAAE,CAAC,SAAS,CAAC;aACvB,CAAC,CAAC,CAAA;IAEL,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,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,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;QACvF,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,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QACrD,KAAK,EAAE,IAAA,qBAAG,EAAA;QACN,KAAK;KACR;QACD,SAAS,EAAE,cAAc;QACzB,OAAO;QACP,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;KACH;IAED,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;KACnB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KACjB;CACF,CAAA;AAED,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAA;AACtC,iBAAiB,CAAC,IAAI,GAAG,sCAAsC,CAAA;AAE/D,4BAAY,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { VM } from 'vm2'\n\nimport { User } from '@things-factory/auth-base'\nimport { getRepository } from '@things-factory/shell'\nimport { access } from '@things-factory/utils'\n\nimport { TaskRegistry } from '../task-registry'\n\nasync function LocalGraphqlQuery(step, context) {\n var { params, updaterId } = step\n var { query, variables: variablesAccessorMap, headers } = params || {}\n var { logger, client, domain, user, data, variables, lng } = context\n\n user =\n user ||\n (await getRepository(User).findOne({\n where: { id: updaterId },\n relations: ['domains']\n }))\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n query = vm.run('`' + query + '`')\n\n const queryVariables = Object.keys(variablesAccessorMap || {}).reduce((variables, key) => {\n const accessor = variablesAccessorMap[key]\n variables[key] = access(accessor, data)\n return variables\n }, {})\n\n var { data: queryResult, errors } = await client.query({\n query: gql`\n ${query}\n `,\n variables: queryVariables,\n headers,\n context: {\n state: {\n domain,\n user\n }\n }\n })\n\n if (errors) {\n errors.forEach(error => {\n logger.error('GraphQL Error: %s', error)\n })\n }\n\n return {\n data: queryResult\n }\n}\n\nLocalGraphqlQuery.parameterSpec = [\n {\n type: 'graphql',\n name: 'query',\n label: 'query'\n },\n {\n type: 'key-values',\n name: 'variables',\n label: 'variables'\n },\n {\n type: 'key-values',\n name: 'headers',\n label: 'headers'\n }\n]\n\nLocalGraphqlQuery.connectorFree = true\nLocalGraphqlQuery.help = 'integration/task/local-graphql-query'\n\nTaskRegistry.registerTaskHandler('local-graphql-query', LocalGraphqlQuery)\n"]}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
5
+ const task_registry_1 = require("../task-registry");
6
+ async function ReadState(step, { logger, publish, data, domain, user, client }) {
7
+ var { params: { name } } = step;
8
+ if (!name) {
9
+ throw Error(`name should be defined: name - '${name}'`);
10
+ }
11
+ var { data: queryResult, errors } = await client.query({
12
+ query: (0, graphql_tag_1.default) `
13
+ query ($name: String!) {
14
+ stateRegisterByName(state: $state, name: $name) {
15
+ state
16
+ }
17
+ }
18
+ `,
19
+ variables: {
20
+ name
21
+ },
22
+ context: {
23
+ state: {
24
+ domain,
25
+ user
26
+ }
27
+ }
28
+ });
29
+ if (errors) {
30
+ errors.forEach(error => {
31
+ logger.error('GraphQL Error: %s', error);
32
+ });
33
+ }
34
+ return {
35
+ data: queryResult === null || queryResult === void 0 ? void 0 : queryResult.stateRegisterByName.state
36
+ };
37
+ }
38
+ ReadState.parameterSpec = [
39
+ {
40
+ type: 'string',
41
+ name: 'name',
42
+ label: 'name'
43
+ }
44
+ ];
45
+ ReadState.connectorFree = true;
46
+ ReadState.help = 'integration/task/read-state';
47
+ task_registry_1.TaskRegistry.registerTaskHandler('read-state', ReadState);
48
+ //# sourceMappingURL=read-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-state.js","sourceRoot":"","sources":["../../../server/engine/task/read-state.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,oDAA+C;AAE/C,KAAK,UAAU,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAC5E,IAAI,EACF,MAAM,EAAE,EAAE,IAAI,EAAE,EACjB,GAAG,IAAI,CAAA;IAER,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,KAAK,CAAC,mCAAmC,IAAI,GAAG,CAAC,CAAA;KACxD;IAED,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QACrD,KAAK,EAAE,IAAA,qBAAG,EAAA;;;;;;KAMT;QACD,SAAS,EAAE;YACT,IAAI;SACL;QACD,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;KACH;IAED,OAAO;QACL,IAAI,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,mBAAmB,CAAC,KAAK;KAC7C,CAAA;AACH,CAAC;AAED,SAAS,CAAC,aAAa,GAAG;IACxB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;KACd;CACF,CAAA;AAED,SAAS,CAAC,aAAa,GAAG,IAAI,CAAA;AAC9B,SAAS,CAAC,IAAI,GAAG,6BAA6B,CAAA;AAE9C,4BAAY,CAAC,mBAAmB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { TaskRegistry } from '../task-registry'\n\nasync function ReadState(step, { logger, publish, data, domain, user, client }) {\n var {\n params: { name }\n } = step\n\n if (!name) {\n throw Error(`name should be defined: name - '${name}'`)\n }\n\n var { data: queryResult, errors } = await client.query({\n query: gql`\n query ($name: String!) {\n stateRegisterByName(state: $state, name: $name) {\n state\n }\n }\n `,\n variables: {\n name\n },\n context: {\n state: {\n domain,\n user\n }\n }\n })\n\n if (errors) {\n errors.forEach(error => {\n logger.error('GraphQL Error: %s', error)\n })\n }\n\n return {\n data: queryResult?.stateRegisterByName.state\n }\n}\n\nReadState.parameterSpec = [\n {\n type: 'string',\n name: 'name',\n label: 'name'\n }\n]\n\nReadState.connectorFree = true\nReadState.help = 'integration/task/read-state'\n\nTaskRegistry.registerTaskHandler('read-state', ReadState)\n"]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
5
+ const task_registry_1 = require("../task-registry");
6
+ async function StateRead(step, { logger, publish, data, domain, user, client }) {
7
+ var _a;
8
+ var { params: { name } } = step;
9
+ if (!name) {
10
+ throw Error(`name should be defined: name - '${name}'`);
11
+ }
12
+ var { data: queryResult, errors } = await client.query({
13
+ query: (0, graphql_tag_1.default) `
14
+ query ($name: String!) {
15
+ stateRegisterByName(state: $state, name: $name) {
16
+ state
17
+ }
18
+ }
19
+ `,
20
+ variables: {
21
+ name
22
+ },
23
+ context: {
24
+ state: {
25
+ domain,
26
+ user
27
+ }
28
+ }
29
+ });
30
+ if (errors) {
31
+ errors.forEach(error => {
32
+ logger.error('GraphQL Error: %s', error);
33
+ });
34
+ }
35
+ return {
36
+ data: (_a = queryResult === null || queryResult === void 0 ? void 0 : queryResult.stateRegisterByName) === null || _a === void 0 ? void 0 : _a.state
37
+ };
38
+ }
39
+ StateRead.parameterSpec = [
40
+ {
41
+ type: 'string',
42
+ name: 'name',
43
+ label: 'name'
44
+ }
45
+ ];
46
+ StateRead.connectorFree = true;
47
+ StateRead.help = 'integration/task/state-read';
48
+ task_registry_1.TaskRegistry.registerTaskHandler('state-read', StateRead);
49
+ //# sourceMappingURL=state-read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-read.js","sourceRoot":"","sources":["../../../server/engine/task/state-read.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,oDAA+C;AAE/C,KAAK,UAAU,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;;IAC5E,IAAI,EACF,MAAM,EAAE,EAAE,IAAI,EAAE,EACjB,GAAG,IAAI,CAAA;IAER,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,KAAK,CAAC,mCAAmC,IAAI,GAAG,CAAC,CAAA;KACxD;IAED,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QACrD,KAAK,EAAE,IAAA,qBAAG,EAAA;;;;;;KAMT;QACD,SAAS,EAAE;YACT,IAAI;SACL;QACD,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;KACH;IAED,OAAO;QACL,IAAI,EAAE,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,mBAAmB,0CAAE,KAAK;KAC9C,CAAA;AACH,CAAC;AAED,SAAS,CAAC,aAAa,GAAG;IACxB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;KACd;CACF,CAAA;AAED,SAAS,CAAC,aAAa,GAAG,IAAI,CAAA;AAC9B,SAAS,CAAC,IAAI,GAAG,6BAA6B,CAAA;AAE9C,4BAAY,CAAC,mBAAmB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { TaskRegistry } from '../task-registry'\n\nasync function StateRead(step, { logger, publish, data, domain, user, client }) {\n var {\n params: { name }\n } = step\n\n if (!name) {\n throw Error(`name should be defined: name - '${name}'`)\n }\n\n var { data: queryResult, errors } = await client.query({\n query: gql`\n query ($name: String!) {\n stateRegisterByName(state: $state, name: $name) {\n state\n }\n }\n `,\n variables: {\n name\n },\n context: {\n state: {\n domain,\n user\n }\n }\n })\n\n if (errors) {\n errors.forEach(error => {\n logger.error('GraphQL Error: %s', error)\n })\n }\n\n return {\n data: queryResult?.stateRegisterByName?.state\n }\n}\n\nStateRead.parameterSpec = [\n {\n type: 'string',\n name: 'name',\n label: 'name'\n }\n]\n\nStateRead.connectorFree = true\nStateRead.help = 'integration/task/state-read'\n\nTaskRegistry.registerTaskHandler('state-read', StateRead)\n"]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
5
+ const utils_1 = require("@things-factory/utils");
6
+ const task_registry_1 = require("../task-registry");
7
+ async function StateWrite(step, { logger, publish, data, domain, user, client }) {
8
+ var _a;
9
+ var { params: { name, accessor } } = step;
10
+ if (!name || !accessor) {
11
+ throw Error(`name and accessor should be defined: name - '${name}', accessor - '${accessor}'`);
12
+ }
13
+ var state = (0, utils_1.access)(accessor, data);
14
+ var { data: mutateResult, errors } = await client.mutate({
15
+ mutation: (0, graphql_tag_1.default) `
16
+ mutation ($state: Object!, $name: String!) {
17
+ updateStateRegisterByName(state: $state, name: $name) {
18
+ state
19
+ }
20
+ }
21
+ `,
22
+ variables: {
23
+ name,
24
+ state
25
+ },
26
+ context: {
27
+ state: {
28
+ domain,
29
+ user
30
+ }
31
+ }
32
+ });
33
+ if (errors) {
34
+ errors.forEach(error => {
35
+ logger.error('GraphQL Error: %s', error);
36
+ });
37
+ }
38
+ return {
39
+ data: (_a = mutateResult === null || mutateResult === void 0 ? void 0 : mutateResult.updateStateRegisterByName) === null || _a === void 0 ? void 0 : _a.state
40
+ };
41
+ }
42
+ StateWrite.parameterSpec = [
43
+ {
44
+ type: 'string',
45
+ name: 'name',
46
+ label: 'name'
47
+ },
48
+ {
49
+ type: 'scenario-step-input',
50
+ name: 'accessor',
51
+ label: 'accessor'
52
+ }
53
+ ];
54
+ StateWrite.connectorFree = true;
55
+ StateWrite.help = 'integration/task/state-write';
56
+ task_registry_1.TaskRegistry.registerTaskHandler('state-write', StateWrite);
57
+ //# sourceMappingURL=state-write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-write.js","sourceRoot":"","sources":["../../../server/engine/task/state-write.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,iDAA8C;AAC9C,oDAA+C;AAE/C,KAAK,UAAU,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;;IAC7E,IAAI,EACF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAC3B,GAAG,IAAI,CAAA;IAER,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;QACtB,MAAM,KAAK,CAAC,gDAAgD,IAAI,kBAAkB,QAAQ,GAAG,CAAC,CAAA;KAC/F;IAED,IAAI,KAAK,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAElC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACvD,QAAQ,EAAE,IAAA,qBAAG,EAAA;;;;;;KAMZ;QACD,SAAS,EAAE;YACT,IAAI;YACJ,KAAK;SACN;QACD,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;KACH;IAED,OAAO;QACL,IAAI,EAAE,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,yBAAyB,0CAAE,KAAK;KACrD,CAAA;AACH,CAAC;AAED,UAAU,CAAC,aAAa,GAAG;IACzB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;KACd;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;CACF,CAAA;AAED,UAAU,CAAC,aAAa,GAAG,IAAI,CAAA;AAC/B,UAAU,CAAC,IAAI,GAAG,8BAA8B,CAAA;AAEhD,4BAAY,CAAC,mBAAmB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { access } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\n\nasync function StateWrite(step, { logger, publish, data, domain, user, client }) {\n var {\n params: { name, accessor }\n } = step\n\n if (!name || !accessor) {\n throw Error(`name and accessor should be defined: name - '${name}', accessor - '${accessor}'`)\n }\n\n var state = access(accessor, data)\n\n var { data: mutateResult, errors } = await client.mutate({\n mutation: gql`\n mutation ($state: Object!, $name: String!) {\n updateStateRegisterByName(state: $state, name: $name) {\n state\n }\n }\n `,\n variables: {\n name,\n state\n },\n context: {\n state: {\n domain,\n user\n }\n }\n })\n\n if (errors) {\n errors.forEach(error => {\n logger.error('GraphQL Error: %s', error)\n })\n }\n\n return {\n data: mutateResult?.updateStateRegisterByName?.state\n }\n}\n\nStateWrite.parameterSpec = [\n {\n type: 'string',\n name: 'name',\n label: 'name'\n },\n {\n type: 'scenario-step-input',\n name: 'accessor',\n label: 'accessor'\n }\n]\n\nStateWrite.connectorFree = true\nStateWrite.help = 'integration/task/state-write'\n\nTaskRegistry.registerTaskHandler('state-write', StateWrite)\n"]}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
5
+ const utils_1 = require("@things-factory/utils");
6
+ const task_registry_1 = require("../task-registry");
7
+ async function WriteState(step, { logger, publish, data, domain, user, client }) {
8
+ var { params: { name, accessor } } = step;
9
+ if (!name || !accessor) {
10
+ throw Error(`name and accessor should be defined: name - '${name}', accessor - '${accessor}'`);
11
+ }
12
+ var state = (0, utils_1.access)(accessor, data);
13
+ var { data: mutateResult, errors } = await client.mutate({
14
+ mutation: (0, graphql_tag_1.default) `
15
+ mutation ($state: Object!, $name: String!) {
16
+ updateStateRegisterByName(state: $state, name: $name) {
17
+ state
18
+ }
19
+ }
20
+ `,
21
+ variables: {
22
+ name,
23
+ state
24
+ },
25
+ context: {
26
+ state: {
27
+ domain,
28
+ user
29
+ }
30
+ }
31
+ });
32
+ if (errors) {
33
+ errors.forEach(error => {
34
+ logger.error('GraphQL Error: %s', error);
35
+ });
36
+ }
37
+ return {
38
+ data: mutateResult === null || mutateResult === void 0 ? void 0 : mutateResult.updateStateRegisterByName.state
39
+ };
40
+ }
41
+ WriteState.parameterSpec = [
42
+ {
43
+ type: 'string',
44
+ name: 'name',
45
+ label: 'name'
46
+ },
47
+ {
48
+ type: 'scenario-step-input',
49
+ name: 'accessor',
50
+ label: 'accessor'
51
+ }
52
+ ];
53
+ WriteState.connectorFree = true;
54
+ WriteState.help = 'integration/task/write-state';
55
+ task_registry_1.TaskRegistry.registerTaskHandler('write-state', WriteState);
56
+ //# sourceMappingURL=write-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-state.js","sourceRoot":"","sources":["../../../server/engine/task/write-state.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,iDAA8C;AAC9C,oDAA+C;AAE/C,KAAK,UAAU,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7E,IAAI,EACF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAC3B,GAAG,IAAI,CAAA;IAER,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;QACtB,MAAM,KAAK,CAAC,gDAAgD,IAAI,kBAAkB,QAAQ,GAAG,CAAC,CAAA;KAC/F;IAED,IAAI,KAAK,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAElC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACvD,QAAQ,EAAE,IAAA,qBAAG,EAAA;;;;;;KAMZ;QACD,SAAS,EAAE;YACT,IAAI;YACJ,KAAK;SACN;QACD,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;KACH;IAED,OAAO;QACL,IAAI,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,yBAAyB,CAAC,KAAK;KACpD,CAAA;AACH,CAAC;AAED,UAAU,CAAC,aAAa,GAAG;IACzB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;KACd;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;CACF,CAAA;AAED,UAAU,CAAC,aAAa,GAAG,IAAI,CAAA;AAC/B,UAAU,CAAC,IAAI,GAAG,8BAA8B,CAAA;AAEhD,4BAAY,CAAC,mBAAmB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { access } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\n\nasync function WriteState(step, { logger, publish, data, domain, user, client }) {\n var {\n params: { name, accessor }\n } = step\n\n if (!name || !accessor) {\n throw Error(`name and accessor should be defined: name - '${name}', accessor - '${accessor}'`)\n }\n\n var state = access(accessor, data)\n\n var { data: mutateResult, errors } = await client.mutate({\n mutation: gql`\n mutation ($state: Object!, $name: String!) {\n updateStateRegisterByName(state: $state, name: $name) {\n state\n }\n }\n `,\n variables: {\n name,\n state\n },\n context: {\n state: {\n domain,\n user\n }\n }\n })\n\n if (errors) {\n errors.forEach(error => {\n logger.error('GraphQL Error: %s', error)\n })\n }\n\n return {\n data: mutateResult?.updateStateRegisterByName.state\n }\n}\n\nWriteState.parameterSpec = [\n {\n type: 'string',\n name: 'name',\n label: 'name'\n },\n {\n type: 'scenario-step-input',\n name: 'accessor',\n label: 'accessor'\n }\n]\n\nWriteState.connectorFree = true\nWriteState.help = 'integration/task/write-state'\n\nTaskRegistry.registerTaskHandler('write-state', WriteState)\n"]}
@@ -10,6 +10,7 @@ const scenario_queue_1 = require("./scenario-queue");
10
10
  const step_1 = require("./step");
11
11
  const task_type_1 = require("./task-type");
12
12
  const payload_log_1 = require("./payload-log");
13
+ const state_register_1 = require("./state-register");
13
14
  const analysis_1 = require("./analysis");
14
15
  tslib_1.__exportStar(require("./property-spec"), exports);
15
16
  tslib_1.__exportStar(require("./task-type/task-type-type"), exports);
@@ -21,6 +22,7 @@ tslib_1.__exportStar(require("./scenario-queue/scenario-queue-type"), exports);
21
22
  tslib_1.__exportStar(require("./step/step-type"), exports);
22
23
  tslib_1.__exportStar(require("./scenario-flow/scenario-flow"), exports);
23
24
  tslib_1.__exportStar(require("./payload-log/payload-log"), exports);
25
+ tslib_1.__exportStar(require("./state-register/state-register"), exports);
24
26
  exports.entities = [
25
27
  ...task_type_1.entities,
26
28
  ...connector_1.entities,
@@ -29,7 +31,8 @@ exports.entities = [
29
31
  ...scenario_instance_1.entities,
30
32
  ...scenario_queue_1.entities,
31
33
  ...step_1.entities,
32
- ...payload_log_1.entities
34
+ ...payload_log_1.entities,
35
+ ...state_register_1.entities
33
36
  ];
34
37
  exports.schema = {
35
38
  resolverClasses: [
@@ -41,7 +44,8 @@ exports.schema = {
41
44
  ...scenario_queue_1.resolvers,
42
45
  ...step_1.resolvers,
43
46
  ...payload_log_1.resolvers,
44
- ...analysis_1.resolvers
47
+ ...analysis_1.resolvers,
48
+ ...state_register_1.resolvers
45
49
  ]
46
50
  };
47
51
  var payload_log_2 = require("./payload-log/payload-log");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;AAAA,6CAA+F;AAC/F,2CAA4F;AAC5F,yCAAyF;AACzF,2DAAkH;AAClH,qDAAyG;AACzG,iCAA6E;AAC7E,2CAA0F;AAC1F,+CAAgG;AAChG,yCAAkE;AAElE,0DAA+B;AAC/B,qEAA0C;AAC1C,qEAA0C;AAC1C,uEAA4C;AAC5C,mEAAwC;AACxC,qFAA0D;AAC1D,+EAAoD;AACpD,2DAAgC;AAChC,wEAA6C;AAC7C,oEAAyC;AAE5B,QAAA,QAAQ,GAAG;IACtB,GAAG,oBAAgB;IACnB,GAAG,oBAAiB;IACpB,GAAG,qBAAkB;IACrB,GAAG,mBAAgB;IACnB,GAAG,4BAAwB;IAC3B,GAAG,yBAAqB;IACxB,GAAG,eAAY;IACf,GAAG,sBAAkB;CACtB,CAAA;AAEY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,GAAG,qBAAiB;QACpB,GAAG,qBAAkB;QACrB,GAAG,sBAAmB;QACtB,GAAG,oBAAiB;QACpB,GAAG,6BAAyB;QAC5B,GAAG,0BAAsB;QACzB,GAAG,gBAAa;QAChB,GAAG,uBAAmB;QACtB,GAAG,oBAAwB;KAC5B;CACF,CAAA;AAED,yDAAuD;AAA9C,0GAAA,WAAW,OAAA;AACpB,2EAAqE;AAA5D,wHAAA,gBAAgB,OAAA","sourcesContent":["import { entities as ConnectionEntities, resolvers as ConnectionResolvers } from './connection'\nimport { entities as ConnectorEntities, resolvers as ConnectorResolvers } from './connector'\nimport { entities as ScenarioEntities, resolvers as ScenarioResolvers } from './scenario'\nimport { entities as ScenarioInstanceEntities, resolvers as ScenarioInstanceResolvers } from './scenario-instance'\nimport { entities as ScenarioQueueEntities, resolvers as ScenarioQueueResolvers } from './scenario-queue'\nimport { entities as StepEntities, resolvers as StepResolvers } from './step'\nimport { entities as TaskTypeEntities, resolvers as TaskTypeResolvers } from './task-type'\nimport { entities as PayloadLogEntities, resolvers as PayloadLogResolvers } from './payload-log'\nimport { resolvers as IntegrationAnalysisQuery } from './analysis'\n\nexport * from './property-spec'\nexport * from './task-type/task-type-type'\nexport * from './connector/connector-type'\nexport * from './connection/connection-type'\nexport * from './scenario/scenario-type'\nexport * from './scenario-instance/scenario-instance-type'\nexport * from './scenario-queue/scenario-queue-type'\nexport * from './step/step-type'\nexport * from './scenario-flow/scenario-flow'\nexport * from './payload-log/payload-log'\n\nexport const entities = [\n ...TaskTypeEntities,\n ...ConnectorEntities,\n ...ConnectionEntities,\n ...ScenarioEntities,\n ...ScenarioInstanceEntities,\n ...ScenarioQueueEntities,\n ...StepEntities,\n ...PayloadLogEntities\n]\n\nexport const schema = {\n resolverClasses: [\n ...TaskTypeResolvers,\n ...ConnectorResolvers,\n ...ConnectionResolvers,\n ...ScenarioResolvers,\n ...ScenarioInstanceResolvers,\n ...ScenarioQueueResolvers,\n ...StepResolvers,\n ...PayloadLogResolvers,\n ...IntegrationAnalysisQuery\n ]\n}\n\nexport { PayloadType } from './payload-log/payload-log'\nexport { createPayloadLog } from './payload-log/payload-log-mutation'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;AAAA,6CAA+F;AAC/F,2CAA4F;AAC5F,yCAAyF;AACzF,2DAAkH;AAClH,qDAAyG;AACzG,iCAA6E;AAC7E,2CAA0F;AAC1F,+CAAgG;AAChG,qDAAyG;AACzG,yCAAkE;AAElE,0DAA+B;AAC/B,qEAA0C;AAC1C,qEAA0C;AAC1C,uEAA4C;AAC5C,mEAAwC;AACxC,qFAA0D;AAC1D,+EAAoD;AACpD,2DAAgC;AAChC,wEAA6C;AAC7C,oEAAyC;AACzC,0EAA+C;AAElC,QAAA,QAAQ,GAAG;IACtB,GAAG,oBAAgB;IACnB,GAAG,oBAAiB;IACpB,GAAG,qBAAkB;IACrB,GAAG,mBAAgB;IACnB,GAAG,4BAAwB;IAC3B,GAAG,yBAAqB;IACxB,GAAG,eAAY;IACf,GAAG,sBAAkB;IACrB,GAAG,yBAAqB;CACzB,CAAA;AAEY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,GAAG,qBAAiB;QACpB,GAAG,qBAAkB;QACrB,GAAG,sBAAmB;QACtB,GAAG,oBAAiB;QACpB,GAAG,6BAAyB;QAC5B,GAAG,0BAAsB;QACzB,GAAG,gBAAa;QAChB,GAAG,uBAAmB;QACtB,GAAG,oBAAwB;QAC3B,GAAG,0BAAsB;KAC1B;CACF,CAAA;AAED,yDAAuD;AAA9C,0GAAA,WAAW,OAAA;AACpB,2EAAqE;AAA5D,wHAAA,gBAAgB,OAAA","sourcesContent":["import { entities as ConnectionEntities, resolvers as ConnectionResolvers } from './connection'\nimport { entities as ConnectorEntities, resolvers as ConnectorResolvers } from './connector'\nimport { entities as ScenarioEntities, resolvers as ScenarioResolvers } from './scenario'\nimport { entities as ScenarioInstanceEntities, resolvers as ScenarioInstanceResolvers } from './scenario-instance'\nimport { entities as ScenarioQueueEntities, resolvers as ScenarioQueueResolvers } from './scenario-queue'\nimport { entities as StepEntities, resolvers as StepResolvers } from './step'\nimport { entities as TaskTypeEntities, resolvers as TaskTypeResolvers } from './task-type'\nimport { entities as PayloadLogEntities, resolvers as PayloadLogResolvers } from './payload-log'\nimport { entities as StateRegisterEntities, resolvers as StateRegisterResolvers } from './state-register'\nimport { resolvers as IntegrationAnalysisQuery } from './analysis'\n\nexport * from './property-spec'\nexport * from './task-type/task-type-type'\nexport * from './connector/connector-type'\nexport * from './connection/connection-type'\nexport * from './scenario/scenario-type'\nexport * from './scenario-instance/scenario-instance-type'\nexport * from './scenario-queue/scenario-queue-type'\nexport * from './step/step-type'\nexport * from './scenario-flow/scenario-flow'\nexport * from './payload-log/payload-log'\nexport * from './state-register/state-register'\n\nexport const entities = [\n ...TaskTypeEntities,\n ...ConnectorEntities,\n ...ConnectionEntities,\n ...ScenarioEntities,\n ...ScenarioInstanceEntities,\n ...ScenarioQueueEntities,\n ...StepEntities,\n ...PayloadLogEntities,\n ...StateRegisterEntities\n]\n\nexport const schema = {\n resolverClasses: [\n ...TaskTypeResolvers,\n ...ConnectorResolvers,\n ...ConnectionResolvers,\n ...ScenarioResolvers,\n ...ScenarioInstanceResolvers,\n ...ScenarioQueueResolvers,\n ...StepResolvers,\n ...PayloadLogResolvers,\n ...IntegrationAnalysisQuery,\n ...StateRegisterResolvers\n ]\n}\n\nexport { PayloadType } from './payload-log/payload-log'\nexport { createPayloadLog } from './payload-log/payload-log-mutation'\n"]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.subscribers = exports.resolvers = exports.entities = void 0;
4
+ const state_register_1 = require("./state-register");
5
+ const state_register_query_1 = require("./state-register-query");
6
+ const state_register_mutation_1 = require("./state-register-mutation");
7
+ exports.entities = [state_register_1.StateRegister];
8
+ exports.resolvers = [state_register_query_1.StateRegisterQuery, state_register_mutation_1.StateRegisterMutation];
9
+ exports.subscribers = [];
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/state-register/index.ts"],"names":[],"mappings":";;;AAAA,qDAAgD;AAChD,iEAA2D;AAC3D,uEAAiE;AAEpD,QAAA,QAAQ,GAAG,CAAC,8BAAa,CAAC,CAAA;AAC1B,QAAA,SAAS,GAAG,CAAC,yCAAkB,EAAE,+CAAqB,CAAC,CAAA;AACvD,QAAA,WAAW,GAAG,EAAE,CAAA","sourcesContent":["import { StateRegister } from './state-register'\nimport { StateRegisterQuery } from './state-register-query'\nimport { StateRegisterMutation } from './state-register-mutation'\n\nexport const entities = [StateRegister]\nexport const resolvers = [StateRegisterQuery, StateRegisterMutation]\nexport const subscribers = []\n"]}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StateRegisterMutation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const typeorm_1 = require("typeorm");
7
+ const shell_1 = require("@things-factory/shell");
8
+ const state_register_1 = require("./state-register");
9
+ const state_register_type_1 = require("./state-register-type");
10
+ let StateRegisterMutation = class StateRegisterMutation {
11
+ async createStateRegister(stateRegister, context) {
12
+ const { domain, user, tx } = context.state;
13
+ return await tx.getRepository(state_register_1.StateRegister).save(Object.assign(Object.assign({}, stateRegister), { domain, creator: user, updater: user }));
14
+ }
15
+ async updateStateRegister(id, patch, context) {
16
+ const { domain, user, tx } = context.state;
17
+ const repository = tx.getRepository(state_register_1.StateRegister);
18
+ const stateRegister = await repository.findOne({
19
+ where: { domain: { id: domain.id }, id }
20
+ });
21
+ return await repository.save(Object.assign(Object.assign(Object.assign({}, stateRegister), patch), { updater: user }));
22
+ }
23
+ async updateMultipleStateRegister(patches, context) {
24
+ const { domain, user, tx } = context.state;
25
+ let results = [];
26
+ const _createRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === '+');
27
+ const _updateRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === 'M');
28
+ const stateRegisterRepo = tx.getRepository(state_register_1.StateRegister);
29
+ if (_createRecords.length > 0) {
30
+ for (let i = 0; i < _createRecords.length; i++) {
31
+ const newRecord = _createRecords[i];
32
+ const result = await stateRegisterRepo.save(Object.assign(Object.assign({}, newRecord), { domain, creator: user, updater: user }));
33
+ results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
34
+ }
35
+ }
36
+ if (_updateRecords.length > 0) {
37
+ for (let i = 0; i < _updateRecords.length; i++) {
38
+ const updateRecord = _updateRecords[i];
39
+ const stateRegister = await stateRegisterRepo.findOneBy({ id: updateRecord.id });
40
+ const result = await stateRegisterRepo.save(Object.assign(Object.assign(Object.assign({}, stateRegister), updateRecord), { updater: user }));
41
+ results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
42
+ }
43
+ }
44
+ return results;
45
+ }
46
+ async updateStateRegisterByName(name, state, context) {
47
+ const { domain, user, tx } = context.state;
48
+ const repository = tx.getRepository(state_register_1.StateRegister);
49
+ const stateRegister = await repository.findOne({
50
+ where: { domain: { id: domain.id }, name }
51
+ });
52
+ return await repository.save(Object.assign(Object.assign({}, stateRegister), { state, writer: user, wroteAt: new Date() }));
53
+ }
54
+ async deleteStateRegister(id, context) {
55
+ const { domain, tx } = context.state;
56
+ await tx.getRepository(state_register_1.StateRegister).delete({ domain: { id: domain.id }, id });
57
+ return true;
58
+ }
59
+ async deleteStateRegisters(ids, context) {
60
+ const { domain, tx } = context.state;
61
+ await tx.getRepository(state_register_1.StateRegister).delete({
62
+ domain: { id: domain.id },
63
+ id: (0, typeorm_1.In)(ids)
64
+ });
65
+ return true;
66
+ }
67
+ async importStateRegisters(stateRegisters, context) {
68
+ const { domain, tx } = context.state;
69
+ await Promise.all(stateRegisters.map(async (stateRegister) => {
70
+ const createdStateRegister = await tx
71
+ .getRepository(state_register_1.StateRegister)
72
+ .save(Object.assign({ domain }, stateRegister));
73
+ }));
74
+ return true;
75
+ }
76
+ };
77
+ tslib_1.__decorate([
78
+ (0, type_graphql_1.Directive)('@transaction'),
79
+ (0, type_graphql_1.Directive)('@privilege(category: "state-register", privilege: "mutation", domainOwnerGranted: true)'),
80
+ (0, type_graphql_1.Mutation)(returns => state_register_1.StateRegister, { description: 'To create new StateRegister' }),
81
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('stateRegister')),
82
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
83
+ tslib_1.__metadata("design:type", Function),
84
+ tslib_1.__metadata("design:paramtypes", [state_register_type_1.NewStateRegister, Object]),
85
+ tslib_1.__metadata("design:returntype", Promise)
86
+ ], StateRegisterMutation.prototype, "createStateRegister", null);
87
+ tslib_1.__decorate([
88
+ (0, type_graphql_1.Directive)('@transaction'),
89
+ (0, type_graphql_1.Directive)('@privilege(category: "state-register", privilege: "mutation", domainOwnerGranted: true)'),
90
+ (0, type_graphql_1.Mutation)(returns => state_register_1.StateRegister, { description: 'To modify StateRegister information' }),
91
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
92
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
93
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
94
+ tslib_1.__metadata("design:type", Function),
95
+ tslib_1.__metadata("design:paramtypes", [String, state_register_type_1.StateRegisterPatch, Object]),
96
+ tslib_1.__metadata("design:returntype", Promise)
97
+ ], StateRegisterMutation.prototype, "updateStateRegister", null);
98
+ tslib_1.__decorate([
99
+ (0, type_graphql_1.Directive)('@transaction'),
100
+ (0, type_graphql_1.Directive)('@privilege(category: "state-register", privilege: "mutation", domainOwnerGranted: true)'),
101
+ (0, type_graphql_1.Mutation)(returns => [state_register_1.StateRegister], { description: "To modify multiple StateRegisters' information" }),
102
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('patches', type => [state_register_type_1.StateRegisterPatch])),
103
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
104
+ tslib_1.__metadata("design:type", Function),
105
+ tslib_1.__metadata("design:paramtypes", [Array, Object]),
106
+ tslib_1.__metadata("design:returntype", Promise)
107
+ ], StateRegisterMutation.prototype, "updateMultipleStateRegister", null);
108
+ tslib_1.__decorate([
109
+ (0, type_graphql_1.Directive)('@transaction'),
110
+ (0, type_graphql_1.Directive)('@privilege(category: "state-register", privilege: "mutation", domainOwnerGranted: true)'),
111
+ (0, type_graphql_1.Mutation)(returns => state_register_1.StateRegister, { description: 'To update state of StateRegister by name' }),
112
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('name')),
113
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('state', type => shell_1.ScalarObject)),
114
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
115
+ tslib_1.__metadata("design:type", Function),
116
+ tslib_1.__metadata("design:paramtypes", [String, Object, Object]),
117
+ tslib_1.__metadata("design:returntype", Promise)
118
+ ], StateRegisterMutation.prototype, "updateStateRegisterByName", null);
119
+ tslib_1.__decorate([
120
+ (0, type_graphql_1.Directive)('@transaction'),
121
+ (0, type_graphql_1.Directive)('@privilege(category: "state-register", privilege: "mutation", domainOwnerGranted: true)'),
122
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete StateRegister' }),
123
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
124
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
125
+ tslib_1.__metadata("design:type", Function),
126
+ tslib_1.__metadata("design:paramtypes", [String, Object]),
127
+ tslib_1.__metadata("design:returntype", Promise)
128
+ ], StateRegisterMutation.prototype, "deleteStateRegister", null);
129
+ tslib_1.__decorate([
130
+ (0, type_graphql_1.Directive)('@transaction'),
131
+ (0, type_graphql_1.Directive)('@privilege(category: "state-register", privilege: "mutation", domainOwnerGranted: true)'),
132
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete multiple StateRegisters' }),
133
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
134
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
135
+ tslib_1.__metadata("design:type", Function),
136
+ tslib_1.__metadata("design:paramtypes", [Array, Object]),
137
+ tslib_1.__metadata("design:returntype", Promise)
138
+ ], StateRegisterMutation.prototype, "deleteStateRegisters", null);
139
+ tslib_1.__decorate([
140
+ (0, type_graphql_1.Directive)('@transaction'),
141
+ (0, type_graphql_1.Directive)('@privilege(category: "state-register", privilege: "mutation", domainOwnerGranted: true)'),
142
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To import multiple StateRegisters' }),
143
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('stateRegisters', type => [state_register_type_1.StateRegisterPatch])),
144
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
145
+ tslib_1.__metadata("design:type", Function),
146
+ tslib_1.__metadata("design:paramtypes", [Array, Object]),
147
+ tslib_1.__metadata("design:returntype", Promise)
148
+ ], StateRegisterMutation.prototype, "importStateRegisters", null);
149
+ StateRegisterMutation = tslib_1.__decorate([
150
+ (0, type_graphql_1.Resolver)(state_register_1.StateRegister)
151
+ ], StateRegisterMutation);
152
+ exports.StateRegisterMutation = StateRegisterMutation;
153
+ //# sourceMappingURL=state-register-mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-register-mutation.js","sourceRoot":"","sources":["../../../server/service/state-register/state-register-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AACtE,qCAA4B;AAE5B,iDAAoD;AACpD,qDAAgD;AAChD,+DAA4E;AAGrE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAI1B,AAAN,KAAK,CAAC,mBAAmB,CACD,aAA+B,EAC9C,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAC,IAAI,iCAC5C,aAAa,KAChB,MAAM,EACN,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;IAKK,AAAN,KAAK,CAAC,mBAAmB,CACZ,EAAU,EACP,KAAyB,EAChC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAA;QAClD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YAC7C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;SACzC,CAAC,CAAA;QAEF,OAAO,MAAM,UAAU,CAAC,IAAI,+CACvB,aAAa,GACb,KAAK,KACR,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;IAKK,AAAN,KAAK,CAAC,2BAA2B,CACe,OAA6B,EACpE,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,iBAAiB,GAAG,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAA;QAEzD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBAEnC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,iCACtC,SAAS,KACZ,MAAM,EACN,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;gBAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;aACzC;SACF;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBACtC,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAA;gBAEhF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,+CACtC,aAAa,GACb,YAAY,KACf,OAAO,EAAE,IAAI,IACb,CAAA;gBAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;aACzC;SACF;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAKK,AAAN,KAAK,CAAC,yBAAyB,CAChB,IAAY,EACW,KAAU,EACvC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAA;QAClD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YAC7C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;SAC3C,CAAC,CAAA;QAEF,OAAO,MAAM,UAAU,CAAC,IAAI,iCACvB,aAAa,KAChB,KAAK,EACL,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,IAAI,IAAI,EAAE,IACnB,CAAA;IACJ,CAAC;IAKK,AAAN,KAAK,CAAC,mBAAmB,CAAY,EAAU,EAAS,OAAwB;QAC9E,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAE/E,OAAO,IAAI,CAAA;IACb,CAAC;IAKK,AAAN,KAAK,CAAC,oBAAoB,CACM,GAAa,EACpC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAC,MAAM,CAAC;YAC3C,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC;SACZ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAKK,AAAN,KAAK,CAAC,oBAAoB,CAC6B,cAAoC,EAClF,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,aAAiC,EAAE,EAAE;YAC7D,MAAM,oBAAoB,GAAkB,MAAM,EAAE;iBACjD,aAAa,CAAC,8BAAa,CAAC;iBAC5B,IAAI,iBAAG,MAAM,IAAK,aAAa,EAAG,CAAA;QACvC,CAAC,CAAC,CACH,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AAzJO;IAHL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,wBAAS,EAAC,yFAAyF,CAAC;IACpG,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,8BAAa,EAAE,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;IAEhF,mBAAA,IAAA,kBAAG,EAAC,eAAe,CAAC,CAAA;IACpB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD+B,sCAAgB;;gEAWtD;AAKK;IAHL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,wBAAS,EAAC,yFAAyF,CAAC;IACpG,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,8BAAa,EAAE,EAAE,WAAW,EAAE,qCAAqC,EAAE,CAAC;IAExF,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IACT,mBAAA,IAAA,kBAAG,EAAC,OAAO,CAAC,CAAA;IACZ,mBAAA,IAAA,kBAAG,GAAE,CAAA;;qDADe,wCAAkB;;gEAexC;AAKK;IAHL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,wBAAS,EAAC,yFAAyF,CAAC;IACpG,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,8BAAa,CAAC,EAAE,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC;IAErG,mBAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,wCAAkB,CAAC,CAAC,CAAA;IAC5C,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;wEAwCP;AAKK;IAHL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,wBAAS,EAAC,yFAAyF,CAAC;IACpG,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,8BAAa,EAAE,EAAE,WAAW,EAAE,0CAA0C,EAAE,CAAC;IAE7F,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IACX,mBAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,oBAAY,CAAC,CAAA;IAClC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;sEAeP;AAKK;IAHL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,wBAAS,EAAC,yFAAyF,CAAC;IACpG,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;IAC9C,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;gEAMtD;AAKK;IAHL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,wBAAS,EAAC,yFAAyF,CAAC;IACpG,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC;IAEhF,mBAAA,IAAA,kBAAG,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5B,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;iEAUP;AAKK;IAHL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,wBAAS,EAAC,yFAAyF,CAAC;IACpG,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC;IAEhF,mBAAA,IAAA,kBAAG,EAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,wCAAkB,CAAC,CAAC,CAAA;IACnD,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;iEAaP;AA5JU,qBAAqB;IADjC,IAAA,uBAAQ,EAAC,8BAAa,CAAC;GACX,qBAAqB,CA6JjC;AA7JY,sDAAqB","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { ScalarObject } from '@things-factory/shell'\nimport { StateRegister } from './state-register'\nimport { NewStateRegister, StateRegisterPatch } from './state-register-type'\n\n@Resolver(StateRegister)\nexport class StateRegisterMutation {\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => StateRegister, { description: 'To create new StateRegister' })\n async createStateRegister(\n @Arg('stateRegister') stateRegister: NewStateRegister,\n @Ctx() context: ResolverContext\n ): Promise<StateRegister> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(StateRegister).save({\n ...stateRegister,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => StateRegister, { description: 'To modify StateRegister information' })\n async updateStateRegister(\n @Arg('id') id: string,\n @Arg('patch') patch: StateRegisterPatch,\n @Ctx() context: ResolverContext\n ): Promise<StateRegister> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(StateRegister)\n const stateRegister = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n return await repository.save({\n ...stateRegister,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => [StateRegister], { description: \"To modify multiple StateRegisters' information\" })\n async updateMultipleStateRegister(\n @Arg('patches', type => [StateRegisterPatch]) patches: StateRegisterPatch[],\n @Ctx() context: ResolverContext\n ): Promise<StateRegister[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const stateRegisterRepo = tx.getRepository(StateRegister)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await stateRegisterRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const stateRegister = await stateRegisterRepo.findOneBy({ id: updateRecord.id })\n\n const result = await stateRegisterRepo.save({\n ...stateRegister,\n ...updateRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => StateRegister, { description: 'To update state of StateRegister by name' })\n async updateStateRegisterByName(\n @Arg('name') name: string,\n @Arg('state', type => ScalarObject) state: any,\n @Ctx() context: ResolverContext\n ): Promise<StateRegister> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(StateRegister)\n const stateRegister = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await repository.save({\n ...stateRegister,\n state,\n writer: user,\n wroteAt: new Date()\n })\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete StateRegister' })\n async deleteStateRegister(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(StateRegister).delete({ domain: { id: domain.id }, id })\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete multiple StateRegisters' })\n async deleteStateRegisters(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(StateRegister).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"state-register\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To import multiple StateRegisters' })\n async importStateRegisters(\n @Arg('stateRegisters', type => [StateRegisterPatch]) stateRegisters: StateRegisterPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n stateRegisters.map(async (stateRegister: StateRegisterPatch) => {\n const createdStateRegister: StateRegister = await tx\n .getRepository(StateRegister)\n .save({ domain, ...stateRegister })\n })\n )\n\n return true\n }\n}\n"]}