keez-invoicing 1.1.5

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 (111) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +366 -0
  3. package/dist/coverage/lcov-report/block-navigation.js +71 -0
  4. package/dist/coverage/lcov-report/prettify.js +478 -0
  5. package/dist/coverage/lcov-report/sorter.js +177 -0
  6. package/dist/eslint.config.js +56 -0
  7. package/dist/jest.config.cjs +13 -0
  8. package/dist/jest.config.js +13 -0
  9. package/dist/src/api/__tests__/index.test.js +52 -0
  10. package/dist/src/api/authorise.js +48 -0
  11. package/dist/src/api/invoices/cancel.js +33 -0
  12. package/dist/src/api/invoices/create.js +97 -0
  13. package/dist/src/api/invoices/delete.js +33 -0
  14. package/dist/src/api/invoices/downloadPdf.js +31 -0
  15. package/dist/src/api/invoices/getAll.js +84 -0
  16. package/dist/src/api/invoices/sendMail.js +59 -0
  17. package/dist/src/api/invoices/submitEfactura.js +34 -0
  18. package/dist/src/api/invoices/update.js +61 -0
  19. package/dist/src/api/invoices/validate.js +39 -0
  20. package/dist/src/api/invoices/view.js +93 -0
  21. package/dist/src/api/items/create.js +42 -0
  22. package/dist/src/api/items/getAll.js +74 -0
  23. package/dist/src/api/items/getById.js +46 -0
  24. package/dist/src/api/items/index.js +14 -0
  25. package/dist/src/api/items/patch.js +49 -0
  26. package/dist/src/api/items/update.js +41 -0
  27. package/dist/src/config/constants.js +23 -0
  28. package/dist/src/config/constructorParam.js +3 -0
  29. package/dist/src/config/measureUnit.js +22 -0
  30. package/dist/src/config/paymentType.js +17 -0
  31. package/dist/src/config/paymentType.js.js +16 -0
  32. package/dist/src/dto/allInvoicesResponse.js +3 -0
  33. package/dist/src/dto/authResponse.js +3 -0
  34. package/dist/src/dto/common/index.js +3 -0
  35. package/dist/src/dto/common/paginationParams.js +3 -0
  36. package/dist/src/dto/createInvoiceRequest.js +3 -0
  37. package/dist/src/dto/invoiceResponse.js +3 -0
  38. package/dist/src/dto/invoices/index.js +3 -0
  39. package/dist/src/dto/invoices/invoiceFilterParams.js +3 -0
  40. package/dist/src/dto/invoices/invoiceRequestV2.js +3 -0
  41. package/dist/src/dto/invoices/sendInvoiceParams.js +3 -0
  42. package/dist/src/dto/items/allItemsResponse.js +3 -0
  43. package/dist/src/dto/items/index.js +3 -0
  44. package/dist/src/dto/items/itemRequest.js +3 -0
  45. package/dist/src/dto/items/itemResponse.js +3 -0
  46. package/dist/src/errors/KeezError.js +27 -0
  47. package/dist/src/helpers/logger.js +15 -0
  48. package/dist/src/index.js +15 -0
  49. package/dist/src/keezApi.js +283 -0
  50. package/dist/tests/additional-coverage.test.js +351 -0
  51. package/dist/tests/edge-cases.test.js +353 -0
  52. package/dist/tests/error-handling.test.js +224 -0
  53. package/dist/tests/filter-params.test.js +267 -0
  54. package/dist/tests/index.test.js +493 -0
  55. package/dist/tests/invoices-extended.test.js +168 -0
  56. package/dist/tests/items.test.js +142 -0
  57. package/dist/types/coverage/lcov-report/block-navigation.d.ts +1 -0
  58. package/dist/types/coverage/lcov-report/prettify.d.ts +0 -0
  59. package/dist/types/coverage/lcov-report/sorter.d.ts +1 -0
  60. package/dist/types/eslint.config.d.ts +2 -0
  61. package/dist/types/jest.config.d.cts +9 -0
  62. package/dist/types/jest.config.d.ts +9 -0
  63. package/dist/types/src/api/__tests__/index.test.d.ts +1 -0
  64. package/dist/types/src/api/authorise.d.ts +18 -0
  65. package/dist/types/src/api/invoices/cancel.d.ts +9 -0
  66. package/dist/types/src/api/invoices/create.d.ts +22 -0
  67. package/dist/types/src/api/invoices/delete.d.ts +9 -0
  68. package/dist/types/src/api/invoices/downloadPdf.d.ts +8 -0
  69. package/dist/types/src/api/invoices/getAll.d.ts +22 -0
  70. package/dist/types/src/api/invoices/sendMail.d.ts +24 -0
  71. package/dist/types/src/api/invoices/submitEfactura.d.ts +9 -0
  72. package/dist/types/src/api/invoices/update.d.ts +11 -0
  73. package/dist/types/src/api/invoices/validate.d.ts +21 -0
  74. package/dist/types/src/api/invoices/view.d.ts +22 -0
  75. package/dist/types/src/api/items/create.d.ts +10 -0
  76. package/dist/types/src/api/items/getAll.d.ts +10 -0
  77. package/dist/types/src/api/items/getById.d.ts +10 -0
  78. package/dist/types/src/api/items/index.d.ts +5 -0
  79. package/dist/types/src/api/items/patch.d.ts +11 -0
  80. package/dist/types/src/api/items/update.d.ts +11 -0
  81. package/dist/types/src/config/constants.d.ts +13 -0
  82. package/dist/types/src/config/constructorParam.d.ts +6 -0
  83. package/dist/types/src/config/measureUnit.d.ts +17 -0
  84. package/dist/types/src/config/paymentType.d.ts +12 -0
  85. package/dist/types/src/config/paymentType.js.d.ts +11 -0
  86. package/dist/types/src/dto/allInvoicesResponse.d.ts +21 -0
  87. package/dist/types/src/dto/authResponse.d.ts +7 -0
  88. package/dist/types/src/dto/common/index.d.ts +1 -0
  89. package/dist/types/src/dto/common/paginationParams.d.ts +4 -0
  90. package/dist/types/src/dto/createInvoiceRequest.d.ts +34 -0
  91. package/dist/types/src/dto/invoiceResponse.d.ts +48 -0
  92. package/dist/types/src/dto/invoices/index.d.ts +3 -0
  93. package/dist/types/src/dto/invoices/invoiceFilterParams.d.ts +8 -0
  94. package/dist/types/src/dto/invoices/invoiceRequestV2.d.ts +23 -0
  95. package/dist/types/src/dto/invoices/sendInvoiceParams.d.ts +5 -0
  96. package/dist/types/src/dto/items/allItemsResponse.d.ts +13 -0
  97. package/dist/types/src/dto/items/index.d.ts +3 -0
  98. package/dist/types/src/dto/items/itemRequest.d.ts +34 -0
  99. package/dist/types/src/dto/items/itemResponse.d.ts +15 -0
  100. package/dist/types/src/errors/KeezError.d.ts +11 -0
  101. package/dist/types/src/helpers/logger.d.ts +2 -0
  102. package/dist/types/src/index.d.ts +11 -0
  103. package/dist/types/src/keezApi.d.ts +114 -0
  104. package/dist/types/tests/additional-coverage.test.d.ts +1 -0
  105. package/dist/types/tests/edge-cases.test.d.ts +1 -0
  106. package/dist/types/tests/error-handling.test.d.ts +1 -0
  107. package/dist/types/tests/filter-params.test.d.ts +1 -0
  108. package/dist/types/tests/index.test.d.ts +1 -0
  109. package/dist/types/tests/invoices-extended.test.d.ts +1 -0
  110. package/dist/types/tests/items.test.d.ts +1 -0
  111. package/package.json +66 -0
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.apiDownloadInvoicePdf = apiDownloadInvoicePdf;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const logger_1 = require("../../helpers/logger");
9
+ const KeezError_1 = require("../../errors/KeezError");
10
+ const constants_1 = require("../../config/constants");
11
+ const keezLogger = logger_1.logger.child({ _library: 'KeezWrapper', _method: 'Invoices' });
12
+ async function apiDownloadInvoicePdf(params) {
13
+ const url = `${params.baseDomain}/api/v1.0/public-api/invoices/${params.invoiceId}/pdf`;
14
+ try {
15
+ const response = await axios_1.default.get(url, {
16
+ headers: {
17
+ Authorization: `Bearer ${params.bearerToken}`,
18
+ },
19
+ responseType: 'arraybuffer',
20
+ timeout: constants_1.DOWNLOAD_REQUEST_TIMEOUT_MS,
21
+ });
22
+ return Buffer.from(response.data);
23
+ }
24
+ catch (error) {
25
+ const axiosError = error;
26
+ const errorMessage = axiosError.response?.data || axiosError.message;
27
+ keezLogger.error(`Error encountered while downloading invoice PDF (${params.invoiceId}): ${JSON.stringify(errorMessage)}`);
28
+ throw new KeezError_1.KeezApiError(`Failed to download invoice PDF: ${JSON.stringify(errorMessage)}`, axiosError.response?.status, error);
29
+ }
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWRQZGYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL2ludm9pY2VzL2Rvd25sb2FkUGRmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBY0Esc0RBeUJDO0FBdkNELGtEQUEwQztBQUMxQyw2Q0FBMEM7QUFDMUMsa0RBQWtEO0FBQ2xELGtEQUFpRTtBQUVqRSxNQUFNLFVBQVUsR0FBRyxlQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztBQVMzRSxLQUFLLFVBQVUscUJBQXFCLENBQUMsTUFBeUI7SUFDakUsTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxpQ0FBaUMsTUFBTSxDQUFDLFNBQVMsTUFBTSxDQUFDO0lBRXhGLElBQUksQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsT0FBTyxFQUFFO2dCQUNMLGFBQWEsRUFBRSxVQUFVLE1BQU0sQ0FBQyxXQUFXLEVBQUU7YUFDaEQ7WUFDRCxZQUFZLEVBQUUsYUFBYTtZQUMzQixPQUFPLEVBQUUsdUNBQTJCO1NBQ3ZDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDYixNQUFNLFVBQVUsR0FBRyxLQUFtQixDQUFDO1FBQ3ZDLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDckUsVUFBVSxDQUFDLEtBQUssQ0FDWixvREFBb0QsTUFBTSxDQUFDLFNBQVMsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQzNHLENBQUM7UUFDRixNQUFNLElBQUksd0JBQVksQ0FDbEIsbUNBQW1DLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFDakUsVUFBVSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQzNCLEtBQUssQ0FDUixDQUFDO0lBQ04sQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MsIHsgQXhpb3NFcnJvciB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJ0AvaGVscGVycy9sb2dnZXInO1xuaW1wb3J0IHsgS2VlekFwaUVycm9yIH0gZnJvbSAnQC9lcnJvcnMvS2VlekVycm9yJztcbmltcG9ydCB7IERPV05MT0FEX1JFUVVFU1RfVElNRU9VVF9NUyB9IGZyb20gJ0AvY29uZmlnL2NvbnN0YW50cyc7XG5cbmNvbnN0IGtlZXpMb2dnZXIgPSBsb2dnZXIuY2hpbGQoeyBfbGlicmFyeTogJ0tlZXpXcmFwcGVyJywgX21ldGhvZDogJ0ludm9pY2VzJyB9KTtcblxuaW50ZXJmYWNlIERvd25sb2FkUGRmUGFyYW1zIHtcbiAgICByZWFkb25seSBiYXNlRG9tYWluOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYXBwSWQ6IHN0cmluZztcbiAgICByZWFkb25seSBiZWFyZXJUb2tlbjogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGludm9pY2VJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBpRG93bmxvYWRJbnZvaWNlUGRmKHBhcmFtczogRG93bmxvYWRQZGZQYXJhbXMpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICAgIGNvbnN0IHVybCA9IGAke3BhcmFtcy5iYXNlRG9tYWlufS9hcGkvdjEuMC9wdWJsaWMtYXBpL2ludm9pY2VzLyR7cGFyYW1zLmludm9pY2VJZH0vcGRmYDtcblxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MuZ2V0KHVybCwge1xuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtwYXJhbXMuYmVhcmVyVG9rZW59YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicsXG4gICAgICAgICAgICB0aW1lb3V0OiBET1dOTE9BRF9SRVFVRVNUX1RJTUVPVVRfTVMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBCdWZmZXIuZnJvbShyZXNwb25zZS5kYXRhKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zdCBheGlvc0Vycm9yID0gZXJyb3IgYXMgQXhpb3NFcnJvcjtcbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYXhpb3NFcnJvci5yZXNwb25zZT8uZGF0YSB8fCBheGlvc0Vycm9yLm1lc3NhZ2U7XG4gICAgICAgIGtlZXpMb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICBgRXJyb3IgZW5jb3VudGVyZWQgd2hpbGUgZG93bmxvYWRpbmcgaW52b2ljZSBQREYgKCR7cGFyYW1zLmludm9pY2VJZH0pOiAke0pTT04uc3RyaW5naWZ5KGVycm9yTWVzc2FnZSl9YFxuICAgICAgICApO1xuICAgICAgICB0aHJvdyBuZXcgS2VlekFwaUVycm9yKFxuICAgICAgICAgICAgYEZhaWxlZCB0byBkb3dubG9hZCBpbnZvaWNlIFBERjogJHtKU09OLnN0cmluZ2lmeShlcnJvck1lc3NhZ2UpfWAsXG4gICAgICAgICAgICBheGlvc0Vycm9yLnJlc3BvbnNlPy5zdGF0dXMsXG4gICAgICAgICAgICBlcnJvclxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.apiGetAllInvoices = apiGetAllInvoices;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const logger_1 = require("../../helpers/logger");
9
+ const KeezError_1 = require("../../errors/KeezError");
10
+ const constants_1 = require("../../config/constants");
11
+ const keezLogger = logger_1.logger.child({ _library: 'KeezWrapper', _method: 'Invoices' });
12
+ /**
13
+ * Get all invoices
14
+ * @param params - As defined in the interface
15
+ */
16
+ async function apiGetAllInvoices(params) {
17
+ let url = `${params.baseDomain}/api/v1.0/public-api/${params.appClientId}/invoices`;
18
+ if (params.filterParams) {
19
+ const queryParams = new URLSearchParams();
20
+ if (params.filterParams.offset !== undefined) {
21
+ queryParams.append('offset', params.filterParams.offset.toString());
22
+ }
23
+ if (params.filterParams.count !== undefined) {
24
+ queryParams.append('count', params.filterParams.count.toString());
25
+ }
26
+ if (params.filterParams.status) {
27
+ queryParams.append('status', params.filterParams.status);
28
+ }
29
+ if (params.filterParams.fromDate !== undefined) {
30
+ queryParams.append('fromDate', params.filterParams.fromDate.toString());
31
+ }
32
+ if (params.filterParams.toDate !== undefined) {
33
+ queryParams.append('toDate', params.filterParams.toDate.toString());
34
+ }
35
+ if (params.filterParams.series) {
36
+ queryParams.append('series', params.filterParams.series);
37
+ }
38
+ if (params.filterParams.partnerName) {
39
+ queryParams.append('partnerName', params.filterParams.partnerName);
40
+ }
41
+ const queryString = queryParams.toString();
42
+ if (queryString) {
43
+ url += `?${queryString}`;
44
+ }
45
+ }
46
+ try {
47
+ const response = await axios_1.default.get(url, {
48
+ headers: {
49
+ Authorization: `Bearer ${params.bearerToken}`,
50
+ },
51
+ timeout: constants_1.HTTP_REQUEST_TIMEOUT_MS,
52
+ });
53
+ const responseObject = response.data;
54
+ const allInvoices = responseObject.data.map(shortInvoice => ({
55
+ externalId: shortInvoice.externalId,
56
+ series: shortInvoice.series,
57
+ number: shortInvoice.number,
58
+ documentDate: shortInvoice.documentDate,
59
+ dueDate: shortInvoice.dueDate,
60
+ status: shortInvoice.status,
61
+ clientName: shortInvoice.clientName,
62
+ partnerName: shortInvoice.partnerName,
63
+ currencyCode: shortInvoice.currencyCode,
64
+ referenceCurrencyCode: shortInvoice.referenceCurrencyCode,
65
+ netAmount: shortInvoice.netAmount,
66
+ vatAmount: shortInvoice.vatAmount,
67
+ grossAmount: shortInvoice.grossAmount,
68
+ }));
69
+ const result = {
70
+ first: responseObject.first,
71
+ last: responseObject.last,
72
+ recordsCount: responseObject.recordsCount,
73
+ data: allInvoices,
74
+ };
75
+ return result;
76
+ }
77
+ catch (error) {
78
+ const axiosError = error;
79
+ const errorMessage = axiosError.response?.data || axiosError.message;
80
+ keezLogger.error(`Error encountered while getting all invoices: ${JSON.stringify(errorMessage)}`);
81
+ throw new KeezError_1.KeezApiError(`Failed to get all invoices: ${JSON.stringify(errorMessage)}`, axiosError.response?.status, error);
82
+ }
83
+ }
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS9pbnZvaWNlcy9nZXRBbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFtREEsOENBMEVDO0FBN0hELGtEQUEwQztBQUMxQyw2Q0FBMEM7QUFFMUMsa0RBQWtEO0FBRWxELGtEQUE2RDtBQUU3RCxNQUFNLFVBQVUsR0FBRyxlQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztBQXdDbEY7OztHQUdHO0FBQ0ksS0FBSyxVQUFVLGlCQUFpQixDQUFDLE1BQTRCO0lBQ2hFLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsd0JBQXdCLE1BQU0sQ0FBQyxXQUFXLFdBQVcsQ0FBQztJQUVwRixJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzFDLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDM0MsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMxQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENB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QUM7UUFDbEcsTUFBTSxJQUFJLHdCQUFZLENBQ2xCLCtCQUErQixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQzdELFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUMzQixLQUFLLENBQ1IsQ0FBQztJQUNOLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zLCB7IEF4aW9zRXJyb3IgfSBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICdAL2hlbHBlcnMvbG9nZ2VyJztcbmltcG9ydCB7IEFsbEludm9pY2VzUmVzcG9uc2UsIFNob3J0SW52b2ljZVJlc3BvbnNlIH0gZnJvbSAnQC9kdG8vYWxsSW52b2ljZXNSZXNwb25zZSc7XG5pbXBvcnQgeyBLZWV6QXBpRXJyb3IgfSBmcm9tICdAL2Vycm9ycy9LZWV6RXJyb3InO1xuaW1wb3J0IHsgSW52b2ljZUZpbHRlclBhcmFtcyB9IGZyb20gJ0AvZHRvL2ludm9pY2VzJztcbmltcG9ydCB7IEhUVFBfUkVRVUVTVF9USU1FT1VUX01TIH0gZnJvbSAnQC9jb25maWcvY29uc3RhbnRzJztcblxuY29uc3Qga2VlekxvZ2dlciA9IGxvZ2dlci5jaGlsZCh7IF9saWJyYXJ5OiAnS2VleldyYXBwZXInLCBfbWV0aG9kOiAnSW52b2ljZXMnIH0pO1xuXG4vKipcbiAqIGJhc2VEb21haW4gLSBUaGUgYmFzZSBkb21haW4gZm9yIHRoZSBBUElcbiAqIGFwcElkIC0gVGhlIGFwcGxpY2F0aW9uIElEXG4gKiBhcHBDbGllbnRJZCAtIFRoZSBhcHBsaWNhdGlvbiBjbGllbnQgSURcbiAqIGJlYXJlclRva2VuIC0gVGhlIGJlYXJlciB0b2tlbiBvYnRhaW5lZCBhdCB0aGUgYXV0aGVudGljYXRpb24gc3RhZ2VcbiAqIGZpbHRlclBhcmFtcyAtIE9wdGlvbmFsIGZpbHRlciBwYXJhbWV0ZXJzXG4gKi9cbmludGVyZmFjZSBHZXRBbGxJbnZvaWNlc1BhcmFtcyB7XG4gICAgcmVhZG9ubHkgYmFzZURvbWFpbjogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGFwcElkOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYXBwQ2xpZW50SWQ6IHN0cmluZztcbiAgICByZWFkb25seSBiZWFyZXJUb2tlbjogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGZpbHRlclBhcmFtcz86IEludm9pY2VGaWx0ZXJQYXJhbXM7XG59XG5cbmludGVyZmFjZSBBcGlTaG9ydEludm9pY2Uge1xuICAgIGV4dGVybmFsSWQ6IHN0cmluZztcbiAgICBzZXJpZXM6IHN0cmluZztcbiAgICBudW1iZXI6IG51bWJlcjtcbiAgICBkb2N1bWVudERhdGU6IG51bWJlcjtcbiAgICBkdWVEYXRlOiBudW1iZXI7XG4gICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgY2xpZW50TmFtZTogc3RyaW5nO1xuICAgIHBhcnRuZXJOYW1lOiBzdHJpbmc7XG4gICAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XG4gICAgcmVmZXJlbmNlQ3VycmVuY3lDb2RlOiBzdHJpbmc7XG4gICAgbmV0QW1vdW50OiBudW1iZXI7XG4gICAgdmF0QW1vdW50OiBudW1iZXI7XG4gICAgZ3Jvc3NBbW91bnQ6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIEFwaUFsbEludm9pY2VzUmVzcG9uc2Uge1xuICAgIGZpcnN0OiBudW1iZXI7XG4gICAgbGFzdDogbnVtYmVyO1xuICAgIHJlY29yZHNDb3VudDogbnVtYmVyO1xuICAgIGRhdGE6IEFwaVNob3J0SW52b2ljZVtdO1xufVxuXG4vKipcbiAqIEdldCBhbGwgaW52b2ljZXNcbiAqIEBwYXJhbSBwYXJhbXMgLSBBcyBkZWZpbmVkIGluIHRoZSBpbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwaUdldEFsbEludm9pY2VzKHBhcmFtczogR2V0QWxsSW52b2ljZXNQYXJhbXMpOiBQcm9taXNlPEFsbEludm9pY2VzUmVzcG9uc2U+IHtcbiAgICBsZXQgdXJsID0gYCR7cGFyYW1zLmJhc2VEb21haW59L2FwaS92MS4wL3B1YmxpYy1hcGkvJHtwYXJhbXMuYXBwQ2xpZW50SWR9L2ludm9pY2VzYDtcblxuICAgIGlmIChwYXJhbXMuZmlsdGVyUGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgICAgICBpZiAocGFyYW1zLmZpbHRlclBhcmFtcy5vZmZzZXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdvZmZzZXQnLCBwYXJhbXMuZmlsdGVyUGFyYW1zLm9mZnNldC50b1N0cmluZygpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFyYW1zLmZpbHRlclBhcmFtcy5jb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ2NvdW50JywgcGFyYW1zLmZpbHRlclBhcmFtcy5jb3VudC50b1N0cmluZygpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFyYW1zLmZpbHRlclBhcmFtcy5zdGF0dXMpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnc3RhdHVzJywgcGFyYW1zLmZpbHRlclBhcmFtcy5zdGF0dXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJhbXMuZmlsdGVyUGFyYW1zLmZyb21EYXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgnZnJvbURhdGUnLCBwYXJhbXMuZmlsdGVyUGFyYW1zLmZyb21EYXRlLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJhbXMuZmlsdGVyUGFyYW1zLnRvRGF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtcy5hcHBlbmQoJ3RvRGF0ZScsIHBhcmFtcy5maWx0ZXJQYXJhbXMudG9EYXRlLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJhbXMuZmlsdGVyUGFyYW1zLnNlcmllcykge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXMuYXBwZW5kKCdzZXJpZXMnLCBwYXJhbXMuZmlsdGVyUGFyYW1zLnNlcmllcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcmFtcy5maWx0ZXJQYXJhbXMucGFydG5lck5hbWUpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLmFwcGVuZCgncGFydG5lck5hbWUnLCBwYXJhbXMuZmlsdGVyUGFyYW1zLnBhcnRuZXJOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWVyeVN0cmluZyA9IHF1ZXJ5UGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmIChxdWVyeVN0cmluZykge1xuICAgICAgICAgICAgdXJsICs9IGA/JHtxdWVyeVN0cmluZ31gO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5nZXQ8QXBpQWxsSW52b2ljZXNSZXNwb25zZT4odXJsLCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3BhcmFtcy5iZWFyZXJUb2tlbn1gLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRpbWVvdXQ6IEhUVFBfUkVRVUVTVF9USU1FT1VUX01TLFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByZXNwb25zZU9iamVjdCA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIGNvbnN0IGFsbEludm9pY2VzOiBTaG9ydEludm9pY2VSZXNwb25zZVtdID0gcmVzcG9uc2VPYmplY3QuZGF0YS5tYXAoc2hvcnRJbnZvaWNlID0+ICh7XG4gICAgICAgICAgICBleHRlcm5hbElkOiBzaG9ydEludm9pY2UuZXh0ZXJuYWxJZCxcbiAgICAgICAgICAgIHNlcmllczogc2hvcnRJbnZvaWNlLnNlcmllcyxcbiAgICAgICAgICAgIG51bWJlcjogc2hvcnRJbnZvaWNlLm51bWJlcixcbiAgICAgICAgICAgIGRvY3VtZW50RGF0ZTogc2hvcnRJbnZvaWNlLmRvY3VtZW50RGF0ZSxcbiAgICAgICAgICAgIGR1ZURhdGU6IHNob3J0SW52b2ljZS5kdWVEYXRlLFxuICAgICAgICAgICAgc3RhdHVzOiBzaG9ydEludm9pY2Uuc3RhdHVzLFxuICAgICAgICAgICAgY2xpZW50TmFtZTogc2hvcnRJbnZvaWNlLmNsaWVudE5hbWUsXG4gICAgICAgICAgICBwYXJ0bmVyTmFtZTogc2hvcnRJbnZvaWNlLnBhcnRuZXJOYW1lLFxuICAgICAgICAgICAgY3VycmVuY3lDb2RlOiBzaG9ydEludm9pY2UuY3VycmVuY3lDb2RlLFxuICAgICAgICAgICAgcmVmZXJlbmNlQ3VycmVuY3lDb2RlOiBzaG9ydEludm9pY2UucmVmZXJlbmNlQ3VycmVuY3lDb2RlLFxuICAgICAgICAgICAgbmV0QW1vdW50OiBzaG9ydEludm9pY2UubmV0QW1vdW50LFxuICAgICAgICAgICAgdmF0QW1vdW50OiBzaG9ydEludm9pY2UudmF0QW1vdW50LFxuICAgICAgICAgICAgZ3Jvc3NBbW91bnQ6IHNob3J0SW52b2ljZS5ncm9zc0Ftb3VudCxcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdDogQWxsSW52b2ljZXNSZXNwb25zZSA9IHtcbiAgICAgICAgICAgIGZpcnN0OiByZXNwb25zZU9iamVjdC5maXJzdCxcbiAgICAgICAgICAgIGxhc3Q6IHJlc3BvbnNlT2JqZWN0Lmxhc3QsXG4gICAgICAgICAgICByZWNvcmRzQ291bnQ6IHJlc3BvbnNlT2JqZWN0LnJlY29yZHNDb3VudCxcbiAgICAgICAgICAgIGRhdGE6IGFsbEludm9pY2VzLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IGF4aW9zRXJyb3IgPSBlcnJvciBhcyBBeGlvc0Vycm9yO1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBheGlvc0Vycm9yLnJlc3BvbnNlPy5kYXRhIHx8IGF4aW9zRXJyb3IubWVzc2FnZTtcbiAgICAgICAga2VlekxvZ2dlci5lcnJvcihgRXJyb3IgZW5jb3VudGVyZWQgd2hpbGUgZ2V0dGluZyBhbGwgaW52b2ljZXM6ICR7SlNPTi5zdHJpbmdpZnkoZXJyb3JNZXNzYWdlKX1gKTtcbiAgICAgICAgdGhyb3cgbmV3IEtlZXpBcGlFcnJvcihcbiAgICAgICAgICAgIGBGYWlsZWQgdG8gZ2V0IGFsbCBpbnZvaWNlczogJHtKU09OLnN0cmluZ2lmeShlcnJvck1lc3NhZ2UpfWAsXG4gICAgICAgICAgICBheGlvc0Vycm9yLnJlc3BvbnNlPy5zdGF0dXMsXG4gICAgICAgICAgICBlcnJvclxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.apiSendInvoice = apiSendInvoice;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const logger_1 = require("../../helpers/logger");
9
+ const KeezError_1 = require("../../errors/KeezError");
10
+ const constants_1 = require("../../config/constants");
11
+ const keezLogger = logger_1.logger.child({ _library: 'KeezWrapper', _method: 'Invoices' });
12
+ /**
13
+ * Send an invoice by external ID
14
+ * @param params - as defined in the interface
15
+ * @returns {Promise<string>} - Returns 'SENT' on success
16
+ */
17
+ async function apiSendInvoice(params) {
18
+ const url = `${params.baseDomain}/api/v1.0/public-api/invoices/delivery`;
19
+ const recipients = {};
20
+ if (params.emailParams) {
21
+ recipients.to = params.emailParams.to;
22
+ if (params.emailParams.cc && params.emailParams.cc.length > 0) {
23
+ recipients.cc = params.emailParams.cc.join(',');
24
+ }
25
+ if (params.emailParams.bcc && params.emailParams.bcc.length > 0) {
26
+ recipients.bcc = params.emailParams.bcc.join(',');
27
+ }
28
+ }
29
+ else if (params.clientMail) {
30
+ recipients.to = params.clientMail;
31
+ }
32
+ const body = {
33
+ invoiceExternalId: params.invoiceId,
34
+ info: [
35
+ {
36
+ deliveryMethod: 'Email',
37
+ representationType: 'Attachment',
38
+ recipients,
39
+ },
40
+ ],
41
+ };
42
+ try {
43
+ await axios_1.default.post(url, body, {
44
+ headers: {
45
+ Authorization: `Bearer ${params.bearerToken}`,
46
+ 'Content-Type': 'application/json',
47
+ },
48
+ timeout: constants_1.HTTP_REQUEST_TIMEOUT_MS,
49
+ });
50
+ return 'SENT';
51
+ }
52
+ catch (error) {
53
+ const axiosError = error;
54
+ const errorMessage = axiosError.response?.data || axiosError.message;
55
+ keezLogger.error(`Error encountered while sending e-mail for invoice (id: ${params.invoiceId}): ${JSON.stringify(errorMessage)}`);
56
+ throw new KeezError_1.KeezApiError(`Failed to send invoice email: ${JSON.stringify(errorMessage)}`, axiosError.response?.status, error);
57
+ }
58
+ }
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZE1haWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL2ludm9pY2VzL3NlbmRNYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBOEJBLHdDQWlEQztBQS9FRCxrREFBMEM7QUFDMUMsNkNBQTBDO0FBQzFDLGtEQUFrRDtBQUVsRCxrREFBNkQ7QUFFN0QsTUFBTSxVQUFVLEdBQUcsZUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFtQmxGOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsY0FBYyxDQUFDLE1BQXlCO0lBQzFELE1BQU0sR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsd0NBQXdDLENBQUM7SUFFekUsTUFBTSxVQUFVLEdBQTJCLEVBQUUsQ0FBQztJQUM5QyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixVQUFVLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQ3RDLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVELFVBQVUsQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5RCxVQUFVLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0wsQ0FBQztTQUFNLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzNCLFVBQVUsQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUc7UUFDVCxpQkFBaUIsRUFBRSxNQUFNLENBQUMsU0FBUztRQUNuQyxJQUFJLEVBQUU7WUFDRjtnQkFDSSxjQUFjLEVBQUUsT0FBTztnQkFDdkIsa0JBQWtCLEVBQUUsWUFBWTtnQkFDaEMsVUFBVTthQUNiO1NBQ0o7S0FDSixDQUFDO0lBRUYsSUFBSSxDQUFDO1FBQ0QsTUFBTSxlQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUU7WUFDeEIsT0FBTyxFQUFFO2dCQUNMLGFBQWEsRUFBRSxVQUFVLE1BQU0sQ0FBQyxXQUFXLEVBQUU7Z0JBQzdDLGNBQWMsRUFBRSxrQkFBa0I7YUFDckM7WUFDRCxPQUFPLEVBQUUsbUNBQXVCO1NBQ25DLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2IsTUFBTSxVQUFVLEdBQUcsS0FBbUIsQ0FBQztRQUN2QyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ3JFLFVBQVUsQ0FBQyxLQUFLLENBQ1osMkRBQTJELE1BQU0sQ0FBQyxTQUFTLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUNsSCxDQUFDO1FBQ0YsTUFBTSxJQUFJLHdCQUFZLENBQ2xCLGlDQUFpQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQy9ELFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUMzQixLQUFLLENBQ1IsQ0FBQztJQUNOLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zLCB7IEF4aW9zRXJyb3IgfSBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICdAL2hlbHBlcnMvbG9nZ2VyJztcbmltcG9ydCB7IEtlZXpBcGlFcnJvciB9IGZyb20gJ0AvZXJyb3JzL0tlZXpFcnJvcic7XG5pbXBvcnQgeyBTZW5kSW52b2ljZUVtYWlsUGFyYW1zIH0gZnJvbSAnQC9kdG8vaW52b2ljZXMnO1xuaW1wb3J0IHsgSFRUUF9SRVFVRVNUX1RJTUVPVVRfTVMgfSBmcm9tICdAL2NvbmZpZy9jb25zdGFudHMnO1xuXG5jb25zdCBrZWV6TG9nZ2VyID0gbG9nZ2VyLmNoaWxkKHsgX2xpYnJhcnk6ICdLZWV6V3JhcHBlcicsIF9tZXRob2Q6ICdJbnZvaWNlcycgfSk7XG5cbi8qKlxuICogYXBwSWQgLSBUaGUgYXBwbGljYXRpb24gSURcbiAqIGJhc2VEb21haW4gLSBUaGUgYmFzZSBkb21haW4gZm9yIHRoZSBBUElcbiAqIGJlYXJlclRva2VuIC0gVGhlIGJlYXJlciB0b2tlbiBvYnRhaW5lZCBhdCB0aGUgYXV0aGVudGljYXRpb24gc3RhZ2VcbiAqIGNsaWVudE1haWwgLSBUaGUgY2xpZW50IGVtYWlsIChmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSlcbiAqIGVtYWlsUGFyYW1zIC0gRXh0ZW5kZWQgZW1haWwgcGFyYW1ldGVycyB3aXRoIENDL0JDQyBzdXBwb3J0XG4gKiBpbnZvaWNlSWQgLSBUaGUgaW52b2ljZSBJRFxuICovXG5pbnRlcmZhY2UgU2VuZEludm9pY2VQYXJhbXMge1xuICAgIHJlYWRvbmx5IGFwcElkOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYmFzZURvbWFpbjogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGJlYXJlclRva2VuOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgY2xpZW50TWFpbD86IHN0cmluZztcbiAgICByZWFkb25seSBlbWFpbFBhcmFtcz86IFNlbmRJbnZvaWNlRW1haWxQYXJhbXM7XG4gICAgcmVhZG9ubHkgaW52b2ljZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogU2VuZCBhbiBpbnZvaWNlIGJ5IGV4dGVybmFsIElEXG4gKiBAcGFyYW0gcGFyYW1zIC0gYXMgZGVmaW5lZCBpbiB0aGUgaW50ZXJmYWNlXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fSAtIFJldHVybnMgJ1NFTlQnIG9uIHN1Y2Nlc3NcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwaVNlbmRJbnZvaWNlKHBhcmFtczogU2VuZEludm9pY2VQYXJhbXMpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHVybCA9IGAke3BhcmFtcy5iYXNlRG9tYWlufS9hcGkvdjEuMC9wdWJsaWMtYXBpL2ludm9pY2VzL2RlbGl2ZXJ5YDtcblxuICAgIGNvbnN0IHJlY2lwaWVudHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICBpZiAocGFyYW1zLmVtYWlsUGFyYW1zKSB7XG4gICAgICAgIHJlY2lwaWVudHMudG8gPSBwYXJhbXMuZW1haWxQYXJhbXMudG87XG4gICAgICAgIGlmIChwYXJhbXMuZW1haWxQYXJhbXMuY2MgJiYgcGFyYW1zLmVtYWlsUGFyYW1zLmNjLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJlY2lwaWVudHMuY2MgPSBwYXJhbXMuZW1haWxQYXJhbXMuY2Muam9pbignLCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJhbXMuZW1haWxQYXJhbXMuYmNjICYmIHBhcmFtcy5lbWFpbFBhcmFtcy5iY2MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmVjaXBpZW50cy5iY2MgPSBwYXJhbXMuZW1haWxQYXJhbXMuYmNjLmpvaW4oJywnKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAocGFyYW1zLmNsaWVudE1haWwpIHtcbiAgICAgICAgcmVjaXBpZW50cy50byA9IHBhcmFtcy5jbGllbnRNYWlsO1xuICAgIH1cblxuICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICAgIGludm9pY2VFeHRlcm5hbElkOiBwYXJhbXMuaW52b2ljZUlkLFxuICAgICAgICBpbmZvOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGVsaXZlcnlNZXRob2Q6ICdFbWFpbCcsXG4gICAgICAgICAgICAgICAgcmVwcmVzZW50YXRpb25UeXBlOiAnQXR0YWNobWVudCcsXG4gICAgICAgICAgICAgICAgcmVjaXBpZW50cyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgfTtcblxuICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGF4aW9zLnBvc3QodXJsLCBib2R5LCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3BhcmFtcy5iZWFyZXJUb2tlbn1gLFxuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGltZW91dDogSFRUUF9SRVFVRVNUX1RJTUVPVVRfTVMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiAnU0VOVCc7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc3QgYXhpb3NFcnJvciA9IGVycm9yIGFzIEF4aW9zRXJyb3I7XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGF4aW9zRXJyb3IucmVzcG9uc2U/LmRhdGEgfHwgYXhpb3NFcnJvci5tZXNzYWdlO1xuICAgICAgICBrZWV6TG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgYEVycm9yIGVuY291bnRlcmVkIHdoaWxlIHNlbmRpbmcgZS1tYWlsIGZvciBpbnZvaWNlIChpZDogJHtwYXJhbXMuaW52b2ljZUlkfSk6ICR7SlNPTi5zdHJpbmdpZnkoZXJyb3JNZXNzYWdlKX1gXG4gICAgICAgICk7XG4gICAgICAgIHRocm93IG5ldyBLZWV6QXBpRXJyb3IoXG4gICAgICAgICAgICBgRmFpbGVkIHRvIHNlbmQgaW52b2ljZSBlbWFpbDogJHtKU09OLnN0cmluZ2lmeShlcnJvck1lc3NhZ2UpfWAsXG4gICAgICAgICAgICBheGlvc0Vycm9yLnJlc3BvbnNlPy5zdGF0dXMsXG4gICAgICAgICAgICBlcnJvclxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.apiSubmitEfactura = apiSubmitEfactura;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const logger_1 = require("../../helpers/logger");
9
+ const KeezError_1 = require("../../errors/KeezError");
10
+ const constants_1 = require("../../config/constants");
11
+ const keezLogger = logger_1.logger.child({ _library: 'KeezWrapper', _method: 'Invoices' });
12
+ async function apiSubmitEfactura(params) {
13
+ const url = `${params.baseDomain}/api/v1.0/public-api/${params.appClientId}/invoices/efactura/submitted`;
14
+ const body = {
15
+ externalId: params.invoiceId,
16
+ };
17
+ try {
18
+ const response = await axios_1.default.post(url, body, {
19
+ headers: {
20
+ Authorization: `Bearer ${params.bearerToken}`,
21
+ 'Content-Type': 'application/json',
22
+ },
23
+ timeout: constants_1.HTTP_REQUEST_TIMEOUT_MS,
24
+ });
25
+ return response.data.uploadIndex || response.data.externalId || 'SUBMITTED';
26
+ }
27
+ catch (error) {
28
+ const axiosError = error;
29
+ const errorMessage = axiosError.response?.data || axiosError.message;
30
+ keezLogger.error(`Error encountered while submitting invoice to eFactura (${params.invoiceId}): ${JSON.stringify(errorMessage)}`);
31
+ throw new KeezError_1.KeezApiError(`Failed to submit invoice to eFactura: ${JSON.stringify(errorMessage)}`, axiosError.response?.status, error);
32
+ }
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0RWZhY3R1cmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL2ludm9pY2VzL3N1Ym1pdEVmYWN0dXJhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBb0JBLDhDQTZCQztBQWpERCxrREFBMEM7QUFDMUMsNkNBQTBDO0FBQzFDLGtEQUFrRDtBQUNsRCxrREFBNkQ7QUFFN0QsTUFBTSxVQUFVLEdBQUcsZUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFlM0UsS0FBSyxVQUFVLGlCQUFpQixDQUFDLE1BQTRCO0lBQ2hFLE1BQU0sR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsd0JBQXdCLE1BQU0sQ0FBQyxXQUFXLDhCQUE4QixDQUFDO0lBRXpHLE1BQU0sSUFBSSxHQUFHO1FBQ1QsVUFBVSxFQUFFLE1BQU0sQ0FBQyxTQUFTO0tBQy9CLENBQUM7SUFFRixJQUFJLENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBRyxNQUFNLGVBQUssQ0FBQyxJQUFJLENBQW1CLEdBQUcsRUFBRSxJQUFJLEVBQUU7WUFDM0QsT0FBTyxFQUFFO2dCQUNMLGFBQWEsRUFBRSxVQUFVLE1BQU0sQ0FBQyxXQUFXLEVBQUU7Z0JBQzdDLGNBQWMsRUFBRSxrQkFBa0I7YUFDckM7WUFDRCxPQUFPLEVBQUUsbUNBQXVCO1NBQ25DLENBQUMsQ0FBQztRQUVILE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksV0FBVyxDQUFDO0lBQ2hGLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2IsTUFBTSxVQUFVLEdBQUcsS0FBbUIsQ0FBQztRQUN2QyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ3JFLFVBQVUsQ0FBQyxLQUFLLENBQ1osMkRBQTJELE1BQU0sQ0FBQyxTQUFTLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUNsSCxDQUFDO1FBQ0YsTUFBTSxJQUFJLHdCQUFZLENBQ2xCLHlDQUF5QyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQ3ZFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUMzQixLQUFLLENBQ1IsQ0FBQztJQUNOLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zLCB7IEF4aW9zRXJyb3IgfSBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICdAL2hlbHBlcnMvbG9nZ2VyJztcbmltcG9ydCB7IEtlZXpBcGlFcnJvciB9IGZyb20gJ0AvZXJyb3JzL0tlZXpFcnJvcic7XG5pbXBvcnQgeyBIVFRQX1JFUVVFU1RfVElNRU9VVF9NUyB9IGZyb20gJ0AvY29uZmlnL2NvbnN0YW50cyc7XG5cbmNvbnN0IGtlZXpMb2dnZXIgPSBsb2dnZXIuY2hpbGQoeyBfbGlicmFyeTogJ0tlZXpXcmFwcGVyJywgX21ldGhvZDogJ0ludm9pY2VzJyB9KTtcblxuaW50ZXJmYWNlIFN1Ym1pdEVmYWN0dXJhUGFyYW1zIHtcbiAgICByZWFkb25seSBiYXNlRG9tYWluOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYXBwSWQ6IHN0cmluZztcbiAgICByZWFkb25seSBhcHBDbGllbnRJZDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGJlYXJlclRva2VuOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgaW52b2ljZUlkOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBFZmFjdHVyYVJlc3BvbnNlIHtcbiAgICB1cGxvYWRJbmRleD86IHN0cmluZztcbiAgICBleHRlcm5hbElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBpU3VibWl0RWZhY3R1cmEocGFyYW1zOiBTdWJtaXRFZmFjdHVyYVBhcmFtcyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgdXJsID0gYCR7cGFyYW1zLmJhc2VEb21haW59L2FwaS92MS4wL3B1YmxpYy1hcGkvJHtwYXJhbXMuYXBwQ2xpZW50SWR9L2ludm9pY2VzL2VmYWN0dXJhL3N1Ym1pdHRlZGA7XG5cbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgICBleHRlcm5hbElkOiBwYXJhbXMuaW52b2ljZUlkLFxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLnBvc3Q8RWZhY3R1cmFSZXNwb25zZT4odXJsLCBib2R5LCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3BhcmFtcy5iZWFyZXJUb2tlbn1gLFxuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGltZW91dDogSFRUUF9SRVFVRVNUX1RJTUVPVVRfTVMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhLnVwbG9hZEluZGV4IHx8IHJlc3BvbnNlLmRhdGEuZXh0ZXJuYWxJZCB8fCAnU1VCTUlUVEVEJztcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zdCBheGlvc0Vycm9yID0gZXJyb3IgYXMgQXhpb3NFcnJvcjtcbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYXhpb3NFcnJvci5yZXNwb25zZT8uZGF0YSB8fCBheGlvc0Vycm9yLm1lc3NhZ2U7XG4gICAgICAgIGtlZXpMb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICBgRXJyb3IgZW5jb3VudGVyZWQgd2hpbGUgc3VibWl0dGluZyBpbnZvaWNlIHRvIGVGYWN0dXJhICgke3BhcmFtcy5pbnZvaWNlSWR9KTogJHtKU09OLnN0cmluZ2lmeShlcnJvck1lc3NhZ2UpfWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhyb3cgbmV3IEtlZXpBcGlFcnJvcihcbiAgICAgICAgICAgIGBGYWlsZWQgdG8gc3VibWl0IGludm9pY2UgdG8gZUZhY3R1cmE6ICR7SlNPTi5zdHJpbmdpZnkoZXJyb3JNZXNzYWdlKX1gLFxuICAgICAgICAgICAgYXhpb3NFcnJvci5yZXNwb25zZT8uc3RhdHVzLFxuICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.apiUpdateInvoice = apiUpdateInvoice;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const logger_1 = require("../../helpers/logger");
9
+ const KeezError_1 = require("../../errors/KeezError");
10
+ const constants_1 = require("../../config/constants");
11
+ const keezLogger = logger_1.logger.child({ _library: 'KeezWrapper', _method: 'Invoices' });
12
+ async function apiUpdateInvoice(params) {
13
+ const url = `${params.baseDomain}/api/v1.0/public-api/${params.appClientId}/invoices/${params.invoiceId}`;
14
+ const invoiceDetails = params.invoice.items.map(item => ({
15
+ itemExternalId: item.itemExternalId,
16
+ measureUnitId: item.measureUnitId,
17
+ quantity: item.quantity,
18
+ unitPrice: item.unitPrice,
19
+ vatPercent: item.vatPercent,
20
+ discountPercent: item.discountPercent,
21
+ description: item.description,
22
+ }));
23
+ const body = {
24
+ series: params.invoice.series,
25
+ documentDate: params.invoice.documentDate,
26
+ dueDate: params.invoice.dueDate,
27
+ currencyCode: params.invoice.currencyCode,
28
+ paymentTypeId: params.invoice.paymentType,
29
+ vatOnCollection: params.invoice.vatOnCollection ?? false,
30
+ exchangeRate: params.invoice.exchangeRate,
31
+ notes: params.invoice.notes,
32
+ partner: {
33
+ isLegalPerson: params.invoice.partner.isLegalPerson,
34
+ partnerName: params.invoice.partner.partnerName,
35
+ identificationNumber: params.invoice.partner.identificationNumber,
36
+ countryCode: params.invoice.partner.countryCode,
37
+ countryName: params.invoice.partner.countryName,
38
+ countyCode: params.invoice.partner.countyCode,
39
+ countyName: params.invoice.partner.countyName,
40
+ cityName: params.invoice.partner.cityName,
41
+ addressDetails: params.invoice.partner.addressDetails,
42
+ },
43
+ invoiceDetails,
44
+ };
45
+ try {
46
+ await axios_1.default.put(url, body, {
47
+ headers: {
48
+ Authorization: `Bearer ${params.bearerToken}`,
49
+ 'Content-Type': 'application/json',
50
+ },
51
+ timeout: constants_1.HTTP_REQUEST_TIMEOUT_MS,
52
+ });
53
+ }
54
+ catch (error) {
55
+ const axiosError = error;
56
+ const errorMessage = axiosError.response?.data || axiosError.message;
57
+ keezLogger.error(`Error encountered while updating invoice (${params.invoiceId}): ${JSON.stringify(errorMessage)}`);
58
+ throw new KeezError_1.KeezApiError(`Failed to update invoice: ${JSON.stringify(errorMessage)}`, axiosError.response?.status, error);
59
+ }
60
+ }
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS9pbnZvaWNlcy91cGRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFpQkEsNENBd0RDO0FBekVELGtEQUEwQztBQUMxQyw2Q0FBMEM7QUFFMUMsa0RBQWtEO0FBQ2xELGtEQUE2RDtBQUU3RCxNQUFNLFVBQVUsR0FBRyxlQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztBQVczRSxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsTUFBMkI7SUFDOUQsTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSx3QkFBd0IsTUFBTSxDQUFDLFdBQVcsYUFBYSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7SUFFMUcsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRCxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7UUFDbkMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1FBQ2pDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtRQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7UUFDekIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1FBQzNCLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtRQUNyQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7S0FDaEMsQ0FBQyxDQUFDLENBQUM7SUFFSixNQUFNLElBQUksR0FBRztRQUNULE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU07UUFDN0IsWUFBWSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWTtRQUN6QyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPO1FBQy9CLFlBQVksRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVk7UUFDekMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVztRQUN6QyxlQUFlLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLElBQUksS0FBSztRQUN4RCxZQUFZLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZO1FBQ3pDLEtBQUssRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUs7UUFDM0IsT0FBTyxFQUFFO1lBQ0wsYUFBYSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWE7WUFDbkQsV0FBVyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDL0Msb0JBQW9CLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsb0JBQW9CO1lBQ2pFLFdBQVcsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXO1lBQy9DLFdBQVcsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXO1lBQy9DLFVBQVUsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVO1lBQzdDLFVBQVUsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVO1lBQzdDLFFBQVEsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQ3pDLGNBQWMsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjO1NBQ3hEO1FBQ0QsY0FBYztLQUNqQixDQUFDO0lBRUYsSUFBSSxDQUFDO1FBQ0QsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUU7WUFDdkIsT0FBTyxFQUFFO2dCQUNMLGFBQWEsRUFBRSxVQUFVLE1BQU0sQ0FBQyxXQUFXLEVBQUU7Z0JBQzdDLGNBQWMsRUFBRSxrQkFBa0I7YUFDckM7WUFDRCxPQUFPLEVBQUUsbUNBQXVCO1NBQ25DLENBQUMsQ0FBQztJQUNQLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2IsTUFBTSxVQUFVLEdBQUcsS0FBbUIsQ0FBQztRQUN2QyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ3JFLFVBQVUsQ0FBQyxLQUFLLENBQ1osNkNBQTZDLE1BQU0sQ0FBQyxTQUFTLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUNwRyxDQUFDO1FBQ0YsTUFBTSxJQUFJLHdCQUFZLENBQ2xCLDZCQUE2QixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQzNELFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUMzQixLQUFLLENBQ1IsQ0FBQztJQUNOLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zLCB7IEF4aW9zRXJyb3IgfSBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICdAL2hlbHBlcnMvbG9nZ2VyJztcbmltcG9ydCB7IEludm9pY2VSZXF1ZXN0VjIgfSBmcm9tICdAL2R0by9pbnZvaWNlcyc7XG5pbXBvcnQgeyBLZWV6QXBpRXJyb3IgfSBmcm9tICdAL2Vycm9ycy9LZWV6RXJyb3InO1xuaW1wb3J0IHsgSFRUUF9SRVFVRVNUX1RJTUVPVVRfTVMgfSBmcm9tICdAL2NvbmZpZy9jb25zdGFudHMnO1xuXG5jb25zdCBrZWV6TG9nZ2VyID0gbG9nZ2VyLmNoaWxkKHsgX2xpYnJhcnk6ICdLZWV6V3JhcHBlcicsIF9tZXRob2Q6ICdJbnZvaWNlcycgfSk7XG5cbmludGVyZmFjZSBVcGRhdGVJbnZvaWNlUGFyYW1zIHtcbiAgICByZWFkb25seSBiYXNlRG9tYWluOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYXBwSWQ6IHN0cmluZztcbiAgICByZWFkb25seSBhcHBDbGllbnRJZDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGJlYXJlclRva2VuOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgaW52b2ljZUlkOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgaW52b2ljZTogSW52b2ljZVJlcXVlc3RWMjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwaVVwZGF0ZUludm9pY2UocGFyYW1zOiBVcGRhdGVJbnZvaWNlUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdXJsID0gYCR7cGFyYW1zLmJhc2VEb21haW59L2FwaS92MS4wL3B1YmxpYy1hcGkvJHtwYXJhbXMuYXBwQ2xpZW50SWR9L2ludm9pY2VzLyR7cGFyYW1zLmludm9pY2VJZH1gO1xuXG4gICAgY29uc3QgaW52b2ljZURldGFpbHMgPSBwYXJhbXMuaW52b2ljZS5pdGVtcy5tYXAoaXRlbSA9PiAoe1xuICAgICAgICBpdGVtRXh0ZXJuYWxJZDogaXRlbS5pdGVtRXh0ZXJuYWxJZCxcbiAgICAgICAgbWVhc3VyZVVuaXRJZDogaXRlbS5tZWFzdXJlVW5pdElkLFxuICAgICAgICBxdWFudGl0eTogaXRlbS5xdWFudGl0eSxcbiAgICAgICAgdW5pdFByaWNlOiBpdGVtLnVuaXRQcmljZSxcbiAgICAgICAgdmF0UGVyY2VudDogaXRlbS52YXRQZXJjZW50LFxuICAgICAgICBkaXNjb3VudFBlcmNlbnQ6IGl0ZW0uZGlzY291bnRQZXJjZW50LFxuICAgICAgICBkZXNjcmlwdGlvbjogaXRlbS5kZXNjcmlwdGlvbixcbiAgICB9KSk7XG5cbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgICBzZXJpZXM6IHBhcmFtcy5pbnZvaWNlLnNlcmllcyxcbiAgICAgICAgZG9jdW1lbnREYXRlOiBwYXJhbXMuaW52b2ljZS5kb2N1bWVudERhdGUsXG4gICAgICAgIGR1ZURhdGU6IHBhcmFtcy5pbnZvaWNlLmR1ZURhdGUsXG4gICAgICAgIGN1cnJlbmN5Q29kZTogcGFyYW1zLmludm9pY2UuY3VycmVuY3lDb2RlLFxuICAgICAgICBwYXltZW50VHlwZUlkOiBwYXJhbXMuaW52b2ljZS5wYXltZW50VHlwZSxcbiAgICAgICAgdmF0T25Db2xsZWN0aW9uOiBwYXJhbXMuaW52b2ljZS52YXRPbkNvbGxlY3Rpb24gPz8gZmFsc2UsXG4gICAgICAgIGV4Y2hhbmdlUmF0ZTogcGFyYW1zLmludm9pY2UuZXhjaGFuZ2VSYXRlLFxuICAgICAgICBub3RlczogcGFyYW1zLmludm9pY2Uubm90ZXMsXG4gICAgICAgIHBhcnRuZXI6IHtcbiAgICAgICAgICAgIGlzTGVnYWxQZXJzb246IHBhcmFtcy5pbnZvaWNlLnBhcnRuZXIuaXNMZWdhbFBlcnNvbixcbiAgICAgICAgICAgIHBhcnRuZXJOYW1lOiBwYXJhbXMuaW52b2ljZS5wYXJ0bmVyLnBhcnRuZXJOYW1lLFxuICAgICAgICAgICAgaWRlbnRpZmljYXRpb25OdW1iZXI6IHBhcmFtcy5pbnZvaWNlLnBhcnRuZXIuaWRlbnRpZmljYXRpb25OdW1iZXIsXG4gICAgICAgICAgICBjb3VudHJ5Q29kZTogcGFyYW1zLmludm9pY2UucGFydG5lci5jb3VudHJ5Q29kZSxcbiAgICAgICAgICAgIGNvdW50cnlOYW1lOiBwYXJhbXMuaW52b2ljZS5wYXJ0bmVyLmNvdW50cnlOYW1lLFxuICAgICAgICAgICAgY291bnR5Q29kZTogcGFyYW1zLmludm9pY2UucGFydG5lci5jb3VudHlDb2RlLFxuICAgICAgICAgICAgY291bnR5TmFtZTogcGFyYW1zLmludm9pY2UucGFydG5lci5jb3VudHlOYW1lLFxuICAgICAgICAgICAgY2l0eU5hbWU6IHBhcmFtcy5pbnZvaWNlLnBhcnRuZXIuY2l0eU5hbWUsXG4gICAgICAgICAgICBhZGRyZXNzRGV0YWlsczogcGFyYW1zLmludm9pY2UucGFydG5lci5hZGRyZXNzRGV0YWlscyxcbiAgICAgICAgfSxcbiAgICAgICAgaW52b2ljZURldGFpbHMsXG4gICAgfTtcblxuICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGF4aW9zLnB1dCh1cmwsIGJvZHksIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7cGFyYW1zLmJlYXJlclRva2VufWAsXG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aW1lb3V0OiBIVFRQX1JFUVVFU1RfVElNRU9VVF9NUyxcbiAgICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc3QgYXhpb3NFcnJvciA9IGVycm9yIGFzIEF4aW9zRXJyb3I7XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGF4aW9zRXJyb3IucmVzcG9uc2U/LmRhdGEgfHwgYXhpb3NFcnJvci5tZXNzYWdlO1xuICAgICAgICBrZWV6TG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgYEVycm9yIGVuY291bnRlcmVkIHdoaWxlIHVwZGF0aW5nIGludm9pY2UgKCR7cGFyYW1zLmludm9pY2VJZH0pOiAke0pTT04uc3RyaW5naWZ5KGVycm9yTWVzc2FnZSl9YFxuICAgICAgICApO1xuICAgICAgICB0aHJvdyBuZXcgS2VlekFwaUVycm9yKFxuICAgICAgICAgICAgYEZhaWxlZCB0byB1cGRhdGUgaW52b2ljZTogJHtKU09OLnN0cmluZ2lmeShlcnJvck1lc3NhZ2UpfWAsXG4gICAgICAgICAgICBheGlvc0Vycm9yLnJlc3BvbnNlPy5zdGF0dXMsXG4gICAgICAgICAgICBlcnJvclxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.apiValidateInvoice = apiValidateInvoice;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const logger_1 = require("../../helpers/logger");
9
+ const KeezError_1 = require("../../errors/KeezError");
10
+ const constants_1 = require("../../config/constants");
11
+ const keezLogger = logger_1.logger.child({ _library: 'KeezWrapper', _method: 'Invoices' });
12
+ /**
13
+ * Validate an invoice by external ID
14
+ * @param params - as defined in the interface
15
+ * @returns {Promise<string>} - Returns 'VALIDATED' on success
16
+ */
17
+ async function apiValidateInvoice(params) {
18
+ const url = `${params.baseDomain}/api/v1.0/public-api/${params.appClientId}/invoices/valid`;
19
+ const body = {
20
+ externalId: params.invoiceId,
21
+ };
22
+ try {
23
+ await axios_1.default.post(url, body, {
24
+ headers: {
25
+ Authorization: `Bearer ${params.bearerToken}`,
26
+ 'Content-Type': 'application/json',
27
+ },
28
+ timeout: constants_1.HTTP_REQUEST_TIMEOUT_MS,
29
+ });
30
+ return 'VALIDATED';
31
+ }
32
+ catch (error) {
33
+ const axiosError = error;
34
+ const errorMessage = axiosError.response?.data?.Message || axiosError.message;
35
+ keezLogger.error(`Error encountered while validating invoice (id: ${params.invoiceId}): ${errorMessage}`);
36
+ throw new KeezError_1.KeezApiError(`Failed to validate invoice: ${errorMessage}`, axiosError.response?.status, error);
37
+ }
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL2ludm9pY2VzL3ZhbGlkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBMkJBLGdEQXNCQztBQWpERCxrREFBMEM7QUFDMUMsNkNBQTBDO0FBQzFDLGtEQUFrRDtBQUNsRCxrREFBNkQ7QUFFN0QsTUFBTSxVQUFVLEdBQUcsZUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFpQmxGOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsa0JBQWtCLENBQUMsTUFBNkI7SUFDbEUsTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSx3QkFBd0IsTUFBTSxDQUFDLFdBQVcsaUJBQWlCLENBQUM7SUFDNUYsTUFBTSxJQUFJLEdBQUc7UUFDVCxVQUFVLEVBQUUsTUFBTSxDQUFDLFNBQVM7S0FDL0IsQ0FBQztJQUVGLElBQUksQ0FBQztRQUNELE1BQU0sZUFBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQ3hCLE9BQU8sRUFBRTtnQkFDTCxhQUFhLEVBQUUsVUFBVSxNQUFNLENBQUMsV0FBVyxFQUFFO2dCQUM3QyxjQUFjLEVBQUUsa0JBQWtCO2FBQ3JDO1lBQ0QsT0FBTyxFQUFFLG1DQUF1QjtTQUNuQyxDQUFDLENBQUM7UUFFSCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNiLE1BQU0sVUFBVSxHQUFHLEtBQXlDLENBQUM7UUFDN0QsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDOUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxtREFBbUQsTUFBTSxDQUFDLFNBQVMsTUFBTSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQzFHLE1BQU0sSUFBSSx3QkFBWSxDQUFDLCtCQUErQixZQUFZLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5RyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcywgeyBBeGlvc0Vycm9yIH0gZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnQC9oZWxwZXJzL2xvZ2dlcic7XG5pbXBvcnQgeyBLZWV6QXBpRXJyb3IgfSBmcm9tICdAL2Vycm9ycy9LZWV6RXJyb3InO1xuaW1wb3J0IHsgSFRUUF9SRVFVRVNUX1RJTUVPVVRfTVMgfSBmcm9tICdAL2NvbmZpZy9jb25zdGFudHMnO1xuXG5jb25zdCBrZWV6TG9nZ2VyID0gbG9nZ2VyLmNoaWxkKHsgX2xpYnJhcnk6ICdLZWV6V3JhcHBlcicsIF9tZXRob2Q6ICdJbnZvaWNlcycgfSk7XG5cbi8qKlxuICogYXBwSWQgLSBUaGUgYXBwbGljYXRpb24gSURcbiAqIGFwcENsaWVudElkIC0gVGhlIGFwcGxpY2F0aW9uIGNsaWVudCBJRFxuICogYmFzZURvbWFpbiAtIFRoZSBiYXNlIGRvbWFpbiBmb3IgdGhlIEFQSVxuICogYmVhcmVyVG9rZW4gLSBUaGUgYmVhcmVyIHRva2VuIG9idGFpbmVkIGF0IHRoZSBhdXRoZW50aWNhdGlvbiBzdGFnZVxuICogaW52b2ljZUlkIC0gVGhlIGludm9pY2UgSURcbiAqL1xuaW50ZXJmYWNlIFZhbGlkYXRlSW52b2ljZVBhcmFtcyB7XG4gICAgcmVhZG9ubHkgYXBwSWQ6IHN0cmluZztcbiAgICByZWFkb25seSBhcHBDbGllbnRJZDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGJhc2VEb21haW46IHN0cmluZztcbiAgICByZWFkb25seSBiZWFyZXJUb2tlbjogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGludm9pY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIGFuIGludm9pY2UgYnkgZXh0ZXJuYWwgSURcbiAqIEBwYXJhbSBwYXJhbXMgLSBhcyBkZWZpbmVkIGluIHRoZSBpbnRlcmZhY2VcbiAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZz59IC0gUmV0dXJucyAnVkFMSURBVEVEJyBvbiBzdWNjZXNzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcGlWYWxpZGF0ZUludm9pY2UocGFyYW1zOiBWYWxpZGF0ZUludm9pY2VQYXJhbXMpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHVybCA9IGAke3BhcmFtcy5iYXNlRG9tYWlufS9hcGkvdjEuMC9wdWJsaWMtYXBpLyR7cGFyYW1zLmFwcENsaWVudElkfS9pbnZvaWNlcy92YWxpZGA7XG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgICAgZXh0ZXJuYWxJZDogcGFyYW1zLmludm9pY2VJZCxcbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgYXhpb3MucG9zdCh1cmwsIGJvZHksIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7cGFyYW1zLmJlYXJlclRva2VufWAsXG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aW1lb3V0OiBIVFRQX1JFUVVFU1RfVElNRU9VVF9NUyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuICdWQUxJREFURUQnO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IGF4aW9zRXJyb3IgPSBlcnJvciBhcyBBeGlvc0Vycm9yPHsgTWVzc2FnZT86IHN0cmluZyB9PjtcbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYXhpb3NFcnJvci5yZXNwb25zZT8uZGF0YT8uTWVzc2FnZSB8fCBheGlvc0Vycm9yLm1lc3NhZ2U7XG4gICAgICAgIGtlZXpMb2dnZXIuZXJyb3IoYEVycm9yIGVuY291bnRlcmVkIHdoaWxlIHZhbGlkYXRpbmcgaW52b2ljZSAoaWQ6ICR7cGFyYW1zLmludm9pY2VJZH0pOiAke2Vycm9yTWVzc2FnZX1gKTtcbiAgICAgICAgdGhyb3cgbmV3IEtlZXpBcGlFcnJvcihgRmFpbGVkIHRvIHZhbGlkYXRlIGludm9pY2U6ICR7ZXJyb3JNZXNzYWdlfWAsIGF4aW9zRXJyb3IucmVzcG9uc2U/LnN0YXR1cywgZXJyb3IpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.apiGetInvoiceByExternalId = apiGetInvoiceByExternalId;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const logger_1 = require("../../helpers/logger");
9
+ const KeezError_1 = require("../../errors/KeezError");
10
+ const constants_1 = require("../../config/constants");
11
+ const keezLogger = logger_1.logger.child({ _library: 'KeezWrapper', _method: 'Invoices' });
12
+ /**
13
+ * Get an invoice by external ID
14
+ * @param params as defined in the interface
15
+ * @returns {Promise<InvoiceResponse>} - The invoice details
16
+ */
17
+ async function apiGetInvoiceByExternalId(params) {
18
+ const url = `${params.baseDomain}/api/v1.0/public-api/${params.appClientId}/invoices/${params.invoiceId}`;
19
+ try {
20
+ const response = await axios_1.default.get(url, {
21
+ headers: {
22
+ Authorization: `Bearer ${params.bearerToken}`,
23
+ },
24
+ timeout: constants_1.HTTP_REQUEST_TIMEOUT_MS,
25
+ });
26
+ const responseObject = response.data;
27
+ const allItems = responseObject.invoiceDetails.map(item => ({
28
+ discountGrossValue: item.discountGrossValue,
29
+ discountNetValue: item.discountNetValue,
30
+ discountVatValue: item.discountVatValue,
31
+ discountValueOnNet: item.discountValueOnNet,
32
+ grossAmount: item.grossAmount,
33
+ itemCode: item.itemCode,
34
+ itemDescription: item.itemDescription,
35
+ itemExternalId: item.itemExternalId,
36
+ itemName: item.itemName,
37
+ measureUnitId: item.measureUnitId,
38
+ netAmount: item.netAmount,
39
+ originalNetAmount: item.originalNetAmount,
40
+ originalVatAmount: item.originalVatAmount,
41
+ quantity: item.quantity,
42
+ unMeasureUnit: item.unMeasureUnit,
43
+ unVatCategory: item.unVatCategory,
44
+ unVatExemptionReason: item.unVatExemptionReason,
45
+ unitPrice: item.unitPrice,
46
+ vatAmount: item.vatAmount,
47
+ vatPercent: item.vatPercent,
48
+ exciseAmount: item.exciseAmount,
49
+ }));
50
+ const result = {
51
+ currencyCode: responseObject.currencyCode,
52
+ discountGrossValue: responseObject.discountGrossValue,
53
+ discountNetValue: responseObject.discountNetValue,
54
+ discountVatValue: responseObject.discountVatValue,
55
+ discountValueOnNet: responseObject.discountValueOnNet,
56
+ exciseAmount: responseObject.exciseAmount,
57
+ documentDate: responseObject.documentDate,
58
+ dueDate: responseObject.dueDate,
59
+ exchangeRate: responseObject.exchangeRate,
60
+ grossAmount: responseObject.grossAmount,
61
+ netAmount: responseObject.netAmount,
62
+ number: responseObject.number,
63
+ originalNetAmount: responseObject.originalNetAmount,
64
+ originalVatAmount: responseObject.originalVatAmount,
65
+ partner: {
66
+ addressDetails: responseObject.partner.addressDetails,
67
+ cityName: responseObject.partner.cityName,
68
+ countryCode: responseObject.partner.countryCode,
69
+ countryName: responseObject.partner.countryName,
70
+ countyCode: responseObject.partner.countyCode,
71
+ countyName: responseObject.partner.countyName,
72
+ identificationNumber: responseObject.partner.identificationNumber,
73
+ isLegalPerson: responseObject.partner.isLegalPerson,
74
+ partnerName: responseObject.partner.partnerName,
75
+ },
76
+ items: allItems,
77
+ paymentTypeId: responseObject.paymentTypeId,
78
+ referenceCurrencyCode: responseObject.referenceCurrencyCode,
79
+ series: responseObject.series,
80
+ status: responseObject.status,
81
+ vatAmount: responseObject.vatAmount,
82
+ vatOnCollection: responseObject.vatOnCollection,
83
+ };
84
+ return result;
85
+ }
86
+ catch (error) {
87
+ const axiosError = error;
88
+ const errorMessage = axiosError.response?.data || axiosError.message;
89
+ keezLogger.error(`Error encountered while getting invoice details (id: ${params.invoiceId}): ${JSON.stringify(errorMessage)}`);
90
+ throw new KeezError_1.KeezApiError(`Failed to get invoice details: ${JSON.stringify(errorMessage)}`, axiosError.response?.status, error);
91
+ }
92
+ }
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvaW52b2ljZXMvdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXVGQSw4REFtRkM7QUExS0Qsa0RBQTBDO0FBQzFDLDZDQUEwQztBQUUxQyxrREFBa0Q7QUFDbEQsa0RBQTZEO0FBRTdELE1BQU0sVUFBVSxHQUFHLGVBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBNEVsRjs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHlCQUF5QixDQUFDLE1BQXlCO0lBQ3JFLE1BQU0sR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsd0JBQXdCLE1BQU0sQ0FBQyxXQUFXLGFBQWEsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRTFHLElBQUksQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBcUIsR0FBRyxFQUFFO1lBQ3RELE9BQU8sRUFBRTtnQkFDTCxhQUFhLEVBQUUsVUFBVSxNQUFNLENBQUMsV0FBVyxFQUFFO2FBQ2hEO1lBQ0QsT0FBTyxFQUFFLG1DQUF1QjtTQUNuQyxDQUFDLENBQUM7UUFFSCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3JDLE1BQU0sUUFBUSxHQUFXLGNBQWMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoRSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzNDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzNDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixRQUFRLEVB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Wix3REFBd0QsTUFBTSxDQUFDLFNBQVMsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQy9HLENBQUM7UUFDRixNQUFNLElBQUksd0JBQVksQ0FDbEIsa0NBQWtDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFDaEUsVUFBVSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQzNCLEtBQUssQ0FDUixDQUFDO0lBQ04sQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MsIHsgQXhpb3NFcnJvciB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJ0AvaGVscGVycy9sb2dnZXInO1xuaW1wb3J0IHsgSW52b2ljZVJlc3BvbnNlLCBJdGVtIH0gZnJvbSAnQC9kdG8vaW52b2ljZVJlc3BvbnNlJztcbmltcG9ydCB7IEtlZXpBcGlFcnJvciB9IGZyb20gJ0AvZXJyb3JzL0tlZXpFcnJvcic7XG5pbXBvcnQgeyBIVFRQX1JFUVVFU1RfVElNRU9VVF9NUyB9IGZyb20gJ0AvY29uZmlnL2NvbnN0YW50cyc7XG5cbmNvbnN0IGtlZXpMb2dnZXIgPSBsb2dnZXIuY2hpbGQoeyBfbGlicmFyeTogJ0tlZXpXcmFwcGVyJywgX21ldGhvZDogJ0ludm9pY2VzJyB9KTtcblxuLyoqXG4gKiBiYXNlRG9tYWluIC0gVGhlIGJhc2UgZG9tYWluIGZvciB0aGUgQVBJXG4gKiBhcHBJZCAtIFRoZSBhcHBsaWNhdGlvbiBJRFxuICogYXBwQ2xpZW50SWQgLSBUaGUgYXBwbGljYXRpb24gY2xpZW50IElEXG4gKiBiZWFyZXJUb2tlbiAtIFRoZSBiZWFyZXIgdG9rZW4gb2J0YWluZWQgYXQgdGhlIGF1dGhlbnRpY2F0aW9uIHN0YWdlXG4gKiBpbnZvaWNlSWQgLSBUaGUgaW52b2ljZSBJRFxuICovXG5pbnRlcmZhY2UgVmlld0ludm9pY2VQYXJhbXMge1xuICAgIHJlYWRvbmx5IGJhc2VEb21haW46IHN0cmluZztcbiAgICByZWFkb25seSBhcHBJZDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGFwcENsaWVudElkOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYmVhcmVyVG9rZW46IHN0cmluZztcbiAgICByZWFkb25seSBpbnZvaWNlSWQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEFwaUludm9pY2VJdGVtIHtcbiAgICBkaXNjb3VudEdyb3NzVmFsdWU6IG51bWJlcjtcbiAgICBkaXNjb3VudE5ldFZhbHVlOiBudW1iZXI7XG4gICAgZGlzY291bnRWYXRWYWx1ZTogbnVtYmVyO1xuICAgIGRpc2NvdW50VmFsdWVPbk5ldDogYm9vbGVhbjtcbiAgICBncm9zc0Ftb3VudDogbnVtYmVyO1xuICAgIGl0ZW1Db2RlOiBzdHJpbmc7XG4gICAgaXRlbURlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgaXRlbUV4dGVybmFsSWQ6IHN0cmluZztcbiAgICBpdGVtTmFtZTogc3RyaW5nO1xuICAgIG1lYXN1cmVVbml0SWQ6IG51bWJlcjtcbiAgICBuZXRBbW91bnQ6IG51bWJlcjtcbiAgICBvcmlnaW5hbE5ldEFtb3VudDogbnVtYmVyO1xuICAgIG9yaWdpbmFsVmF0QW1vdW50OiBudW1iZXI7XG4gICAgcXVhbnRpdHk6IG51bWJlcjtcbiAgICB1bk1lYXN1cmVVbml0OiBzdHJpbmc7XG4gICAgdW5WYXRDYXRlZ29yeTogc3RyaW5nO1xuICAgIHVuVmF0RXhlbXB0aW9uUmVhc29uOiBzdHJpbmc7XG4gICAgdW5pdFByaWNlOiBudW1iZXI7XG4gICAgdmF0QW1vdW50OiBudW1iZXI7XG4gICAgdmF0UGVyY2VudDogbnVtYmVyO1xuICAgIGV4Y2lzZUFtb3VudDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgQXBpSW52b2ljZVJlc3BvbnNlIHtcbiAgICBjdXJyZW5jeUNvZGU6IHN0cmluZztcbiAgICBkaXNjb3VudEdyb3NzVmFsdWU6IG51bWJlcjtcbiAgICBkaXNjb3VudE5ldFZhbHVlOiBudW1iZXI7XG4gICAgZGlzY291bnRWYXRWYWx1ZTogbnVtYmVyO1xuICAgIGRpc2NvdW50VmFsdWVPbk5ldDogYm9vbGVhbjtcbiAgICBleGNpc2VBbW91bnQ6IG51bWJlcjtcbiAgICBkb2N1bWVudERhdGU6IG51bWJlcjtcbiAgICBkdWVEYXRlOiBudW1iZXI7XG4gICAgZXhjaGFuZ2VSYXRlOiBudW1iZXI7XG4gICAgZ3Jvc3NBbW91bnQ6IG51bWJlcjtcbiAgICBuZXRBbW91bnQ6IG51bWJlcjtcbiAgICBudW1iZXI6IG51bWJlcjtcbiAgICBvcmlnaW5hbE5ldEFtb3VudDogbnVtYmVyO1xuICAgIG9yaWdpbmFsVmF0QW1vdW50OiBudW1iZXI7XG4gICAgcGFydG5lcjoge1xuICAgICAgICBhZGRyZXNzRGV0YWlsczogc3RyaW5nO1xuICAgICAgICBjaXR5TmFtZTogc3RyaW5nO1xuICAgICAgICBjb3VudHJ5Q29kZTogc3RyaW5nO1xuICAgICAgICBjb3VudHJ5TmFtZTogc3RyaW5nO1xuICAgICAgICBjb3VudHlDb2RlOiBzdHJpbmc7XG4gICAgICAgIGNvdW50eU5hbWU6IHN0cmluZztcbiAgICAgICAgaWRlbnRpZmljYXRpb25OdW1iZXI6IHN0cmluZztcbiAgICAgICAgaXNMZWdhbFBlcnNvbjogYm9vbGVhbjtcbiAgICAgICAgcGFydG5lck5hbWU6IHN0cmluZztcbiAgICB9O1xuICAgIGludm9pY2VEZXRhaWxzOiBBcGlJbnZvaWNlSXRlbVtdO1xuICAgIHBheW1lbnRUeXBlSWQ6IG51bWJlcjtcbiAgICByZWZlcmVuY2VDdXJyZW5jeUNvZGU6IHN0cmluZztcbiAgICBzZXJpZXM6IHN0cmluZztcbiAgICBzdGF0dXM6IHN0cmluZztcbiAgICB2YXRBbW91bnQ6IG51bWJlcjtcbiAgICB2YXRPbkNvbGxlY3Rpb246IGJvb2xlYW47XG59XG5cbi8qKlxuICogR2V0IGFuIGludm9pY2UgYnkgZXh0ZXJuYWwgSURcbiAqIEBwYXJhbSBwYXJhbXMgYXMgZGVmaW5lZCBpbiB0aGUgaW50ZXJmYWNlXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxJbnZvaWNlUmVzcG9uc2U+fSAtIFRoZSBpbnZvaWNlIGRldGFpbHNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwaUdldEludm9pY2VCeUV4dGVybmFsSWQocGFyYW1zOiBWaWV3SW52b2ljZVBhcmFtcyk6IFByb21pc2U8SW52b2ljZVJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gYCR7cGFyYW1zLmJhc2VEb21haW59L2FwaS92MS4wL3B1YmxpYy1hcGkvJHtwYXJhbXMuYXBwQ2xpZW50SWR9L2ludm9pY2VzLyR7cGFyYW1zLmludm9pY2VJZH1gO1xuXG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5nZXQ8QXBpSW52b2ljZVJlc3BvbnNlPih1cmwsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7cGFyYW1zLmJlYXJlclRva2VufWAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGltZW91dDogSFRUUF9SRVFVRVNUX1RJTUVPVVRfTVMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlT2JqZWN0ID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgY29uc3QgYWxsSXRlbXM6IEl0ZW1bXSA9IHJlc3BvbnNlT2JqZWN0Lmludm9pY2VEZXRhaWxzLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgICBkaXNjb3VudEdyb3NzVmFsdWU6IGl0ZW0uZGlzY291bnRHcm9zc1ZhbHVlLFxuICAgICAgICAgICAgZGlzY291bnROZXRWYWx1ZTogaXRlbS5kaXNjb3VudE5ldFZhbHVlLFxuICAgICAgICAgICAgZGlzY291bnRWYXRWYWx1ZTogaXRlbS5kaXNjb3VudFZhdFZhbHVlLFxuICAgICAgICAgICAgZGlzY291bnRWYWx1ZU9uTmV0OiBpdGVtLmRpc2NvdW50VmFsdWVPbk5ldCxcbiAgICAgICAgICAgIGdyb3NzQW1vdW50OiBpdGVtLmdyb3NzQW1vdW50LFxuICAgICAgICAgICAgaXRlbUNvZGU6IGl0ZW0uaXRlbUNvZGUsXG4gICAgICAgICAgICBpdGVtRGVzY3JpcHRpb246IGl0ZW0uaXRlbURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgaXRlbUV4dGVybmFsSWQ6IGl0ZW0uaXRlbUV4dGVybmFsSWQsXG4gICAgICAgICAgICBpdGVtTmFtZTogaXRlbS5pdGVtTmFtZSxcbiAgICAgICAgICAgIG1lYXN1cmVVbml0SWQ6IGl0ZW0ubWVhc3VyZVVuaXRJZCxcbiAgICAgICAgICAgIG5ldEFtb3VudDogaXRlbS5uZXRBbW91bnQsXG4gICAgICAgICAgICBvcmlnaW5hbE5ldEFtb3VudDogaXRlbS5vcmlnaW5hbE5ldEFtb3VudCxcbiAgICAgICAgICAgIG9yaWdpbmFsVmF0QW1vdW50OiBpdGVtLm9yaWdpbmFsVmF0QW1vdW50LFxuICAgICAgICAgICAgcXVhbnRpdHk6IGl0ZW0ucXVhbnRpdHksXG4gICAgICAgICAgICB1bk1lYXN1cmVVbml0OiBpdGVtLnVuTWVhc3VyZVVuaXQsXG4gICAgICAgICAgICB1blZhdENhdGVnb3J5OiBpdGVtLnVuVmF0Q2F0ZWdvcnksXG4gICAgICAgICAgICB1blZhdEV4ZW1wdGlvblJlYXNvbjogaXRlbS51blZhdEV4ZW1wdGlvblJlYXNvbixcbiAgICAgICAgICAgIHVuaXRQcmljZTogaXRlbS51bml0UHJpY2UsXG4gICAgICAgICAgICB2YXRBbW91bnQ6IGl0ZW0udmF0QW1vdW50LFxuICAgICAgICAgICAgdmF0UGVyY2VudDogaXRlbS52YXRQZXJjZW50LFxuICAgICAgICAgICAgZXhjaXNlQW1vdW50OiBpdGVtLmV4Y2lzZUFtb3VudCxcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdDogSW52b2ljZVJlc3BvbnNlID0ge1xuICAgICAgICAgICAgY3VycmVuY3lDb2RlOiByZXNwb25zZU9iamVjdC5jdXJyZW5jeUNvZGUsXG4gICAgICAgICAgICBkaXNjb3VudEdyb3NzVmFsdWU6IHJlc3BvbnNlT2JqZWN0LmRpc2NvdW50R3Jvc3NWYWx1ZSxcbiAgICAgICAgICAgIGRpc2NvdW50TmV0VmFsdWU6IHJlc3BvbnNlT2JqZWN0LmRpc2NvdW50TmV0VmFsdWUsXG4gICAgICAgICAgICBkaXNjb3VudFZhdFZhbHVlOiByZXNwb25zZU9iamVjdC5kaXNjb3VudFZhdFZhbHVlLFxuICAgICAgICAgICAgZGlzY291bnRWYWx1ZU9uTmV0OiByZXNwb25zZU9iamVjdC5kaXNjb3VudFZhbHVlT25OZXQsXG4gICAgICAgICAgICBleGNpc2VBbW91bnQ6IHJlc3BvbnNlT2JqZWN0LmV4Y2lzZUFtb3VudCxcbiAgICAgICAgICAgIGRvY3VtZW50RGF0ZTogcmVzcG9uc2VPYmplY3QuZG9jdW1lbnREYXRlLFxuICAgICAgICAgICAgZHVlRGF0ZTogcmVzcG9uc2VPYmplY3QuZHVlRGF0ZSxcbiAgICAgICAgICAgIGV4Y2hhbmdlUmF0ZTogcmVzcG9uc2VPYmplY3QuZXhjaGFuZ2VSYXRlLFxuICAgICAgICAgICAgZ3Jvc3NBbW91bnQ6IHJlc3BvbnNlT2JqZWN0Lmdyb3NzQW1vdW50LFxuICAgICAgICAgICAgbmV0QW1vdW50OiByZXNwb25zZU9iamVjdC5uZXRBbW91bnQsXG4gICAgICAgICAgICBudW1iZXI6IHJlc3BvbnNlT2JqZWN0Lm51bWJlcixcbiAgICAgICAgICAgIG9yaWdpbmFsTmV0QW1vdW50OiByZXNwb25zZU9iamVjdC5vcmlnaW5hbE5ldEFtb3VudCxcbiAgICAgICAgICAgIG9yaWdpbmFsVmF0QW1vdW50OiByZXNwb25zZU9iamVjdC5vcmlnaW5hbFZhdEFtb3VudCxcbiAgICAgICAgICAgIHBhcnRuZXI6IHtcbiAgICAgICAgICAgICAgICBhZGRyZXNzRGV0YWlsczogcmVzcG9uc2VPYmplY3QucGFydG5lci5hZGRyZXNzRGV0YWlscyxcbiAgICAgICAgICAgICAgICBjaXR5TmFtZTogcmVzcG9uc2VPYmplY3QucGFydG5lci5jaXR5TmFtZSxcbiAgICAgICAgICAgICAgICBjb3VudHJ5Q29kZTogcmVzcG9uc2VPYmplY3QucGFydG5lci5jb3VudHJ5Q29kZSxcbiAgICAgICAgICAgICAgICBjb3VudHJ5TmFtZTogcmVzcG9uc2VPYmplY3QucGFydG5lci5jb3VudHJ5TmFtZSxcbiAgICAgICAgICAgICAgICBjb3VudHlDb2RlOiByZXNwb25zZU9iamVjdC5wYXJ0bmVyLmNvdW50eUNvZGUsXG4gICAgICAgICAgICAgICAgY291bnR5TmFtZTogcmVzcG9uc2VPYmplY3QucGFydG5lci5jb3VudHlOYW1lLFxuICAgICAgICAgICAgICAgIGlkZW50aWZpY2F0aW9uTnVtYmVyOiByZXNwb25zZU9iamVjdC5wYXJ0bmVyLmlkZW50aWZpY2F0aW9uTnVtYmVyLFxuICAgICAgICAgICAgICAgIGlzTGVnYWxQZXJzb246IHJlc3BvbnNlT2JqZWN0LnBhcnRuZXIuaXNMZWdhbFBlcnNvbixcbiAgICAgICAgICAgICAgICBwYXJ0bmVyTmFtZTogcmVzcG9uc2VPYmplY3QucGFydG5lci5wYXJ0bmVyTmFtZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpdGVtczogYWxsSXRlbXMsXG4gICAgICAgICAgICBwYXltZW50VHlwZUlkOiByZXNwb25zZU9iamVjdC5wYXltZW50VHlwZUlkLFxuICAgICAgICAgICAgcmVmZXJlbmNlQ3VycmVuY3lDb2RlOiByZXNwb25zZU9iamVjdC5yZWZlcmVuY2VDdXJyZW5jeUNvZGUsXG4gICAgICAgICAgICBzZXJpZXM6IHJlc3BvbnNlT2JqZWN0LnNlcmllcyxcbiAgICAgICAgICAgIHN0YXR1czogcmVzcG9uc2VPYmplY3Quc3RhdHVzLFxuICAgICAgICAgICAgdmF0QW1vdW50OiByZXNwb25zZU9iamVjdC52YXRBbW91bnQsXG4gICAgICAgICAgICB2YXRPbkNvbGxlY3Rpb246IHJlc3BvbnNlT2JqZWN0LnZhdE9uQ29sbGVjdGlvbixcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zdCBheGlvc0Vycm9yID0gZXJyb3IgYXMgQXhpb3NFcnJvcjtcbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYXhpb3NFcnJvci5yZXNwb25zZT8uZGF0YSB8fCBheGlvc0Vycm9yLm1lc3NhZ2U7XG4gICAgICAgIGtlZXpMb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICBgRXJyb3IgZW5jb3VudGVyZWQgd2hpbGUgZ2V0dGluZyBpbnZvaWNlIGRldGFpbHMgKGlkOiAke3BhcmFtcy5pbnZvaWNlSWR9KTogJHtKU09OLnN0cmluZ2lmeShlcnJvck1lc3NhZ2UpfWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhyb3cgbmV3IEtlZXpBcGlFcnJvcihcbiAgICAgICAgICAgIGBGYWlsZWQgdG8gZ2V0IGludm9pY2UgZGV0YWlsczogJHtKU09OLnN0cmluZ2lmeShlcnJvck1lc3NhZ2UpfWAsXG4gICAgICAgICAgICBheGlvc0Vycm9yLnJlc3BvbnNlPy5zdGF0dXMsXG4gICAgICAgICAgICBlcnJvclxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.apiCreateItem = apiCreateItem;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const logger_1 = require("../../helpers/logger");
9
+ const KeezError_1 = require("../../errors/KeezError");
10
+ const constants_1 = require("../../config/constants");
11
+ const keezLogger = logger_1.logger.child({ _library: 'KeezWrapper', _method: 'Items' });
12
+ async function apiCreateItem(params) {
13
+ const url = `${params.baseDomain}/api/v1.0/public-api/${params.appClientId}/items`;
14
+ const body = {
15
+ itemName: params.item.itemName,
16
+ itemCode: params.item.itemCode,
17
+ itemDescription: params.item.itemDescription,
18
+ measureUnitId: params.item.measureUnitId,
19
+ unitPrice: params.item.unitPrice,
20
+ vatPercent: params.item.vatPercent,
21
+ vatCategoryCode: params.item.vatCategoryCode,
22
+ vatExemptionReason: params.item.vatExemptionReason,
23
+ isActive: params.item.isActive ?? true,
24
+ };
25
+ try {
26
+ const response = await axios_1.default.post(url, body, {
27
+ headers: {
28
+ Authorization: `Bearer ${params.bearerToken}`,
29
+ 'Content-Type': 'application/json',
30
+ },
31
+ timeout: constants_1.HTTP_REQUEST_TIMEOUT_MS,
32
+ });
33
+ return response.data.externalId;
34
+ }
35
+ catch (error) {
36
+ const axiosError = error;
37
+ const errorMessage = axiosError.response?.data || axiosError.message;
38
+ keezLogger.error(`Error encountered while creating item: ${JSON.stringify(errorMessage)}`);
39
+ throw new KeezError_1.KeezApiError(`Failed to create item: ${JSON.stringify(errorMessage)}`, axiosError.response?.status, error);
40
+ }
41
+ }
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwaS9pdGVtcy9jcmVhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFvQkEsc0NBbUNDO0FBdkRELGtEQUEwQztBQUMxQyw2Q0FBMEM7QUFFMUMsa0RBQWtEO0FBQ2xELGtEQUE2RDtBQUU3RCxNQUFNLFVBQVUsR0FBRyxlQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztBQWN4RSxLQUFLLFVBQVUsYUFBYSxDQUFDLE1BQXdCO0lBQ3hELE1BQU0sR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsd0JBQXdCLE1BQU0sQ0FBQyxXQUFXLFFBQVEsQ0FBQztJQUVuRixNQUFNLElBQUksR0FBRztRQUNULFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVE7UUFDOUIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUTtRQUM5QixlQUFlLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlO1FBQzVDLGFBQWEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWE7UUFDeEMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUztRQUNoQyxVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVO1FBQ2xDLGVBQWUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWU7UUFDNUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0I7UUFDbEQsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUk7S0FDekMsQ0FBQztJQUVGLElBQUksQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBSyxDQUFDLElBQUksQ0FBcUIsR0FBRyxFQUFFLElBQUksRUFBRTtZQUM3RCxPQUFPLEVBQUU7Z0JBQ0wsYUFBYSxFQUFFLFVBQVUsTUFBTSxDQUFDLFdBQVcsRUFBRTtnQkFDN0MsY0FBYyxFQUFFLGtCQUFrQjthQUNyQztZQUNELE9BQU8sRUFBRSxtQ0FBdUI7U0FDbkMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUNwQyxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNiLE1BQU0sVUFBVSxHQUFHLEtBQW1CLENBQUM7UUFDdkMsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUNyRSxVQUFVLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzRixNQUFNLElBQUksd0JBQVksQ0FDbEIsMEJBQTBCLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFDeEQsVUFBVSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQzNCLEtBQUssQ0FDUixDQUFDO0lBQ04sQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MsIHsgQXhpb3NFcnJvciB9IGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJ0AvaGVscGVycy9sb2dnZXInO1xuaW1wb3J0IHsgQ3JlYXRlSXRlbVJlcXVlc3QgfSBmcm9tICdAL2R0by9pdGVtcyc7XG5pbXBvcnQgeyBLZWV6QXBpRXJyb3IgfSBmcm9tICdAL2Vycm9ycy9LZWV6RXJyb3InO1xuaW1wb3J0IHsgSFRUUF9SRVFVRVNUX1RJTUVPVVRfTVMgfSBmcm9tICdAL2NvbmZpZy9jb25zdGFudHMnO1xuXG5jb25zdCBrZWV6TG9nZ2VyID0gbG9nZ2VyLmNoaWxkKHsgX2xpYnJhcnk6ICdLZWV6V3JhcHBlcicsIF9tZXRob2Q6ICdJdGVtcycgfSk7XG5cbmludGVyZmFjZSBDcmVhdGVJdGVtUGFyYW1zIHtcbiAgICByZWFkb25seSBiYXNlRG9tYWluOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYXBwSWQ6IHN0cmluZztcbiAgICByZWFkb25seSBhcHBDbGllbnRJZDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGJlYXJlclRva2VuOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgaXRlbTogQ3JlYXRlSXRlbVJlcXVlc3Q7XG59XG5cbmludGVyZmFjZSBDcmVhdGVJdGVtUmVzcG9uc2Uge1xuICAgIGV4dGVybmFsSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwaUNyZWF0ZUl0ZW0ocGFyYW1zOiBDcmVhdGVJdGVtUGFyYW1zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB1cmwgPSBgJHtwYXJhbXMuYmFzZURvbWFpbn0vYXBpL3YxLjAvcHVibGljLWFwaS8ke3BhcmFtcy5hcHBDbGllbnRJZH0vaXRlbXNgO1xuXG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgICAgaXRlbU5hbWU6IHBhcmFtcy5pdGVtLml0ZW1OYW1lLFxuICAgICAgICBpdGVtQ29kZTogcGFyYW1zLml0ZW0uaXRlbUNvZGUsXG4gICAgICAgIGl0ZW1EZXNjcmlwdGlvbjogcGFyYW1zLml0ZW0uaXRlbURlc2NyaXB0aW9uLFxuICAgICAgICBtZWFzdXJlVW5pdElkOiBwYXJhbXMuaXRlbS5tZWFzdXJlVW5pdElkLFxuICAgICAgICB1bml0UHJpY2U6IHBhcmFtcy5pdGVtLnVuaXRQcmljZSxcbiAgICAgICAgdmF0UGVyY2VudDogcGFyYW1zLml0ZW0udmF0UGVyY2VudCxcbiAgICAgICAgdmF0Q2F0ZWdvcnlDb2RlOiBwYXJhbXMuaXRlbS52YXRDYXRlZ29yeUNvZGUsXG4gICAgICAgIHZhdEV4ZW1wdGlvblJlYXNvbjogcGFyYW1zLml0ZW0udmF0RXhlbXB0aW9uUmVhc29uLFxuICAgICAgICBpc0FjdGl2ZTogcGFyYW1zLml0ZW0uaXNBY3RpdmUgPz8gdHJ1ZSxcbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5wb3N0PENyZWF0ZUl0ZW1SZXNwb25zZT4odXJsLCBib2R5LCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3BhcmFtcy5iZWFyZXJUb2tlbn1gLFxuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGltZW91dDogSFRUUF9SRVFVRVNUX1RJTUVPVVRfTVMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhLmV4dGVybmFsSWQ7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc3QgYXhpb3NFcnJvciA9IGVycm9yIGFzIEF4aW9zRXJyb3I7XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGF4aW9zRXJyb3IucmVzcG9uc2U/LmRhdGEgfHwgYXhpb3NFcnJvci5tZXNzYWdlO1xuICAgICAgICBrZWV6TG9nZ2VyLmVycm9yKGBFcnJvciBlbmNvdW50ZXJlZCB3aGlsZSBjcmVhdGluZyBpdGVtOiAke0pTT04uc3RyaW5naWZ5KGVycm9yTWVzc2FnZSl9YCk7XG4gICAgICAgIHRocm93IG5ldyBLZWV6QXBpRXJyb3IoXG4gICAgICAgICAgICBgRmFpbGVkIHRvIGNyZWF0ZSBpdGVtOiAke0pTT04uc3RyaW5naWZ5KGVycm9yTWVzc2FnZSl9YCxcbiAgICAgICAgICAgIGF4aW9zRXJyb3IucmVzcG9uc2U/LnN0YXR1cyxcbiAgICAgICAgICAgIGVycm9yXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19