docta-package 1.2.81 → 1.2.87
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/build/enums/session.status.d.ts +6 -3
- package/build/enums/session.status.js +6 -3
- package/build/enums/status-codes.d.ts +2 -1
- package/build/enums/status-codes.js +2 -1
- package/build/enums/tranzak.d.ts +3 -0
- package/build/enums/tranzak.js +5 -1
- package/build/interfaces/tranzak.api.response.d.ts +61 -1
- package/build/middleware/errorHandler.js +21 -0
- package/build/models/session.js +1 -1
- package/package.json +2 -1
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export declare enum SessionStatus {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
CREATED = "CREATED",
|
|
3
|
+
AWAITING_PAYMENT_CONFIRMATION = "AWAITING_PAYMENT_CONFIRMATION",
|
|
4
|
+
PAID = "PAID",
|
|
5
|
+
CANCELLED = "CANCELLED",
|
|
6
|
+
CANCELLED_BY_DOCTOR = "CANCELLED_BY_DOCTOR",
|
|
7
|
+
CANCELLED_DUE_TO_TIME_OUT = "CANCELLED_DUE_TO_TIME_OUT"
|
|
5
8
|
}
|
|
@@ -3,7 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SessionStatus = void 0;
|
|
4
4
|
var SessionStatus;
|
|
5
5
|
(function (SessionStatus) {
|
|
6
|
-
SessionStatus["
|
|
7
|
-
SessionStatus["
|
|
8
|
-
SessionStatus["
|
|
6
|
+
SessionStatus["CREATED"] = "CREATED";
|
|
7
|
+
SessionStatus["AWAITING_PAYMENT_CONFIRMATION"] = "AWAITING_PAYMENT_CONFIRMATION";
|
|
8
|
+
SessionStatus["PAID"] = "PAID";
|
|
9
|
+
SessionStatus["CANCELLED"] = "CANCELLED";
|
|
10
|
+
SessionStatus["CANCELLED_BY_DOCTOR"] = "CANCELLED_BY_DOCTOR";
|
|
11
|
+
SessionStatus["CANCELLED_DUE_TO_TIME_OUT"] = "CANCELLED_DUE_TO_TIME_OUT";
|
|
9
12
|
})(SessionStatus || (exports.SessionStatus = SessionStatus = {}));
|
|
@@ -35,8 +35,9 @@ export declare enum EnumStatusCode {
|
|
|
35
35
|
PERIOD_PASSED = "PERIOD_PASSED",
|
|
36
36
|
PERIOD_TOO_CLOSE_TO_START = "PERIOD_TOO_CLOSE_TO_START",
|
|
37
37
|
PAYMENT_ERROR = "PAYMENT_ERROR",
|
|
38
|
+
TIMEOUT = "TIMEOUT",
|
|
38
39
|
SESSION_NOT_FOUND = "SESSION_NOT_FOUND",
|
|
39
40
|
TOO_LATE_TO_PAY = "TOO_LATE_TO_PAY",
|
|
40
41
|
SESSION_PAID_ALREADY = "SESSION_PAID_ALREADY",
|
|
41
|
-
|
|
42
|
+
CAN_ONLY_PAY_FOR_CREATED_OR_AWAITING_PAYMENT_CONFIRMATION_SESSION = "CAN_ONLY_PAY_FOR_CREATED_OR_AWAITING_PAYMENT_CONFIRMATION_SESSION"
|
|
42
43
|
}
|
|
@@ -39,8 +39,9 @@ var EnumStatusCode;
|
|
|
39
39
|
EnumStatusCode["PERIOD_PASSED"] = "PERIOD_PASSED";
|
|
40
40
|
EnumStatusCode["PERIOD_TOO_CLOSE_TO_START"] = "PERIOD_TOO_CLOSE_TO_START";
|
|
41
41
|
EnumStatusCode["PAYMENT_ERROR"] = "PAYMENT_ERROR";
|
|
42
|
+
EnumStatusCode["TIMEOUT"] = "TIMEOUT";
|
|
42
43
|
EnumStatusCode["SESSION_NOT_FOUND"] = "SESSION_NOT_FOUND";
|
|
43
44
|
EnumStatusCode["TOO_LATE_TO_PAY"] = "TOO_LATE_TO_PAY";
|
|
44
45
|
EnumStatusCode["SESSION_PAID_ALREADY"] = "SESSION_PAID_ALREADY";
|
|
45
|
-
EnumStatusCode["
|
|
46
|
+
EnumStatusCode["CAN_ONLY_PAY_FOR_CREATED_OR_AWAITING_PAYMENT_CONFIRMATION_SESSION"] = "CAN_ONLY_PAY_FOR_CREATED_OR_AWAITING_PAYMENT_CONFIRMATION_SESSION";
|
|
46
47
|
})(EnumStatusCode || (exports.EnumStatusCode = EnumStatusCode = {}));
|
package/build/enums/tranzak.d.ts
CHANGED
package/build/enums/tranzak.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EnumTranzakPaymentStatus = exports.EnumTranzakCurrency = void 0;
|
|
3
|
+
exports.EnumTranzakEventType = exports.EnumTranzakPaymentStatus = exports.EnumTranzakCurrency = void 0;
|
|
4
4
|
var EnumTranzakCurrency;
|
|
5
5
|
(function (EnumTranzakCurrency) {
|
|
6
6
|
EnumTranzakCurrency["XAF"] = "XAF";
|
|
@@ -16,3 +16,7 @@ var EnumTranzakPaymentStatus;
|
|
|
16
16
|
EnumTranzakPaymentStatus["CANCELLED_REFUNDED"] = "CANCELLED/REFUNDED";
|
|
17
17
|
EnumTranzakPaymentStatus["PAYER_REDIRECT_REQUIRED"] = "PAYER_REDIRECT_REQUIRED";
|
|
18
18
|
})(EnumTranzakPaymentStatus || (exports.EnumTranzakPaymentStatus = EnumTranzakPaymentStatus = {}));
|
|
19
|
+
var EnumTranzakEventType;
|
|
20
|
+
(function (EnumTranzakEventType) {
|
|
21
|
+
EnumTranzakEventType["REQUEST_COMPLETED"] = "REQUEST.COMPLETED";
|
|
22
|
+
})(EnumTranzakEventType || (exports.EnumTranzakEventType = EnumTranzakEventType = {}));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EnumTranzakCurrency, EnumTranzakPaymentStatus } from "../enums/tranzak";
|
|
1
|
+
import { EnumTranzakCurrency, EnumTranzakEventType, EnumTranzakPaymentStatus } from "../enums/tranzak";
|
|
2
2
|
export type GetPaymentTokenResponseData = {
|
|
3
3
|
scope: string;
|
|
4
4
|
appId: string;
|
|
@@ -44,3 +44,63 @@ export type TranzakCreatePaymentSessionRequestDto = {
|
|
|
44
44
|
returnUrl: string;
|
|
45
45
|
cancelUrl: string;
|
|
46
46
|
};
|
|
47
|
+
export interface TranzakWebhookResponse {
|
|
48
|
+
name: string;
|
|
49
|
+
version: string;
|
|
50
|
+
eventType: EnumTranzakEventType;
|
|
51
|
+
merchantId: string;
|
|
52
|
+
appId: string;
|
|
53
|
+
resourceId: string;
|
|
54
|
+
resource: TranzakWebhookResource;
|
|
55
|
+
creationDateTime: string;
|
|
56
|
+
webhookId: string;
|
|
57
|
+
authKey: string;
|
|
58
|
+
}
|
|
59
|
+
interface TranzakWebhookResource {
|
|
60
|
+
requestId: string;
|
|
61
|
+
amount: number;
|
|
62
|
+
currencyCode: EnumTranzakCurrency;
|
|
63
|
+
description: string;
|
|
64
|
+
mobileWalletNumber: string | null;
|
|
65
|
+
status: EnumTranzakPaymentStatus;
|
|
66
|
+
transactionStatus: EnumTranzakPaymentStatus;
|
|
67
|
+
createdAt: string;
|
|
68
|
+
mchTransactionRef: string;
|
|
69
|
+
appId: string;
|
|
70
|
+
payerNote: string;
|
|
71
|
+
serviceDiscountAmount: number | null;
|
|
72
|
+
receivingEntityName: string | null;
|
|
73
|
+
transactionTag: string | null;
|
|
74
|
+
transactionId?: string;
|
|
75
|
+
transactionTime?: string;
|
|
76
|
+
partnerTransactionId?: string;
|
|
77
|
+
payer?: {
|
|
78
|
+
isGuest: boolean;
|
|
79
|
+
userId: string;
|
|
80
|
+
name: string;
|
|
81
|
+
paymentMethod: string;
|
|
82
|
+
currencyCode: string;
|
|
83
|
+
countryCode: string;
|
|
84
|
+
accountId: string;
|
|
85
|
+
accountName: string;
|
|
86
|
+
email: string | null;
|
|
87
|
+
amount: number;
|
|
88
|
+
discount: number;
|
|
89
|
+
fee: number;
|
|
90
|
+
netAmountPaid: number;
|
|
91
|
+
};
|
|
92
|
+
merchant?: {
|
|
93
|
+
currencyCode: string;
|
|
94
|
+
amount: number;
|
|
95
|
+
fee: number;
|
|
96
|
+
netAmountReceived: number;
|
|
97
|
+
accountId: string;
|
|
98
|
+
};
|
|
99
|
+
links: {
|
|
100
|
+
returnUrl: string;
|
|
101
|
+
cancelUrl: string;
|
|
102
|
+
};
|
|
103
|
+
errorCode?: number;
|
|
104
|
+
errorMessage?: string;
|
|
105
|
+
}
|
|
106
|
+
export {};
|
|
@@ -1,14 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.errorHandler = void 0;
|
|
4
7
|
const errors_1 = require("../errors");
|
|
5
8
|
const enums_1 = require("../enums");
|
|
6
9
|
const utils_1 = require("../utils");
|
|
10
|
+
const axios_1 = __importDefault(require("axios"));
|
|
7
11
|
const errorHandler = (err, req, res, next) => {
|
|
12
|
+
var _a, _b, _c;
|
|
8
13
|
if (err instanceof errors_1.CustomError) {
|
|
9
14
|
res.status(err.statusCode).json(err.serializeErrors());
|
|
10
15
|
return;
|
|
11
16
|
}
|
|
17
|
+
// Handle only Axios timeouts
|
|
18
|
+
if (axios_1.default.isAxiosError(err) && err.code === "ECONNABORTED") {
|
|
19
|
+
const axiosError = err;
|
|
20
|
+
utils_1.logger.error("Axios timeout error", {
|
|
21
|
+
message: err.message,
|
|
22
|
+
url: (_a = axiosError.config) === null || _a === void 0 ? void 0 : _a.url,
|
|
23
|
+
method: (_b = axiosError.config) === null || _b === void 0 ? void 0 : _b.method,
|
|
24
|
+
timeout: (_c = axiosError.config) === null || _c === void 0 ? void 0 : _c.timeout,
|
|
25
|
+
path: req.originalUrl,
|
|
26
|
+
});
|
|
27
|
+
res.status(504).json({
|
|
28
|
+
code: enums_1.EnumStatusCode.TIMEOUT,
|
|
29
|
+
message: "Payment request timed out",
|
|
30
|
+
});
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
12
33
|
// Log the error with stack trace and request info
|
|
13
34
|
utils_1.logger.error("Unhandled error", {
|
|
14
35
|
message: err.message,
|
package/build/models/session.js
CHANGED
|
@@ -25,7 +25,7 @@ const SessionSchema = new mongoose_1.Schema(Object.assign(Object.assign({}, base
|
|
|
25
25
|
}, status: {
|
|
26
26
|
type: String,
|
|
27
27
|
enum: Object.values(session_status_1.SessionStatus),
|
|
28
|
-
default: session_status_1.SessionStatus.
|
|
28
|
+
default: session_status_1.SessionStatus.CREATED,
|
|
29
29
|
required: true,
|
|
30
30
|
}, pricing: {
|
|
31
31
|
totalPrice: { type: Number, required: true },
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "docta-package",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.87",
|
|
4
4
|
"description": "This package will contail all the required files to run the docta micro-service app",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"@types/amqplib": "^0.10.7",
|
|
33
33
|
"@types/nodemailer": "^7.0.2",
|
|
34
34
|
"amqplib": "^0.10.9",
|
|
35
|
+
"axios": "^1.13.2",
|
|
35
36
|
"bcryptjs": "^3.0.2",
|
|
36
37
|
"class-transformer": "^0.5.1",
|
|
37
38
|
"class-validator": "^0.14.2",
|