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.
- package/LICENSE +28 -0
- package/README.md +366 -0
- package/dist/coverage/lcov-report/block-navigation.js +71 -0
- package/dist/coverage/lcov-report/prettify.js +478 -0
- package/dist/coverage/lcov-report/sorter.js +177 -0
- package/dist/eslint.config.js +56 -0
- package/dist/jest.config.cjs +13 -0
- package/dist/jest.config.js +13 -0
- package/dist/src/api/__tests__/index.test.js +52 -0
- package/dist/src/api/authorise.js +48 -0
- package/dist/src/api/invoices/cancel.js +33 -0
- package/dist/src/api/invoices/create.js +97 -0
- package/dist/src/api/invoices/delete.js +33 -0
- package/dist/src/api/invoices/downloadPdf.js +31 -0
- package/dist/src/api/invoices/getAll.js +84 -0
- package/dist/src/api/invoices/sendMail.js +59 -0
- package/dist/src/api/invoices/submitEfactura.js +34 -0
- package/dist/src/api/invoices/update.js +61 -0
- package/dist/src/api/invoices/validate.js +39 -0
- package/dist/src/api/invoices/view.js +93 -0
- package/dist/src/api/items/create.js +42 -0
- package/dist/src/api/items/getAll.js +74 -0
- package/dist/src/api/items/getById.js +46 -0
- package/dist/src/api/items/index.js +14 -0
- package/dist/src/api/items/patch.js +49 -0
- package/dist/src/api/items/update.js +41 -0
- package/dist/src/config/constants.js +23 -0
- package/dist/src/config/constructorParam.js +3 -0
- package/dist/src/config/measureUnit.js +22 -0
- package/dist/src/config/paymentType.js +17 -0
- package/dist/src/config/paymentType.js.js +16 -0
- package/dist/src/dto/allInvoicesResponse.js +3 -0
- package/dist/src/dto/authResponse.js +3 -0
- package/dist/src/dto/common/index.js +3 -0
- package/dist/src/dto/common/paginationParams.js +3 -0
- package/dist/src/dto/createInvoiceRequest.js +3 -0
- package/dist/src/dto/invoiceResponse.js +3 -0
- package/dist/src/dto/invoices/index.js +3 -0
- package/dist/src/dto/invoices/invoiceFilterParams.js +3 -0
- package/dist/src/dto/invoices/invoiceRequestV2.js +3 -0
- package/dist/src/dto/invoices/sendInvoiceParams.js +3 -0
- package/dist/src/dto/items/allItemsResponse.js +3 -0
- package/dist/src/dto/items/index.js +3 -0
- package/dist/src/dto/items/itemRequest.js +3 -0
- package/dist/src/dto/items/itemResponse.js +3 -0
- package/dist/src/errors/KeezError.js +27 -0
- package/dist/src/helpers/logger.js +15 -0
- package/dist/src/index.js +15 -0
- package/dist/src/keezApi.js +283 -0
- package/dist/tests/additional-coverage.test.js +351 -0
- package/dist/tests/edge-cases.test.js +353 -0
- package/dist/tests/error-handling.test.js +224 -0
- package/dist/tests/filter-params.test.js +267 -0
- package/dist/tests/index.test.js +493 -0
- package/dist/tests/invoices-extended.test.js +168 -0
- package/dist/tests/items.test.js +142 -0
- package/dist/types/coverage/lcov-report/block-navigation.d.ts +1 -0
- package/dist/types/coverage/lcov-report/prettify.d.ts +0 -0
- package/dist/types/coverage/lcov-report/sorter.d.ts +1 -0
- package/dist/types/eslint.config.d.ts +2 -0
- package/dist/types/jest.config.d.cts +9 -0
- package/dist/types/jest.config.d.ts +9 -0
- package/dist/types/src/api/__tests__/index.test.d.ts +1 -0
- package/dist/types/src/api/authorise.d.ts +18 -0
- package/dist/types/src/api/invoices/cancel.d.ts +9 -0
- package/dist/types/src/api/invoices/create.d.ts +22 -0
- package/dist/types/src/api/invoices/delete.d.ts +9 -0
- package/dist/types/src/api/invoices/downloadPdf.d.ts +8 -0
- package/dist/types/src/api/invoices/getAll.d.ts +22 -0
- package/dist/types/src/api/invoices/sendMail.d.ts +24 -0
- package/dist/types/src/api/invoices/submitEfactura.d.ts +9 -0
- package/dist/types/src/api/invoices/update.d.ts +11 -0
- package/dist/types/src/api/invoices/validate.d.ts +21 -0
- package/dist/types/src/api/invoices/view.d.ts +22 -0
- package/dist/types/src/api/items/create.d.ts +10 -0
- package/dist/types/src/api/items/getAll.d.ts +10 -0
- package/dist/types/src/api/items/getById.d.ts +10 -0
- package/dist/types/src/api/items/index.d.ts +5 -0
- package/dist/types/src/api/items/patch.d.ts +11 -0
- package/dist/types/src/api/items/update.d.ts +11 -0
- package/dist/types/src/config/constants.d.ts +13 -0
- package/dist/types/src/config/constructorParam.d.ts +6 -0
- package/dist/types/src/config/measureUnit.d.ts +17 -0
- package/dist/types/src/config/paymentType.d.ts +12 -0
- package/dist/types/src/config/paymentType.js.d.ts +11 -0
- package/dist/types/src/dto/allInvoicesResponse.d.ts +21 -0
- package/dist/types/src/dto/authResponse.d.ts +7 -0
- package/dist/types/src/dto/common/index.d.ts +1 -0
- package/dist/types/src/dto/common/paginationParams.d.ts +4 -0
- package/dist/types/src/dto/createInvoiceRequest.d.ts +34 -0
- package/dist/types/src/dto/invoiceResponse.d.ts +48 -0
- package/dist/types/src/dto/invoices/index.d.ts +3 -0
- package/dist/types/src/dto/invoices/invoiceFilterParams.d.ts +8 -0
- package/dist/types/src/dto/invoices/invoiceRequestV2.d.ts +23 -0
- package/dist/types/src/dto/invoices/sendInvoiceParams.d.ts +5 -0
- package/dist/types/src/dto/items/allItemsResponse.d.ts +13 -0
- package/dist/types/src/dto/items/index.d.ts +3 -0
- package/dist/types/src/dto/items/itemRequest.d.ts +34 -0
- package/dist/types/src/dto/items/itemResponse.d.ts +15 -0
- package/dist/types/src/errors/KeezError.d.ts +11 -0
- package/dist/types/src/helpers/logger.d.ts +2 -0
- package/dist/types/src/index.d.ts +11 -0
- package/dist/types/src/keezApi.d.ts +114 -0
- package/dist/types/tests/additional-coverage.test.d.ts +1 -0
- package/dist/types/tests/edge-cases.test.d.ts +1 -0
- package/dist/types/tests/error-handling.test.d.ts +1 -0
- package/dist/types/tests/filter-params.test.d.ts +1 -0
- package/dist/types/tests/index.test.d.ts +1 -0
- package/dist/types/tests/invoices-extended.test.d.ts +1 -0
- package/dist/types/tests/items.test.d.ts +1 -0
- 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
|