@things-factory/integration-pos 9.0.0-beta.27 → 9.0.0-beta.29

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 (125) hide show
  1. package/dist-server/controllers/index.d.ts +2 -0
  2. package/dist-server/controllers/index.js +6 -0
  3. package/dist-server/controllers/index.js.map +1 -0
  4. package/dist-server/controllers/pos-api/decorators.d.ts +1 -0
  5. package/dist-server/controllers/pos-api/decorators.js +30 -0
  6. package/dist-server/controllers/pos-api/decorators.js.map +1 -0
  7. package/dist-server/controllers/pos-api/index.d.ts +14 -0
  8. package/dist-server/controllers/pos-api/index.js +48 -0
  9. package/dist-server/controllers/pos-api/index.js.map +1 -0
  10. package/dist-server/controllers/xilnex/apis/get-outlet.d.ts +6 -0
  11. package/dist-server/controllers/xilnex/apis/get-outlet.js +16 -0
  12. package/dist-server/controllers/xilnex/apis/get-outlet.js.map +1 -0
  13. package/dist-server/controllers/xilnex/apis/get-outlets.d.ts +9 -0
  14. package/dist-server/controllers/xilnex/apis/get-outlets.js +22 -0
  15. package/dist-server/controllers/xilnex/apis/get-outlets.js.map +1 -0
  16. package/dist-server/controllers/xilnex/apis/index.d.ts +1 -0
  17. package/dist-server/controllers/xilnex/apis/index.js +5 -0
  18. package/dist-server/controllers/xilnex/apis/index.js.map +1 -0
  19. package/dist-server/controllers/xilnex/index.d.ts +1 -0
  20. package/dist-server/controllers/xilnex/index.js +9 -0
  21. package/dist-server/controllers/xilnex/index.js.map +1 -0
  22. package/dist-server/controllers/xilnex/platform-action.d.ts +6 -0
  23. package/dist-server/controllers/xilnex/platform-action.js +37 -0
  24. package/dist-server/controllers/xilnex/platform-action.js.map +1 -0
  25. package/dist-server/controllers/xilnex/xilnex.d.ts +13 -0
  26. package/dist-server/controllers/xilnex/xilnex.js +89 -0
  27. package/dist-server/controllers/xilnex/xilnex.js.map +1 -0
  28. package/dist-server/engine/connector/index.d.ts +1 -0
  29. package/dist-server/engine/connector/index.js +4 -0
  30. package/dist-server/engine/connector/index.js.map +1 -0
  31. package/dist-server/engine/connector/pos-connector.d.ts +8 -0
  32. package/dist-server/engine/connector/pos-connector.js +28 -0
  33. package/dist-server/engine/connector/pos-connector.js.map +1 -0
  34. package/dist-server/engine/index.d.ts +2 -0
  35. package/dist-server/engine/index.js +5 -0
  36. package/dist-server/engine/index.js.map +1 -0
  37. package/dist-server/engine/task/index.d.ts +1 -0
  38. package/dist-server/engine/task/index.js +4 -0
  39. package/dist-server/engine/task/index.js.map +1 -0
  40. package/dist-server/engine/task/pos-api.d.ts +1 -0
  41. package/dist-server/engine/task/pos-api.js +54 -0
  42. package/dist-server/engine/task/pos-api.js.map +1 -0
  43. package/dist-server/entities/index.d.ts +3 -0
  44. package/dist-server/entities/index.js +7 -0
  45. package/dist-server/entities/index.js.map +1 -0
  46. package/dist-server/entities/pos-store.d.ts +20 -0
  47. package/dist-server/entities/pos-store.js +97 -0
  48. package/dist-server/entities/pos-store.js.map +1 -0
  49. package/dist-server/graphql/index.d.ts +6 -0
  50. package/dist-server/graphql/index.js +11 -0
  51. package/dist-server/graphql/index.js.map +1 -0
  52. package/dist-server/graphql/resolvers/index.d.ts +2 -0
  53. package/dist-server/graphql/resolvers/index.js +9 -0
  54. package/dist-server/graphql/resolvers/index.js.map +1 -0
  55. package/dist-server/graphql/resolvers/pos/create-pos-store.d.ts +6 -0
  56. package/dist-server/graphql/resolvers/pos/create-pos-store.js +12 -0
  57. package/dist-server/graphql/resolvers/pos/create-pos-store.js.map +1 -0
  58. package/dist-server/graphql/resolvers/pos/delete-pos-store.d.ts +5 -0
  59. package/dist-server/graphql/resolvers/pos/delete-pos-store.js +16 -0
  60. package/dist-server/graphql/resolvers/pos/delete-pos-store.js.map +1 -0
  61. package/dist-server/graphql/resolvers/pos/delete-pos-stores.d.ts +5 -0
  62. package/dist-server/graphql/resolvers/pos/delete-pos-stores.js +20 -0
  63. package/dist-server/graphql/resolvers/pos/delete-pos-stores.js.map +1 -0
  64. package/dist-server/graphql/resolvers/pos/index.d.ts +27 -0
  65. package/dist-server/graphql/resolvers/pos/index.js +15 -0
  66. package/dist-server/graphql/resolvers/pos/index.js.map +1 -0
  67. package/dist-server/graphql/resolvers/pos/pos-store.d.ts +6 -0
  68. package/dist-server/graphql/resolvers/pos/pos-store.js +15 -0
  69. package/dist-server/graphql/resolvers/pos/pos-store.js.map +1 -0
  70. package/dist-server/graphql/resolvers/pos/pos-stores.d.ts +8 -0
  71. package/dist-server/graphql/resolvers/pos/pos-stores.js +14 -0
  72. package/dist-server/graphql/resolvers/pos/pos-stores.js.map +1 -0
  73. package/dist-server/graphql/resolvers/pos/update-multiple-pos-stores.d.ts +5 -0
  74. package/dist-server/graphql/resolvers/pos/update-multiple-pos-stores.js +30 -0
  75. package/dist-server/graphql/resolvers/pos/update-multiple-pos-stores.js.map +1 -0
  76. package/dist-server/graphql/resolvers/pos/update-pos-store.d.ts +6 -0
  77. package/dist-server/graphql/resolvers/pos/update-pos-store.js +15 -0
  78. package/dist-server/graphql/resolvers/pos/update-pos-store.js.map +1 -0
  79. package/dist-server/graphql/resolvers/pos/xilnex/deactivate-xilnex-store.d.ts +5 -0
  80. package/dist-server/graphql/resolvers/pos/xilnex/deactivate-xilnex-store.js +24 -0
  81. package/dist-server/graphql/resolvers/pos/xilnex/deactivate-xilnex-store.js.map +1 -0
  82. package/dist-server/graphql/resolvers/pos/xilnex/generate-xilnex-access-token.d.ts +7 -0
  83. package/dist-server/graphql/resolvers/pos/xilnex/generate-xilnex-access-token.js +25 -0
  84. package/dist-server/graphql/resolvers/pos/xilnex/generate-xilnex-access-token.js.map +1 -0
  85. package/dist-server/graphql/resolvers/pos/xilnex/index.d.ts +11 -0
  86. package/dist-server/graphql/resolvers/pos/xilnex/index.js +8 -0
  87. package/dist-server/graphql/resolvers/pos/xilnex/index.js.map +1 -0
  88. package/dist-server/graphql/resolvers/pos-api/index.d.ts +11 -0
  89. package/dist-server/graphql/resolvers/pos-api/index.js +7 -0
  90. package/dist-server/graphql/resolvers/pos-api/index.js.map +1 -0
  91. package/dist-server/graphql/resolvers/pos-api/pos-outlet.d.ts +11 -0
  92. package/dist-server/graphql/resolvers/pos-api/pos-outlet.js +23 -0
  93. package/dist-server/graphql/resolvers/pos-api/pos-outlet.js.map +1 -0
  94. package/dist-server/graphql/types/index.d.ts +4 -0
  95. package/dist-server/graphql/types/index.js +20 -0
  96. package/dist-server/graphql/types/index.js.map +1 -0
  97. package/dist-server/graphql/types/pos/index.d.ts +3 -0
  98. package/dist-server/graphql/types/pos/index.js +45 -0
  99. package/dist-server/graphql/types/pos/index.js.map +1 -0
  100. package/dist-server/graphql/types/pos/new-pos-store.d.ts +1 -0
  101. package/dist-server/graphql/types/pos/new-pos-store.js +15 -0
  102. package/dist-server/graphql/types/pos/new-pos-store.js.map +1 -0
  103. package/dist-server/graphql/types/pos/pos-store-list.d.ts +1 -0
  104. package/dist-server/graphql/types/pos/pos-store-list.js +12 -0
  105. package/dist-server/graphql/types/pos/pos-store-list.js.map +1 -0
  106. package/dist-server/graphql/types/pos/pos-store-patch.d.ts +1 -0
  107. package/dist-server/graphql/types/pos/pos-store-patch.js +17 -0
  108. package/dist-server/graphql/types/pos/pos-store-patch.js.map +1 -0
  109. package/dist-server/graphql/types/pos/pos-store.d.ts +1 -0
  110. package/dist-server/graphql/types/pos/pos-store.js +24 -0
  111. package/dist-server/graphql/types/pos/pos-store.js.map +1 -0
  112. package/dist-server/graphql/types/pos-api/pos-outlet.d.ts +3 -0
  113. package/dist-server/graphql/types/pos-api/pos-outlet.js +42 -0
  114. package/dist-server/graphql/types/pos-api/pos-outlet.js.map +1 -0
  115. package/dist-server/index.d.ts +6 -0
  116. package/dist-server/index.js +11 -0
  117. package/dist-server/index.js.map +1 -0
  118. package/dist-server/migrations/index.d.ts +1 -0
  119. package/dist-server/migrations/index.js +12 -0
  120. package/dist-server/migrations/index.js.map +1 -0
  121. package/dist-server/routes.d.ts +1 -0
  122. package/dist-server/routes.js +8 -0
  123. package/dist-server/routes.js.map +1 -0
  124. package/dist-server/tsconfig.tsbuildinfo +1 -0
  125. package/package.json +12 -12
@@ -0,0 +1,2 @@
1
+ import './xilnex';
2
+ export * from './pos-api';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ require("./xilnex");
5
+ tslib_1.__exportStar(require("./pos-api"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/controllers/index.ts"],"names":[],"mappings":";;;AAAA,oBAAiB;AAEjB,oDAAyB","sourcesContent":["import './xilnex'\n\nexport * from './pos-api'\n"]}
@@ -0,0 +1 @@
1
+ export declare const api: (target: Object, property: string, descriptor: TypedPropertyDescriptor<any>) => any;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.api = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const debug_1 = tslib_1.__importDefault(require("debug"));
6
+ const debug = (0, debug_1.default)('things-factory:integration-pos:pos-api-decorator');
7
+ const NOOP = v => v;
8
+ const api = (target, property, descriptor) => {
9
+ const method = descriptor.value;
10
+ descriptor.value = async function (store, request) {
11
+ const POSAPI = this;
12
+ var { platform } = store;
13
+ var { action: platformAction, apis } = POSAPI.getPlatform(platform);
14
+ var m = apis[method.name];
15
+ if (!m) {
16
+ throw Error(`POS Platform '${platform}' doesn't have API ${method.name}`);
17
+ }
18
+ var { path, method: httpMethod = 'post', denormalize = NOOP, normalize = NOOP, action = platformAction } = m.apply(this, [request]);
19
+ var denormalized = await denormalize(request || {}, { store });
20
+ debug('request', denormalized);
21
+ var response = await action.apply(this, [
22
+ { store, method: httpMethod, path, request: denormalized, platformAction }
23
+ ]);
24
+ debug('response', response);
25
+ return await normalize(response, { store });
26
+ };
27
+ return descriptor;
28
+ };
29
+ exports.api = api;
30
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../server/controllers/pos-api/decorators.ts"],"names":[],"mappings":";;;;AAAA,0DAAyB;AACzB,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,kDAAkD,CAAC,CAAA;AAIvE,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAEZ,MAAM,GAAG,GAAG,CAAC,MAAc,EAAE,QAAgB,EAAE,UAAwC,EAAO,EAAE;IACrG,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAA;IAE/B,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,KAAe,EAAE,OAAO;QACzD,MAAM,MAAM,GAAG,IAAI,CAAA;QAEnB,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;QAExB,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAEnE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACzB,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,KAAK,CAAC,iBAAiB,QAAQ,sBAAsB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3E,CAAC;QAED,IAAI,EACF,IAAI,EACJ,MAAM,EAAE,UAAU,GAAG,MAAM,EAC3B,WAAW,GAAG,IAAI,EAClB,SAAS,GAAG,IAAI,EAChB,MAAM,GAAG,cAAc,EACxB,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;QAE5B,IAAI,YAAY,GAAG,MAAM,WAAW,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAC9D,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QAE9B,IAAI,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;YACtC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE;SAC3E,CAAC,CAAA;QAEF,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAE3B,OAAO,MAAM,SAAS,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAA;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AApCY,QAAA,GAAG,OAoCf","sourcesContent":["import Debug from 'debug'\nconst debug = Debug('things-factory:integration-pos:pos-api-decorator')\n\nimport { PosStore } from '../../entities'\n\nconst NOOP = v => v\n\nexport const api = (target: Object, property: string, descriptor: TypedPropertyDescriptor<any>): any => {\n const method = descriptor.value\n\n descriptor.value = async function (store: PosStore, request) {\n const POSAPI = this\n\n var { platform } = store\n\n var { action: platformAction, apis } = POSAPI.getPlatform(platform)\n\n var m = apis[method.name]\n if (!m) {\n throw Error(`POS Platform '${platform}' doesn't have API ${method.name}`)\n }\n\n var {\n path,\n method: httpMethod = 'post',\n denormalize = NOOP,\n normalize = NOOP,\n action = platformAction\n } = m.apply(this, [request])\n\n var denormalized = await denormalize(request || {}, { store })\n debug('request', denormalized)\n\n var response = await action.apply(this, [\n { store, method: httpMethod, path, request: denormalized, platformAction }\n ])\n\n debug('response', response)\n\n return await normalize(response, { store })\n }\n\n return descriptor\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import { PosStore } from '../../entities';
2
+ export declare const POS_STORE_STATUS: {
3
+ ACTIVE: string;
4
+ INACTIVE: string;
5
+ TERMINATED: string;
6
+ };
7
+ export declare class POSAPI {
8
+ static platforms: {};
9
+ static registerPlatform(name: any, action: any, apis: any): void;
10
+ static getPlatform(name: any): any;
11
+ static getPosStore(id: any): Promise<PosStore>;
12
+ static getOutlets(store: any, req: any): any;
13
+ static getOutlet(store: any, req: any): any;
14
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POSAPI = exports.POS_STORE_STATUS = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const shell_1 = require("@things-factory/shell");
6
+ const entities_1 = require("../../entities");
7
+ const decorators_1 = require("./decorators");
8
+ exports.POS_STORE_STATUS = {
9
+ ACTIVE: 'active',
10
+ INACTIVE: 'inactive',
11
+ TERMINATED: 'terminated'
12
+ };
13
+ class POSAPI {
14
+ static registerPlatform(name, action, apis) {
15
+ POSAPI.platforms[name] = {
16
+ action,
17
+ apis
18
+ };
19
+ }
20
+ static getPlatform(name) {
21
+ return POSAPI.platforms[name];
22
+ }
23
+ static async getPosStore(id) {
24
+ const repository = (0, shell_1.getRepository)(entities_1.PosStore);
25
+ // return await repository.find(id)
26
+ return await repository.findOne({
27
+ where: { id },
28
+ relations: ['domain']
29
+ });
30
+ }
31
+ static getOutlets(store, req) { }
32
+ static getOutlet(store, req) { }
33
+ }
34
+ exports.POSAPI = POSAPI;
35
+ POSAPI.platforms = {};
36
+ tslib_1.__decorate([
37
+ decorators_1.api,
38
+ tslib_1.__metadata("design:type", Function),
39
+ tslib_1.__metadata("design:paramtypes", [Object, Object]),
40
+ tslib_1.__metadata("design:returntype", Object)
41
+ ], POSAPI, "getOutlets", null);
42
+ tslib_1.__decorate([
43
+ decorators_1.api,
44
+ tslib_1.__metadata("design:type", Function),
45
+ tslib_1.__metadata("design:paramtypes", [Object, Object]),
46
+ tslib_1.__metadata("design:returntype", Object)
47
+ ], POSAPI, "getOutlet", null);
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/controllers/pos-api/index.ts"],"names":[],"mappings":";;;;AAAA,iDAAqD;AAErD,6CAAyC;AACzC,6CAAkC;AAErB,QAAA,gBAAgB,GAAG;IAC9B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;CACzB,CAAA;AAED,MAAa,MAAM;IAGjB,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI;QACxC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;YACvB,MAAM;YACN,IAAI;SACL,CAAA;IACH,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAI;QACrB,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;QACzB,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAA;QAC1C,mCAAmC;QACnC,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC;YAC9B,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC,CAAA;IACJ,CAAC;IAGM,AAAP,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,IAAQ,CAAC;IAG9B,AAAP,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,IAAQ,CAAC;;AA3BtC,wBA4BC;AA3BQ,gBAAS,GAAG,EAAE,CAAA;AAuBd;IADN,gBAAG;;;;8BACiC;AAG9B;IADN,gBAAG;;;;6BACgC","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { PosStore } from '../../entities'\nimport { api } from './decorators'\n\nexport const POS_STORE_STATUS = {\n ACTIVE: 'active',\n INACTIVE: 'inactive',\n TERMINATED: 'terminated'\n}\n\nexport class POSAPI {\n static platforms = {}\n\n static registerPlatform(name, action, apis) {\n POSAPI.platforms[name] = {\n action,\n apis\n }\n }\n\n static getPlatform(name) {\n return POSAPI.platforms[name]\n }\n\n static async getPosStore(id) {\n const repository = getRepository(PosStore)\n // return await repository.find(id)\n return await repository.findOne({\n where: { id },\n relations: ['domain']\n })\n }\n\n @api\n static getOutlets(store, req): any {}\n\n @api\n static getOutlet(store, req): any {}\n}\n"]}
@@ -0,0 +1,6 @@
1
+ export declare function getOutlet(): {
2
+ method: string;
3
+ path: string;
4
+ denormalize(req: any): {};
5
+ normalize(res: any): any;
6
+ };
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOutlet = getOutlet;
4
+ function getOutlet() {
5
+ return {
6
+ method: 'get',
7
+ path: '/outlet/{outletNo}',
8
+ denormalize(req) {
9
+ return {};
10
+ },
11
+ normalize(res) {
12
+ return Object.assign({}, res);
13
+ }
14
+ };
15
+ }
16
+ //# sourceMappingURL=get-outlet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-outlet.js","sourceRoot":"","sources":["../../../../server/controllers/xilnex/apis/get-outlet.ts"],"names":[],"mappings":";;AAAA,8BAaC;AAbD,SAAgB,SAAS;IACvB,OAAO;QACL,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,oBAAoB;QAC1B,WAAW,CAAC,GAAG;YACb,OAAO,EAAE,CAAA;QACX,CAAC;QACD,SAAS,CAAC,GAAG;YACX,yBACK,GAAG,EACP;QACH,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["export function getOutlet() {\n return {\n method: 'get',\n path: '/outlet/{outletNo}',\n denormalize(req) {\n return {}\n },\n normalize(res) {\n return {\n ...res\n }\n }\n }\n}\n"]}
@@ -0,0 +1,9 @@
1
+ export declare function getOutlets(): {
2
+ method: string;
3
+ path: string;
4
+ denormalize(req: any): {};
5
+ normalize(res: any): {
6
+ items: any;
7
+ total: any;
8
+ };
9
+ };
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOutlets = getOutlets;
4
+ const debug = require('debug')('things-factory:integration-pos:xilnex:get-outlets');
5
+ function getOutlets() {
6
+ return {
7
+ method: 'get',
8
+ path: '/outlets',
9
+ denormalize(req) {
10
+ return {};
11
+ },
12
+ normalize(res) {
13
+ debug('response data', res);
14
+ const { outlets } = res;
15
+ return {
16
+ items: outlets,
17
+ total: outlets.length
18
+ };
19
+ }
20
+ };
21
+ }
22
+ //# sourceMappingURL=get-outlets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-outlets.js","sourceRoot":"","sources":["../../../../server/controllers/xilnex/apis/get-outlets.ts"],"names":[],"mappings":";;AAEA,gCAiBC;AAnBD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,mDAAmD,CAAC,CAAA;AAEnF,SAAgB,UAAU;IACxB,OAAO;QACL,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,UAAU;QAChB,WAAW,CAAC,GAAG;YACb,OAAO,EAAE,CAAA;QACX,CAAC;QACD,SAAS,CAAC,GAAG;YACX,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA;YAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;YAEvB,OAAO;gBACL,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,OAAO,CAAC,MAAM;aACtB,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["const debug = require('debug')('things-factory:integration-pos:xilnex:get-outlets')\n\nexport function getOutlets() {\n return {\n method: 'get',\n path: '/outlets',\n denormalize(req) {\n return {}\n },\n normalize(res) {\n debug('response data', res)\n const { outlets } = res\n \n return {\n items: outlets,\n total: outlets.length\n }\n }\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ export * from './get-outlets';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./get-outlets"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/controllers/xilnex/apis/index.ts"],"names":[],"mappings":";;;AAAA,wDAA6B","sourcesContent":["export * from './get-outlets'"]}
@@ -0,0 +1 @@
1
+ export * from './xilnex';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./xilnex"), exports);
5
+ const platform_action_1 = require("./platform-action");
6
+ const pos_api_1 = require("../pos-api");
7
+ const APIS = tslib_1.__importStar(require("./apis"));
8
+ pos_api_1.POSAPI.registerPlatform('xilnex', platform_action_1.action, APIS);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/controllers/xilnex/index.ts"],"names":[],"mappings":";;;AAAA,mDAAwB;AAExB,uDAA0C;AAC1C,wCAAmC;AAEnC,qDAA8B;AAE9B,gBAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,wBAAM,EAAE,IAAI,CAAC,CAAA","sourcesContent":["export * from './xilnex'\n\nimport { action } from './platform-action'\nimport { POSAPI } from '../pos-api'\n\nimport * as APIS from './apis'\n\nPOSAPI.registerPlatform('xilnex', action, APIS)\n"]}
@@ -0,0 +1,6 @@
1
+ export declare const action: ({ store, method, path, request }: {
2
+ store: any;
3
+ method?: string;
4
+ path: any;
5
+ request: any;
6
+ }) => Promise<any>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.action = void 0;
4
+ const xilnex_1 = require("./xilnex");
5
+ const env_1 = require("@things-factory/env");
6
+ const xilnexConfig = env_1.config.get('posIntegrationXilnex', {});
7
+ const { apiKey, apiSecret } = xilnexConfig;
8
+ function substitute(path, obj) {
9
+ var props = [];
10
+ var re = /{([^}]+)}/g;
11
+ var text;
12
+ while ((text = re.exec(path))) {
13
+ props.push(text[1]);
14
+ }
15
+ var result = path;
16
+ props.forEach(prop => {
17
+ let value = obj[prop.trim()];
18
+ result = result.replace(`{${prop}}`, value === undefined ? '' : value);
19
+ });
20
+ return result;
21
+ }
22
+ const action = async ({ store, method = 'get', path, request }) => {
23
+ const client = new xilnex_1.Xilnex({
24
+ store: store.storeId,
25
+ accessToken: store.accessToken,
26
+ storeId: store.storeId
27
+ });
28
+ const { resource = {}, payload = {} } = request;
29
+ path = substitute(path, resource);
30
+ var response = await client[method](path, payload);
31
+ if (!response.ok) {
32
+ throw response.error;
33
+ }
34
+ return response.data;
35
+ };
36
+ exports.action = action;
37
+ //# sourceMappingURL=platform-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-action.js","sourceRoot":"","sources":["../../../server/controllers/xilnex/platform-action.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AAEjC,6CAA4C;AAC5C,MAAM,YAAY,GAAG,YAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAA;AAC3D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,CAAA;AAE1C,SAAS,UAAU,CAAC,IAAI,EAAE,GAAG;IAC3B,IAAI,KAAK,GAAG,EAAE,CAAA;IACd,IAAI,EAAE,GAAG,YAAY,CAAA;IACrB,IAAI,IAAI,CAAA;IAER,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACrB,CAAC;IAED,IAAI,MAAM,GAAG,IAAI,CAAA;IACjB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACnB,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACxE,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAEM,MAAM,MAAM,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;IACvE,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC;QACxB,KAAK,EAAE,KAAK,CAAC,OAAO;QACpB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CAAA;IAEF,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,OAAO,CAAA;IAE/C,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAEjC,IAAI,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,QAAQ,CAAC,KAAK,CAAA;IACtB,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC,CAAA;AAjBY,QAAA,MAAM,UAiBlB","sourcesContent":["import { Xilnex } from './xilnex'\n\nimport { config } from '@things-factory/env'\nconst xilnexConfig = config.get('posIntegrationXilnex', {})\nconst { apiKey, apiSecret } = xilnexConfig\n\nfunction substitute(path, obj) {\n var props = []\n var re = /{([^}]+)}/g\n var text\n\n while ((text = re.exec(path))) {\n props.push(text[1])\n }\n\n var result = path\n props.forEach(prop => {\n let value = obj[prop.trim()]\n result = result.replace(`{${prop}}`, value === undefined ? '' : value)\n })\n\n return result\n}\n\nexport const action = async ({ store, method = 'get', path, request }) => {\n const client = new Xilnex({\n store: store.storeId,\n accessToken: store.accessToken,\n storeId: store.storeId\n })\n\n const { resource = {}, payload = {} } = request\n\n path = substitute(path, resource)\n\n var response = await client[method](path, payload)\n if (!response.ok) {\n throw response.error\n }\n\n return response.data\n}\n"]}
@@ -0,0 +1,13 @@
1
+ export type XilnexConfig = {
2
+ store: string;
3
+ accessToken?: string;
4
+ storeId: string;
5
+ };
6
+ export declare class Xilnex {
7
+ private config;
8
+ constructor(config: XilnexConfig);
9
+ get(path: string, data: any): Promise<any>;
10
+ post(path: string, data?: any): Promise<any>;
11
+ put(path: string, data?: any): Promise<any>;
12
+ delete(path: string, data?: any): Promise<any>;
13
+ }
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Xilnex = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
6
+ const debug_1 = tslib_1.__importDefault(require("debug"));
7
+ const debug = (0, debug_1.default)('things-factory:integration-pos:xilnex');
8
+ class Xilnex {
9
+ constructor(config) {
10
+ this.config = Object.assign({}, config);
11
+ }
12
+ async get(path, data) {
13
+ const { store, accessToken, storeId: appid } = this.config;
14
+ const qs = Object.entries(data)
15
+ .map(([k, v]) => `${k}=${encodeURIComponent(String(v))}`)
16
+ .join('&');
17
+ const endpoint = `https://api.xilnex.com/logic/v2${path}${qs ? '?' + qs : ''}`;
18
+ debug('endpoint', endpoint);
19
+ const response = await (0, node_fetch_1.default)(endpoint, {
20
+ headers: {
21
+ 'appid': appid,
22
+ 'token': accessToken,
23
+ 'auth': '5'
24
+ }
25
+ });
26
+ const result = await response.json();
27
+ debug('response result', result);
28
+ return result;
29
+ }
30
+ async post(path, data = {}) {
31
+ const { store, accessToken, storeId: appid } = this.config;
32
+ debug('data', data);
33
+ const jsondata = JSON.stringify(data);
34
+ const endpoint = `https://api.xilnex.com/logic/v2${path}`;
35
+ const response = await (0, node_fetch_1.default)(endpoint, {
36
+ method: 'post',
37
+ headers: {
38
+ 'appid': appid,
39
+ 'token': accessToken,
40
+ 'auth': '5',
41
+ 'Content-Type': 'application/json'
42
+ },
43
+ body: jsondata
44
+ });
45
+ const result = await response.json();
46
+ debug('response result', result);
47
+ return result;
48
+ }
49
+ async put(path, data = {}) {
50
+ const { store, accessToken, storeId: appid } = this.config;
51
+ debug('data', data);
52
+ const jsondata = JSON.stringify(data);
53
+ const endpoint = `https://api.xilnex.com/logic/v2${path}`;
54
+ const response = await (0, node_fetch_1.default)(endpoint, {
55
+ method: 'put',
56
+ headers: {
57
+ 'appid': appid,
58
+ 'token': accessToken,
59
+ 'auth': '5',
60
+ 'Content-Type': 'application/json'
61
+ },
62
+ body: jsondata
63
+ });
64
+ const result = await response.json();
65
+ debug('response result', result);
66
+ return result;
67
+ }
68
+ async delete(path, data = {}) {
69
+ const { store, accessToken, storeId: appid } = this.config;
70
+ debug('data', data);
71
+ const jsondata = JSON.stringify(data);
72
+ const endpoint = `https://api.xilnex.com/logic/v2${path}`;
73
+ const response = await (0, node_fetch_1.default)(endpoint, {
74
+ method: 'delete',
75
+ headers: {
76
+ 'appid': appid,
77
+ 'token': accessToken,
78
+ 'auth': '5',
79
+ 'Content-Type': 'application/json'
80
+ },
81
+ body: jsondata
82
+ });
83
+ const result = await response.json();
84
+ debug('response result', result);
85
+ return result;
86
+ }
87
+ }
88
+ exports.Xilnex = Xilnex;
89
+ //# sourceMappingURL=xilnex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xilnex.js","sourceRoot":"","sources":["../../../server/controllers/xilnex/xilnex.ts"],"names":[],"mappings":"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","sourcesContent":["import fetch from 'node-fetch'\nimport Debug from 'debug'\n\nconst debug = Debug('things-factory:integration-pos:xilnex')\n\nexport type XilnexConfig = {\n store: string\n accessToken?: string,\n storeId: string\n}\n\nexport class Xilnex {\n private config: XilnexConfig\n\n constructor(config: XilnexConfig) {\n this.config = {\n ...config\n }\n }\n\n async get(path: string, data: any) {\n const { store, accessToken, storeId: appid } = this.config\n\n const qs = Object.entries(data)\n .map(([k, v]) => `${k}=${encodeURIComponent(String(v))}`)\n .join('&')\n\n const endpoint = `https://api.xilnex.com/logic/v2${path}${qs ? '?' + qs : ''}`\n debug('endpoint', endpoint)\n\n const response = await fetch(endpoint, {\n headers: {\n 'appid': appid,\n 'token': accessToken,\n 'auth': '5'\n }\n })\n\n const result = await response.json()\n debug('response result', result)\n\n return result\n }\n\n async post(path: string, data: any = {}) {\n const { store, accessToken, storeId: appid } = this.config\n\n debug('data', data)\n\n const jsondata = JSON.stringify(data)\n\n const endpoint = `https://api.xilnex.com/logic/v2${path}`\n\n const response = await fetch(endpoint, {\n method: 'post',\n headers: {\n 'appid': appid,\n 'token': accessToken,\n 'auth': '5',\n 'Content-Type': 'application/json'\n },\n body: jsondata\n })\n\n const result = await response.json()\n debug('response result', result)\n\n return result\n }\n\n\n async put(path: string, data: any = {}) {\n const { store, accessToken, storeId: appid } = this.config\n\n debug('data', data)\n\n const jsondata = JSON.stringify(data)\n\n const endpoint = `https://api.xilnex.com/logic/v2${path}`\n\n const response = await fetch(endpoint, {\n method: 'put',\n headers: {\n 'appid': appid,\n 'token': accessToken,\n 'auth': '5',\n 'Content-Type': 'application/json'\n },\n body: jsondata\n })\n\n const result = await response.json()\n debug('response result', result)\n\n return result\n }\n\n async delete(path: string, data: any = {}) {\n const { store, accessToken, storeId: appid } = this.config\n\n debug('data', data)\n\n const jsondata = JSON.stringify(data)\n\n const endpoint = `https://api.xilnex.com/logic/v2${path}`\n\n const response = await fetch(endpoint, {\n method: 'delete',\n headers: {\n 'appid': appid,\n 'token': accessToken,\n 'auth': '5',\n 'Content-Type': 'application/json'\n },\n body: jsondata\n })\n\n const result = await response.json()\n debug('response result', result)\n\n return result\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ import './pos-connector';
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("./pos-connector");
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/engine/connector/index.ts"],"names":[],"mappings":";;AAAA,2BAAwB","sourcesContent":["import './pos-connector'\n"]}
@@ -0,0 +1,8 @@
1
+ import { Connector, Connection } from '@things-factory/integration-base';
2
+ export declare class POSConnector implements Connector {
3
+ ready(connectionConfigs: any): Promise<void>;
4
+ connect(connection: any): Promise<void>;
5
+ disconnect(connection: Connection): Promise<void>;
6
+ get parameterSpec(): any[];
7
+ get taskPrefixes(): string[];
8
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POSConnector = void 0;
4
+ const integration_base_1 = require("@things-factory/integration-base");
5
+ class POSConnector {
6
+ async ready(connectionConfigs) {
7
+ await Promise.all(connectionConfigs.map(this.connect));
8
+ integration_base_1.ConnectionManager.logger.info('pos-connector connections are ready');
9
+ }
10
+ async connect(connection) {
11
+ const { domain, name, endpoint } = connection;
12
+ integration_base_1.ConnectionManager.addConnectionInstance(connection, Object.assign({}, connection));
13
+ integration_base_1.ConnectionManager.logger.info(`pos-connector connection(${name}:${connection.endpoint}) is connected`);
14
+ }
15
+ async disconnect(connection) {
16
+ integration_base_1.ConnectionManager.removeConnectionInstance(connection);
17
+ integration_base_1.ConnectionManager.logger.info(`pos-connector connection(${connection.name}) is disconnected`);
18
+ }
19
+ get parameterSpec() {
20
+ return [];
21
+ }
22
+ get taskPrefixes() {
23
+ return ['pos'];
24
+ }
25
+ }
26
+ exports.POSConnector = POSConnector;
27
+ integration_base_1.ConnectionManager.registerConnector('pos-connector', new POSConnector());
28
+ //# sourceMappingURL=pos-connector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pos-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/pos-connector.ts"],"names":[],"mappings":";;;AAAA,uEAA2F;AAE3F,MAAa,YAAY;IACvB,KAAK,CAAC,KAAK,CAAC,iBAAiB;QAC3B,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QAEtD,oCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACtE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAU;QACtB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAA;QAE7C,oCAAiB,CAAC,qBAAqB,CAAC,UAAU,oBAAO,UAAU,EAAG,CAAA;QAEtE,oCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,IAAI,IAAI,UAAU,CAAC,QAAQ,gBAAgB,CAAC,CAAA;IACxG,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAsB;QACrC,oCAAiB,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAA;QAEtD,oCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,UAAU,CAAC,IAAI,mBAAmB,CAAC,CAAA;IAC/F,CAAC;IAED,IAAI,aAAa;QACf,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,YAAY;QACd,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC;CACF;AA5BD,oCA4BC;AAED,oCAAiB,CAAC,iBAAiB,CAAC,eAAe,EAAE,IAAI,YAAY,EAAE,CAAC,CAAA","sourcesContent":["import { ConnectionManager, Connector, Connection } from '@things-factory/integration-base'\n\nexport class POSConnector implements Connector {\n async ready(connectionConfigs) {\n await Promise.all(connectionConfigs.map(this.connect))\n\n ConnectionManager.logger.info('pos-connector connections are ready')\n }\n\n async connect(connection) {\n const { domain, name, endpoint } = connection\n\n ConnectionManager.addConnectionInstance(connection, { ...connection })\n\n ConnectionManager.logger.info(`pos-connector connection(${name}:${connection.endpoint}) is connected`)\n }\n\n async disconnect(connection: Connection) {\n ConnectionManager.removeConnectionInstance(connection)\n\n ConnectionManager.logger.info(`pos-connector connection(${connection.name}) is disconnected`)\n }\n\n get parameterSpec() {\n return []\n }\n\n get taskPrefixes() {\n return ['pos']\n }\n}\n\nConnectionManager.registerConnector('pos-connector', new POSConnector())\n"]}
@@ -0,0 +1,2 @@
1
+ import './connector/index.js';
2
+ import './task/index.js';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("./connector/index.js");
4
+ require("./task/index.js");
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/engine/index.ts"],"names":[],"mappings":";;AAAA,gCAA6B;AAC7B,2BAAwB","sourcesContent":["import './connector/index.js'\nimport './task/index.js'\n"]}
@@ -0,0 +1 @@
1
+ import './pos-api';
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("./pos-api");
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/engine/task/index.ts"],"names":[],"mappings":";;AAAA,qBAAkB","sourcesContent":["import './pos-api'\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const integration_base_1 = require("@things-factory/integration-base");
4
+ const shell_1 = require("@things-factory/shell");
5
+ const utils_1 = require("@things-factory/utils");
6
+ const pos_api_1 = require("../../controllers/pos-api");
7
+ const entities_1 = require("../../entities");
8
+ async function POSAPI(step, { logger, data, domain }) {
9
+ var { connection, params: { store: name, api, accessor } } = step;
10
+ var client = integration_base_1.ConnectionManager.getConnectionInstanceByName(domain, connection) || {};
11
+ if (!client) {
12
+ throw new Error(`no connection : ${connection}`);
13
+ }
14
+ if (!api) {
15
+ throw new Error(`no api defined`);
16
+ }
17
+ const repository = (0, shell_1.getRepository)(entities_1.PosStore);
18
+ const store = await repository.findOne({
19
+ where: { domain: { id: domain.id }, name }
20
+ });
21
+ if (!store) {
22
+ throw new Error(`no store defined`);
23
+ }
24
+ var result = await pos_api_1.POSAPI[api](store, accessor ? (0, utils_1.access)(accessor, data) : {});
25
+ return {
26
+ data: result
27
+ };
28
+ }
29
+ POSAPI.parameterSpec = [
30
+ {
31
+ type: 'entity-selector',
32
+ name: 'store',
33
+ label: 'store',
34
+ property: {
35
+ queryName: 'stores',
36
+ valueKey: 'name'
37
+ }
38
+ },
39
+ {
40
+ type: 'select',
41
+ name: 'api',
42
+ label: 'api',
43
+ property: {
44
+ options: ['', 'getPOSInvoices']
45
+ }
46
+ },
47
+ {
48
+ type: 'string',
49
+ name: 'accessor',
50
+ label: 'accessor'
51
+ }
52
+ ];
53
+ integration_base_1.TaskRegistry.registerTaskHandler('pos-api', POSAPI);
54
+ //# sourceMappingURL=pos-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pos-api.js","sourceRoot":"","sources":["../../../server/engine/task/pos-api.ts"],"names":[],"mappings":";;AAAA,uEAAkF;AAClF,iDAAqD;AACrD,iDAA8C;AAE9C,uDAAyD;AACzD,6CAAyC;AAEzC,KAAK,UAAU,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAClD,IAAI,EACF,UAAU,EACV,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,EACvC,GAAG,IAAI,CAAA;IAER,IAAI,MAAM,GAAG,oCAAiB,CAAC,2BAA2B,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAA;IACpF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAA;IAC1C,MAAM,KAAK,GAAa,MAAM,UAAU,CAAC,OAAO,CAAC;QAC/C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;KAC3C,CAAC,CAAA;IAEF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IAED,IAAI,MAAM,GAAG,MAAM,gBAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAE1E,OAAO;QACL,IAAI,EAAE,MAAM;KACb,CAAA;AACH,CAAC;AAED,MAAM,CAAC,aAAa,GAAG;IACrB;QACE,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE;YACR,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,MAAM;SACjB;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,EAAE,EAAE,gBAAgB,CAAC;SAChC;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;CACF,CAAA;AAED,+BAAY,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA","sourcesContent":["import { ConnectionManager, TaskRegistry } from '@things-factory/integration-base'\nimport { getRepository } from '@things-factory/shell'\nimport { access } from '@things-factory/utils'\n\nimport { POSAPI as API } from '../../controllers/pos-api'\nimport { PosStore } from '../../entities'\n\nasync function POSAPI(step, { logger, data, domain }) {\n var {\n connection,\n params: { store: name, api, accessor }\n } = step\n\n var client = ConnectionManager.getConnectionInstanceByName(domain, connection) || {}\n if (!client) {\n throw new Error(`no connection : ${connection}`)\n }\n\n if (!api) {\n throw new Error(`no api defined`)\n }\n\n const repository = getRepository(PosStore)\n const store: PosStore = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n if (!store) {\n throw new Error(`no store defined`)\n }\n\n var result = await API[api](store, accessor ? access(accessor, data) : {})\n\n return {\n data: result\n }\n}\n\nPOSAPI.parameterSpec = [\n {\n type: 'entity-selector',\n name: 'store',\n label: 'store',\n property: {\n queryName: 'stores',\n valueKey: 'name'\n }\n },\n {\n type: 'select',\n name: 'api',\n label: 'api',\n property: {\n options: ['', 'getPOSInvoices']\n }\n },\n {\n type: 'string',\n name: 'accessor',\n label: 'accessor'\n }\n]\n\nTaskRegistry.registerTaskHandler('pos-api', POSAPI)\n"]}
@@ -0,0 +1,3 @@
1
+ import { PosStore } from './pos-store';
2
+ export declare const entities: (typeof PosStore)[];
3
+ export { PosStore };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PosStore = exports.entities = void 0;
4
+ const pos_store_1 = require("./pos-store");
5
+ Object.defineProperty(exports, "PosStore", { enumerable: true, get: function () { return pos_store_1.PosStore; } });
6
+ exports.entities = [pos_store_1.PosStore];
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/entities/index.ts"],"names":[],"mappings":";;;AAAA,2CAAsC;AAI7B,yFAJA,oBAAQ,OAIA;AAFJ,QAAA,QAAQ,GAAG,CAAC,oBAAQ,CAAC,CAAA","sourcesContent":["import { PosStore } from './pos-store'\n\nexport const entities = [PosStore]\n\nexport { PosStore }\n"]}
@@ -0,0 +1,20 @@
1
+ import { User } from '@things-factory/auth-base';
2
+ import { Domain } from '@things-factory/shell';
3
+ export declare class PosStore {
4
+ id: string;
5
+ domain: Domain;
6
+ platform: string;
7
+ storeId: string;
8
+ countryCode: string;
9
+ status: string;
10
+ name: string;
11
+ accessInfo: string;
12
+ accessToken: string;
13
+ refreshToken: string;
14
+ store: string;
15
+ description: string;
16
+ createdAt: Date;
17
+ updatedAt: Date;
18
+ creator: User;
19
+ updater: User;
20
+ }