@grtsnx/payba3 1.0.0 → 2.0.0
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/CHANGELOG.md +20 -1
- package/CONTRIBUTING.md +3 -3
- package/README.md +149 -40
- package/dist/index.d.ts +4 -3
- package/dist/index.js +7 -3
- package/dist/lib/monnify/config/monnify.helper.d.ts +2 -1
- package/dist/lib/monnify/config/monnify.helper.js +18 -18
- package/dist/lib/monnify/config/monnify.helper.js.map +1 -1
- package/dist/lib/monnify/config/monnify.types.d.ts +11 -2
- package/dist/lib/monnify/monnify.service.d.ts +2 -2
- package/dist/lib/monnify/monnify.service.js +17 -21
- package/dist/lib/monnify/monnify.service.js.map +1 -1
- package/dist/lib/mono/config/mono.helper.d.ts +2 -1
- package/dist/lib/mono/config/mono.helper.js +9 -9
- package/dist/lib/mono/config/mono.helper.js.map +1 -1
- package/dist/lib/mono/config/mono.types.d.ts +7 -1
- package/dist/lib/mono/mono.service.d.ts +2 -2
- package/dist/lib/mono/mono.service.js +8 -21
- package/dist/lib/mono/mono.service.js.map +1 -1
- package/dist/lib/opay/config/opay.helper.d.ts +2 -1
- package/dist/lib/opay/config/opay.helper.js +15 -15
- package/dist/lib/opay/config/opay.helper.js.map +1 -1
- package/dist/lib/opay/config/opay.types.d.ts +11 -2
- package/dist/lib/opay/opay.service.d.ts +2 -2
- package/dist/lib/opay/opay.service.js +19 -21
- package/dist/lib/opay/opay.service.js.map +1 -1
- package/dist/lib/payba3.service.d.ts +3 -9
- package/dist/lib/payba3.service.js +17 -32
- package/dist/lib/payba3.service.js.map +1 -1
- package/dist/lib/payba3.types.d.ts +17 -0
- package/dist/lib/payba3.types.js.map +1 -1
- package/dist/lib/paystack/config/paystack.helper.js +7 -9
- package/dist/lib/paystack/config/paystack.helper.js.map +1 -1
- package/dist/lib/paystack/config/paystack.types.d.ts +6 -0
- package/dist/lib/paystack/paystack.service.d.ts +2 -2
- package/dist/lib/paystack/paystack.service.js +19 -28
- package/dist/lib/paystack/paystack.service.js.map +1 -1
- package/dist/lib/qoreid/config/qoreid.helper.js +7 -9
- package/dist/lib/qoreid/config/qoreid.helper.js.map +1 -1
- package/dist/lib/qoreid/config/qoreid.types.d.ts +7 -0
- package/dist/lib/qoreid/qoreid.service.d.ts +2 -2
- package/dist/lib/qoreid/qoreid.service.js +11 -19
- package/dist/lib/qoreid/qoreid.service.js.map +1 -1
- package/dist/lib/safehaven/config/safe.helper.d.ts +3 -1
- package/dist/lib/safehaven/config/safe.helper.js +29 -19
- package/dist/lib/safehaven/config/safe.helper.js.map +1 -1
- package/dist/lib/safehaven/config/safe.types.d.ts +16 -2
- package/dist/lib/safehaven/safe.service.d.ts +2 -4
- package/dist/lib/safehaven/safe.service.js +20 -27
- package/dist/lib/safehaven/safe.service.js.map +1 -1
- package/dist/lib/seerbit/config/seerbit.helper.d.ts +2 -1
- package/dist/lib/seerbit/config/seerbit.helper.js +13 -12
- package/dist/lib/seerbit/config/seerbit.helper.js.map +1 -1
- package/dist/lib/seerbit/config/seerbit.types.d.ts +10 -2
- package/dist/lib/seerbit/seerbit.service.d.ts +2 -2
- package/dist/lib/seerbit/seerbit.service.js +17 -24
- package/dist/lib/seerbit/seerbit.service.js.map +1 -1
- package/dist/lib/shared/index.d.ts +1 -0
- package/dist/lib/shared/index.js +1 -0
- package/dist/lib/shared/index.js.map +1 -1
- package/dist/lib/shared/payba3-error.d.ts +37 -0
- package/dist/lib/shared/payba3-error.js +64 -0
- package/dist/lib/shared/payba3-error.js.map +1 -0
- package/dist/lib/shared/response.helper.d.ts +3 -10
- package/dist/lib/shared/response.helper.js +5 -24
- package/dist/lib/shared/response.helper.js.map +1 -1
- package/llms.txt +12 -9
- package/package.json +9 -9
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildMonoQuery = exports.requestMono = exports.getMonoErrorMessage = exports.parseMonoResponse = exports.buildMonoRequestInit = exports.buildMonoHeaders = exports.assertMonoSecretKey = exports.getMonoSecretKey = exports.getMonoBaseUrl = exports.MONO_BASE_URL = void 0;
|
|
4
|
-
const
|
|
5
|
-
const response_helper_1 = require("../../shared/response.helper");
|
|
3
|
+
exports.buildMonoQuery = exports.requestMono = exports.getMonoErrorMessage = exports.parseMonoResponse = exports.buildMonoRequestInit = exports.buildMonoHeaders = exports.assertMonoSecretKey = exports.getMonoSecretKey = exports.getMonoBaseUrl = exports.normalizeMonoEnvironment = exports.MONO_BASE_URL = void 0;
|
|
4
|
+
const shared_1 = require("../../shared");
|
|
6
5
|
exports.MONO_BASE_URL = 'https://api.withmono.com';
|
|
6
|
+
const normalizeMonoEnvironment = (environment) => environment === 'live' || environment === 'production' ? 'live' : 'sandbox';
|
|
7
|
+
exports.normalizeMonoEnvironment = normalizeMonoEnvironment;
|
|
7
8
|
const getMonoBaseUrl = (baseUrlOverride) => (baseUrlOverride ?? exports.MONO_BASE_URL).replace(/\/+$/, '');
|
|
8
9
|
exports.getMonoBaseUrl = getMonoBaseUrl;
|
|
9
|
-
const getMonoSecretKey = (environment) => (environment === 'live'
|
|
10
|
+
const getMonoSecretKey = (environment) => ((0, exports.normalizeMonoEnvironment)(environment) === 'live'
|
|
10
11
|
? process.env.MONO_LIVE_SECRET_KEY
|
|
11
12
|
: process.env.MONO_SECRET_KEY)?.trim();
|
|
12
13
|
exports.getMonoSecretKey = getMonoSecretKey;
|
|
13
14
|
const assertMonoSecretKey = (secretKey) => {
|
|
14
15
|
if (!secretKey) {
|
|
15
|
-
throw new
|
|
16
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.INTERNAL_SERVER_ERROR, 'MONO_SECRET_KEY is not configured');
|
|
16
17
|
}
|
|
17
18
|
return secretKey;
|
|
18
19
|
};
|
|
@@ -43,7 +44,7 @@ const parseMonoResponse = async (response) => {
|
|
|
43
44
|
}
|
|
44
45
|
};
|
|
45
46
|
exports.parseMonoResponse = parseMonoResponse;
|
|
46
|
-
const getMonoErrorMessage = (error) =>
|
|
47
|
+
const getMonoErrorMessage = (error) => (0, shared_1.getPayba3ErrorMessage)(error, 'Mono request failed');
|
|
47
48
|
exports.getMonoErrorMessage = getMonoErrorMessage;
|
|
48
49
|
const requestMono = async ({ baseUrl, secretKey, endpoint, options = {}, }) => {
|
|
49
50
|
const key = (0, exports.assertMonoSecretKey)(secretKey);
|
|
@@ -52,14 +53,13 @@ const requestMono = async ({ baseUrl, secretKey, endpoint, options = {}, }) => {
|
|
|
52
53
|
response = await fetch(`${baseUrl}${endpoint}`, (0, exports.buildMonoRequestInit)(key, options));
|
|
53
54
|
}
|
|
54
55
|
catch (error) {
|
|
55
|
-
throw new
|
|
56
|
-
message: 'Mono request failed',
|
|
56
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.BAD_GATEWAY, 'Mono request failed', {
|
|
57
57
|
data: (0, exports.getMonoErrorMessage)(error),
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
60
|
const body = await (0, exports.parseMonoResponse)(response);
|
|
61
61
|
if (!response.ok) {
|
|
62
|
-
throw new
|
|
62
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.BAD_REQUEST, 'Mono request failed', body);
|
|
63
63
|
}
|
|
64
64
|
return body;
|
|
65
65
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mono.helper.js","sourceRoot":"","sources":["../../../../src/lib/mono/config/mono.helper.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"mono.helper.js","sourceRoot":"","sources":["../../../../src/lib/mono/config/mono.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
export type MonoEnvironment = 'sandbox' | 'live';
|
|
1
|
+
export type MonoEnvironment = 'sandbox' | 'live' | 'development' | 'production' | 'test' | 'provision';
|
|
2
|
+
export type NormalizedMonoEnvironment = 'sandbox' | 'live';
|
|
3
|
+
export type MonoServiceOptions = {
|
|
4
|
+
environment?: MonoEnvironment;
|
|
5
|
+
baseUrl?: string;
|
|
6
|
+
secretKey?: string;
|
|
7
|
+
};
|
|
2
8
|
export type MonoHttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
3
9
|
export type MonoRequestOptions = {
|
|
4
10
|
method?: MonoHttpMethod;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { MonoBvnLookupInput, MonoDisbursementSourceAccountInput, MonoInitiateAccountLinkingInput, MonoInitiatePaymentInput, MonoRequestOptions, MonoResponse } from './config/mono.types';
|
|
1
|
+
import type { MonoBvnLookupInput, MonoDisbursementSourceAccountInput, MonoInitiateAccountLinkingInput, MonoInitiatePaymentInput, MonoRequestOptions, MonoResponse, MonoServiceOptions } from './config/mono.types';
|
|
2
2
|
export declare class MonoService {
|
|
3
3
|
private readonly baseUrl;
|
|
4
4
|
private readonly secretKey;
|
|
5
|
-
constructor();
|
|
5
|
+
constructor(options?: MonoServiceOptions);
|
|
6
6
|
request<T = unknown>(endpoint: string, options?: MonoRequestOptions): Promise<T>;
|
|
7
7
|
initiateAccountLinking(input: MonoInitiateAccountLinkingInput): Promise<MonoResponse>;
|
|
8
8
|
exchangeToken(code: string): Promise<MonoResponse>;
|
|
@@ -1,25 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.MonoService = void 0;
|
|
13
|
-
const common_1 = require("@nestjs/common");
|
|
14
4
|
const mono_helper_1 = require("./config/mono.helper");
|
|
15
|
-
|
|
5
|
+
class MonoService {
|
|
16
6
|
baseUrl;
|
|
17
7
|
secretKey;
|
|
18
|
-
constructor() {
|
|
19
|
-
const environment = (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
this.
|
|
8
|
+
constructor(options = {}) {
|
|
9
|
+
const environment = (0, mono_helper_1.normalizeMonoEnvironment)(options.environment ??
|
|
10
|
+
process.env.MONO_ENVIRONMENT ??
|
|
11
|
+
process.env.NODE_ENV);
|
|
12
|
+
this.baseUrl = (0, mono_helper_1.getMonoBaseUrl)(options.baseUrl ?? process.env.MONO_BASE_URL);
|
|
13
|
+
this.secretKey = options.secretKey ?? (0, mono_helper_1.getMonoSecretKey)(environment) ?? '';
|
|
23
14
|
}
|
|
24
15
|
async request(endpoint, options) {
|
|
25
16
|
return (0, mono_helper_1.requestMono)({
|
|
@@ -68,10 +59,6 @@ let MonoService = class MonoService {
|
|
|
68
59
|
body: input,
|
|
69
60
|
});
|
|
70
61
|
}
|
|
71
|
-
}
|
|
62
|
+
}
|
|
72
63
|
exports.MonoService = MonoService;
|
|
73
|
-
exports.MonoService = MonoService = __decorate([
|
|
74
|
-
(0, common_1.Injectable)(),
|
|
75
|
-
__metadata("design:paramtypes", [])
|
|
76
|
-
], MonoService);
|
|
77
64
|
//# sourceMappingURL=mono.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mono.service.js","sourceRoot":"","sources":["../../../src/lib/mono/mono.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mono.service.js","sourceRoot":"","sources":["../../../src/lib/mono/mono.service.ts"],"names":[],"mappings":";;;AAAA,sDAM8B;AAY9B,MAAa,WAAW;IACL,OAAO,CAAS;IAChB,SAAS,CAAS;IAEnC,YAAY,UAA8B,EAAE;QAC1C,MAAM,WAAW,GAAG,IAAA,sCAAwB,EAC1C,OAAO,CAAC,WAAW;YACjB,OAAO,CAAC,GAAG,CAAC,gBAAgB;YAC5B,OAAO,CAAC,GAAG,CAAC,QAAQ,CACJ,CAAC;QAErB,IAAI,CAAC,OAAO,GAAG,IAAA,4BAAc,EAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC5E,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAA,8BAAgB,EAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,OAAO,CACX,QAAgB,EAChB,OAA4B;QAE5B,OAAO,IAAA,yBAAW,EAAI;YACpB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ;YACR,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,KAAsC;QAEtC,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE;YAC3C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,IAAI,EAAE;SACf,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,SAAiB,EACjB,QAA+D,EAAE;QAEjE,OAAO,IAAI,CAAC,OAAO,CACjB,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,gBAAgB,IAAA,4BAAc,EAAC,KAAK,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,KAA+B;QAE/B,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE;YAC3C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,+BAA+B,CACnC,KAAyC;QAEzC,OAAO,IAAI,CAAC,OAAO,CAAC,uCAAuC,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,KAAyB;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE;YAC7C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;CACF;AApFD,kCAoFC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { OPayBaseUrls, OPayCredentials, OPayEnvironment, OPayRequestContext, OPayRequestOptions, OPayResponse } from './opay.types';
|
|
1
|
+
import type { OPayBaseUrls, OPayCredentials, OPayEnvironment, NormalizedOPayEnvironment, OPayRequestContext, OPayRequestOptions, OPayResponse } from './opay.types';
|
|
2
2
|
export declare const OPAY_BASE_URLS: OPayBaseUrls;
|
|
3
|
+
export declare const normalizeOPayEnvironment: (environment?: string) => NormalizedOPayEnvironment;
|
|
3
4
|
export declare const getOPayBaseUrl: (environment: OPayEnvironment, baseUrlOverride?: string) => string;
|
|
4
5
|
export declare const getOPayCredentials: (environment: OPayEnvironment) => OPayCredentials;
|
|
5
6
|
export declare const assertOPayCredentials: (credentials: OPayCredentials, authMode: OPayRequestOptions["authMode"]) => void;
|
|
@@ -33,37 +33,38 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.verifyOPayCallbackSignature = exports.requestOPay = exports.getOPayErrorMessage = exports.isOPayResponse = exports.parseOPayResponse = exports.buildOPayRequestInit = exports.buildOPayHeaders = exports.createOPayCallbackSignature = exports.stringifyOPayCallbackPayload = exports.createOPaySignature = exports.stringifyOPayPayload = exports.sortObjectKeys = exports.assertOPayCredentials = exports.getOPayCredentials = exports.getOPayBaseUrl = exports.OPAY_BASE_URLS = void 0;
|
|
36
|
+
exports.verifyOPayCallbackSignature = exports.requestOPay = exports.getOPayErrorMessage = exports.isOPayResponse = exports.parseOPayResponse = exports.buildOPayRequestInit = exports.buildOPayHeaders = exports.createOPayCallbackSignature = exports.stringifyOPayCallbackPayload = exports.createOPaySignature = exports.stringifyOPayPayload = exports.sortObjectKeys = exports.assertOPayCredentials = exports.getOPayCredentials = exports.getOPayBaseUrl = exports.normalizeOPayEnvironment = exports.OPAY_BASE_URLS = void 0;
|
|
37
37
|
const crypto = __importStar(require("crypto"));
|
|
38
|
-
const
|
|
39
|
-
const response_helper_1 = require("../../shared/response.helper");
|
|
38
|
+
const shared_1 = require("../../shared");
|
|
40
39
|
exports.OPAY_BASE_URLS = {
|
|
41
40
|
sandbox: 'https://testapi.opaycheckout.com',
|
|
42
41
|
live: 'https://liveapi.opaycheckout.com',
|
|
43
42
|
};
|
|
44
|
-
const
|
|
43
|
+
const normalizeOPayEnvironment = (environment) => environment === 'live' || environment === 'production' ? 'live' : 'sandbox';
|
|
44
|
+
exports.normalizeOPayEnvironment = normalizeOPayEnvironment;
|
|
45
|
+
const getOPayBaseUrl = (environment, baseUrlOverride) => (baseUrlOverride ?? exports.OPAY_BASE_URLS[(0, exports.normalizeOPayEnvironment)(environment)]).replace(/\/+$/, '');
|
|
45
46
|
exports.getOPayBaseUrl = getOPayBaseUrl;
|
|
46
47
|
const getOPayCredentials = (environment) => ({
|
|
47
|
-
merchantId: (environment === 'live'
|
|
48
|
+
merchantId: ((0, exports.normalizeOPayEnvironment)(environment) === 'live'
|
|
48
49
|
? process.env.OPAY_LIVE_MERCHANT_ID
|
|
49
50
|
: process.env.OPAY_MERCHANT_ID)?.trim() ?? '',
|
|
50
|
-
publicKey: (environment === 'live'
|
|
51
|
+
publicKey: ((0, exports.normalizeOPayEnvironment)(environment) === 'live'
|
|
51
52
|
? process.env.OPAY_LIVE_PUBLIC_KEY
|
|
52
53
|
: process.env.OPAY_PUBLIC_KEY)?.trim() ?? '',
|
|
53
|
-
secretKey: (environment === 'live'
|
|
54
|
+
secretKey: ((0, exports.normalizeOPayEnvironment)(environment) === 'live'
|
|
54
55
|
? process.env.OPAY_LIVE_SECRET_KEY
|
|
55
56
|
: process.env.OPAY_SECRET_KEY)?.trim() ?? '',
|
|
56
57
|
});
|
|
57
58
|
exports.getOPayCredentials = getOPayCredentials;
|
|
58
59
|
const assertOPayCredentials = (credentials, authMode) => {
|
|
59
60
|
if (!credentials.merchantId) {
|
|
60
|
-
throw new
|
|
61
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.INTERNAL_SERVER_ERROR, 'OPAY_MERCHANT_ID is not configured');
|
|
61
62
|
}
|
|
62
63
|
if (authMode === 'publicKey' && !credentials.publicKey) {
|
|
63
|
-
throw new
|
|
64
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.INTERNAL_SERVER_ERROR, 'OPAY_PUBLIC_KEY is not configured');
|
|
64
65
|
}
|
|
65
66
|
if (authMode === 'signature' && !credentials.secretKey) {
|
|
66
|
-
throw new
|
|
67
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.INTERNAL_SERVER_ERROR, 'OPAY_SECRET_KEY is not configured');
|
|
67
68
|
}
|
|
68
69
|
};
|
|
69
70
|
exports.assertOPayCredentials = assertOPayCredentials;
|
|
@@ -137,7 +138,7 @@ const isOPayResponse = (value) => typeof value === 'object' &&
|
|
|
137
138
|
'code' in value &&
|
|
138
139
|
'message' in value;
|
|
139
140
|
exports.isOPayResponse = isOPayResponse;
|
|
140
|
-
const getOPayErrorMessage = (error) =>
|
|
141
|
+
const getOPayErrorMessage = (error) => (0, shared_1.getPayba3ErrorMessage)(error, 'OPay request failed');
|
|
141
142
|
exports.getOPayErrorMessage = getOPayErrorMessage;
|
|
142
143
|
const requestOPay = async ({ baseUrl, credentials, endpoint, options, }) => {
|
|
143
144
|
(0, exports.assertOPayCredentials)(credentials, options.authMode);
|
|
@@ -146,17 +147,16 @@ const requestOPay = async ({ baseUrl, credentials, endpoint, options, }) => {
|
|
|
146
147
|
response = await fetch(`${baseUrl}${endpoint}`, (0, exports.buildOPayRequestInit)(credentials, options));
|
|
147
148
|
}
|
|
148
149
|
catch (error) {
|
|
149
|
-
throw new
|
|
150
|
-
message: 'OPay request failed',
|
|
150
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.BAD_GATEWAY, 'OPay request failed', {
|
|
151
151
|
data: (0, exports.getOPayErrorMessage)(error),
|
|
152
152
|
});
|
|
153
153
|
}
|
|
154
154
|
const body = await (0, exports.parseOPayResponse)(response);
|
|
155
155
|
if (!response.ok) {
|
|
156
|
-
throw new
|
|
156
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.BAD_REQUEST, 'OPay request failed', body);
|
|
157
157
|
}
|
|
158
158
|
if ((0, exports.isOPayResponse)(body) && body.code !== '00000') {
|
|
159
|
-
throw new
|
|
159
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.BAD_REQUEST, body.message || 'OPay request failed', body);
|
|
160
160
|
}
|
|
161
161
|
return body;
|
|
162
162
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opay.helper.js","sourceRoot":"","sources":["../../../../src/lib/opay/config/opay.helper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"opay.helper.js","sourceRoot":"","sources":["../../../../src/lib/opay/config/opay.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export type OPayEnvironment = 'sandbox' | 'live';
|
|
1
|
+
export type OPayEnvironment = 'sandbox' | 'live' | 'development' | 'production' | 'test' | 'provision';
|
|
2
|
+
export type NormalizedOPayEnvironment = 'sandbox' | 'live';
|
|
2
3
|
export type OPayHttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
3
4
|
export type OPayAuthMode = 'publicKey' | 'signature';
|
|
4
5
|
export type OPayCredentials = {
|
|
@@ -6,7 +7,15 @@ export type OPayCredentials = {
|
|
|
6
7
|
publicKey: string;
|
|
7
8
|
secretKey: string;
|
|
8
9
|
};
|
|
9
|
-
export type
|
|
10
|
+
export type OPayServiceOptions = {
|
|
11
|
+
environment?: OPayEnvironment;
|
|
12
|
+
baseUrl?: string;
|
|
13
|
+
credentials?: Partial<OPayCredentials>;
|
|
14
|
+
merchantId?: string;
|
|
15
|
+
publicKey?: string;
|
|
16
|
+
secretKey?: string;
|
|
17
|
+
};
|
|
18
|
+
export type OPayBaseUrls = Record<NormalizedOPayEnvironment, string>;
|
|
10
19
|
export type OPayAmount = {
|
|
11
20
|
total: number;
|
|
12
21
|
currency: string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { OPayOtpPayload, OPayPaymentPayload, OPayRefundPayload, OPayRequestOptions, OPayResponse, OPayStatusPayload } from './config/opay.types';
|
|
1
|
+
import type { OPayOtpPayload, OPayPaymentPayload, OPayRefundPayload, OPayRequestOptions, OPayResponse, OPayServiceOptions, OPayStatusPayload } from './config/opay.types';
|
|
2
2
|
export declare class OPayService {
|
|
3
3
|
private readonly baseUrl;
|
|
4
4
|
private readonly credentials;
|
|
5
|
-
constructor();
|
|
5
|
+
constructor(options?: OPayServiceOptions);
|
|
6
6
|
request<T = unknown>(endpoint: string, options: OPayRequestOptions): Promise<T>;
|
|
7
7
|
createCashierPayment(input: OPayPaymentPayload): Promise<OPayResponse>;
|
|
8
8
|
createPayment(input: OPayPaymentPayload): Promise<OPayResponse>;
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.OPayService = void 0;
|
|
13
|
-
const common_1 = require("@nestjs/common");
|
|
14
4
|
const opay_helper_1 = require("./config/opay.helper");
|
|
15
|
-
|
|
5
|
+
class OPayService {
|
|
16
6
|
baseUrl;
|
|
17
7
|
credentials;
|
|
18
|
-
constructor() {
|
|
19
|
-
const environment = (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
8
|
+
constructor(options = {}) {
|
|
9
|
+
const environment = (0, opay_helper_1.normalizeOPayEnvironment)(options.environment ??
|
|
10
|
+
process.env.OPAY_ENVIRONMENT ??
|
|
11
|
+
process.env.NODE_ENV);
|
|
12
|
+
const envCredentials = (0, opay_helper_1.getOPayCredentials)(environment);
|
|
13
|
+
this.baseUrl = (0, opay_helper_1.getOPayBaseUrl)(environment, options.baseUrl ?? process.env.OPAY_BASE_URL);
|
|
14
|
+
this.credentials = {
|
|
15
|
+
merchantId: options.merchantId ??
|
|
16
|
+
options.credentials?.merchantId ??
|
|
17
|
+
envCredentials.merchantId,
|
|
18
|
+
publicKey: options.publicKey ??
|
|
19
|
+
options.credentials?.publicKey ??
|
|
20
|
+
envCredentials.publicKey,
|
|
21
|
+
secretKey: options.secretKey ??
|
|
22
|
+
options.credentials?.secretKey ??
|
|
23
|
+
envCredentials.secretKey,
|
|
24
|
+
};
|
|
23
25
|
}
|
|
24
26
|
async request(endpoint, options) {
|
|
25
27
|
return (0, opay_helper_1.requestOPay)({
|
|
@@ -95,10 +97,6 @@ let OPayService = class OPayService {
|
|
|
95
97
|
verifyCallback(body, signature) {
|
|
96
98
|
return (0, opay_helper_1.verifyOPayCallbackSignature)(body, signature, this.credentials.secretKey);
|
|
97
99
|
}
|
|
98
|
-
}
|
|
100
|
+
}
|
|
99
101
|
exports.OPayService = OPayService;
|
|
100
|
-
exports.OPayService = OPayService = __decorate([
|
|
101
|
-
(0, common_1.Injectable)(),
|
|
102
|
-
__metadata("design:paramtypes", [])
|
|
103
|
-
], OPayService);
|
|
104
102
|
//# sourceMappingURL=opay.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opay.service.js","sourceRoot":"","sources":["../../../src/lib/opay/opay.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"opay.service.js","sourceRoot":"","sources":["../../../src/lib/opay/opay.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { MonnifyService } from './monnify/monnify.service';
|
|
3
|
-
import { OPayService } from './opay/opay.service';
|
|
4
|
-
import { PaystackService } from './paystack/paystack.service';
|
|
5
|
-
import { QoreIDService } from './qoreid/qoreid.service';
|
|
6
|
-
import { SafehavenService } from './safehaven/safe.service';
|
|
7
|
-
import { SeerbitService } from './seerbit/seerbit.service';
|
|
8
|
-
import { type Payba3ChannelMap, type Payba3ChannelName } from './payba3.types';
|
|
1
|
+
import { type Payba3Config, type Payba3ChannelMap, type Payba3ChannelName } from './payba3.types';
|
|
9
2
|
export declare class Payba3Service {
|
|
10
3
|
private readonly channels;
|
|
11
|
-
constructor(
|
|
4
|
+
constructor(config?: Payba3Config);
|
|
12
5
|
list(): Payba3ChannelName[];
|
|
13
6
|
has(channel: string): channel is Payba3ChannelName;
|
|
14
7
|
use<T extends Payba3ChannelName>(channel: T): Payba3ChannelMap[T];
|
|
15
8
|
use(channel: string): Payba3ChannelMap[Payba3ChannelName];
|
|
16
9
|
}
|
|
10
|
+
export declare const createPayba3: (config?: Payba3Config) => Payba3Service;
|
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.Payba3Service = void 0;
|
|
13
|
-
const common_1 = require("@nestjs/common");
|
|
3
|
+
exports.createPayba3 = exports.Payba3Service = void 0;
|
|
14
4
|
const mono_service_1 = require("./mono/mono.service");
|
|
15
5
|
const monnify_service_1 = require("./monnify/monnify.service");
|
|
16
6
|
const opay_service_1 = require("./opay/opay.service");
|
|
@@ -18,18 +8,19 @@ const paystack_service_1 = require("./paystack/paystack.service");
|
|
|
18
8
|
const qoreid_service_1 = require("./qoreid/qoreid.service");
|
|
19
9
|
const safe_service_1 = require("./safehaven/safe.service");
|
|
20
10
|
const seerbit_service_1 = require("./seerbit/seerbit.service");
|
|
11
|
+
const shared_1 = require("./shared");
|
|
21
12
|
const payba3_types_1 = require("./payba3.types");
|
|
22
|
-
|
|
13
|
+
class Payba3Service {
|
|
23
14
|
channels;
|
|
24
|
-
constructor(
|
|
15
|
+
constructor(config = {}) {
|
|
25
16
|
this.channels = {
|
|
26
|
-
mono,
|
|
27
|
-
monnify,
|
|
28
|
-
opay,
|
|
29
|
-
paystack,
|
|
30
|
-
qoreid,
|
|
31
|
-
safehaven,
|
|
32
|
-
seerbit,
|
|
17
|
+
mono: config.channels?.mono ?? new mono_service_1.MonoService(config.mono),
|
|
18
|
+
monnify: config.channels?.monnify ?? new monnify_service_1.MonnifyService(config.monnify),
|
|
19
|
+
opay: config.channels?.opay ?? new opay_service_1.OPayService(config.opay),
|
|
20
|
+
paystack: config.channels?.paystack ?? new paystack_service_1.PaystackService(config.paystack),
|
|
21
|
+
qoreid: config.channels?.qoreid ?? new qoreid_service_1.QoreIDService(config.qoreid),
|
|
22
|
+
safehaven: config.channels?.safehaven ?? new safe_service_1.SafehavenService(config.safehaven),
|
|
23
|
+
seerbit: config.channels?.seerbit ?? new seerbit_service_1.SeerbitService(config.seerbit),
|
|
33
24
|
};
|
|
34
25
|
}
|
|
35
26
|
list() {
|
|
@@ -40,20 +31,14 @@ let Payba3Service = class Payba3Service {
|
|
|
40
31
|
}
|
|
41
32
|
use(channel) {
|
|
42
33
|
if (!this.has(channel)) {
|
|
43
|
-
throw new
|
|
34
|
+
throw new shared_1.Payba3Error(`Unsupported payment channel: ${channel}`, {
|
|
35
|
+
statusCode: shared_1.PAYBA3_HTTP_STATUS.NOT_FOUND,
|
|
36
|
+
});
|
|
44
37
|
}
|
|
45
38
|
return this.channels[channel];
|
|
46
39
|
}
|
|
47
|
-
}
|
|
40
|
+
}
|
|
48
41
|
exports.Payba3Service = Payba3Service;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
__metadata("design:paramtypes", [mono_service_1.MonoService,
|
|
52
|
-
monnify_service_1.MonnifyService,
|
|
53
|
-
opay_service_1.OPayService,
|
|
54
|
-
paystack_service_1.PaystackService,
|
|
55
|
-
qoreid_service_1.QoreIDService,
|
|
56
|
-
safe_service_1.SafehavenService,
|
|
57
|
-
seerbit_service_1.SeerbitService])
|
|
58
|
-
], Payba3Service);
|
|
42
|
+
const createPayba3 = (config = {}) => new Payba3Service(config);
|
|
43
|
+
exports.createPayba3 = createPayba3;
|
|
59
44
|
//# sourceMappingURL=payba3.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payba3.service.js","sourceRoot":"","sources":["../../src/lib/payba3.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"payba3.service.js","sourceRoot":"","sources":["../../src/lib/payba3.service.ts"],"names":[],"mappings":";;;AAAA,sDAAkD;AAClD,+DAA2D;AAC3D,sDAAkD;AAClD,kEAA8D;AAC9D,4DAAwD;AACxD,2DAA4D;AAC5D,+DAA2D;AAC3D,qCAA2D;AAC3D,iDAKwB;AAExB,MAAa,aAAa;IACP,QAAQ,CAAmB;IAE5C,YAAY,SAAuB,EAAE;QACnC,IAAI,CAAC,QAAQ,GAAG;YACd,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAI,0BAAW,CAAC,MAAM,CAAC,IAAI,CAAC;YAC3D,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI,gCAAc,CAAC,MAAM,CAAC,OAAO,CAAC;YACvE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAI,0BAAW,CAAC,MAAM,CAAC,IAAI,CAAC;YAC3D,QAAQ,EACN,MAAM,CAAC,QAAQ,EAAE,QAAQ,IAAI,IAAI,kCAAe,CAAC,MAAM,CAAC,QAAQ,CAAC;YACnE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI,8BAAa,CAAC,MAAM,CAAC,MAAM,CAAC;YACnE,SAAS,EACP,MAAM,CAAC,QAAQ,EAAE,SAAS,IAAI,IAAI,+BAAgB,CAAC,MAAM,CAAC,SAAS,CAAC;YACtE,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI,gCAAc,CAAC,MAAM,CAAC,OAAO,CAAC;SACxE,CAAC;IACJ,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,8BAAe,CAAC,CAAC;IAC9B,CAAC;IAED,GAAG,CAAC,OAAe;QACjB,OAAO,8BAAe,CAAC,QAAQ,CAAC,OAA4B,CAAC,CAAC;IAChE,CAAC;IAID,GAAG,CAAC,OAAe;QACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,oBAAW,CAAC,gCAAgC,OAAO,EAAE,EAAE;gBAC/D,UAAU,EAAE,2BAAkB,CAAC,SAAS;aACzC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;CACF;AApCD,sCAoCC;AAEM,MAAM,YAAY,GAAG,CAAC,SAAuB,EAAE,EAAiB,EAAE,CACvE,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AADf,QAAA,YAAY,gBACG"}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import type { MonoService } from './mono/mono.service';
|
|
2
|
+
import type { MonoServiceOptions } from './mono/config/mono.types';
|
|
2
3
|
import type { MonnifyService } from './monnify/monnify.service';
|
|
4
|
+
import type { MonnifyServiceOptions } from './monnify/config/monnify.types';
|
|
3
5
|
import type { OPayService } from './opay/opay.service';
|
|
6
|
+
import type { OPayServiceOptions } from './opay/config/opay.types';
|
|
4
7
|
import type { PaystackService } from './paystack/paystack.service';
|
|
8
|
+
import type { PaystackServiceOptions } from './paystack/config/paystack.types';
|
|
5
9
|
import type { QoreIDService } from './qoreid/qoreid.service';
|
|
10
|
+
import type { QoreIDServiceOptions } from './qoreid/config/qoreid.types';
|
|
6
11
|
import type { SafehavenService } from './safehaven/safe.service';
|
|
12
|
+
import type { SafehavenServiceOptions } from './safehaven/config/safe.types';
|
|
7
13
|
import type { SeerbitService } from './seerbit/seerbit.service';
|
|
14
|
+
import type { SeerbitServiceOptions } from './seerbit/config/seerbit.types';
|
|
8
15
|
export declare const PAYBA3_CHANNELS: readonly ["mono", "monnify", "opay", "paystack", "qoreid", "safehaven", "seerbit"];
|
|
9
16
|
export type Payba3ChannelName = (typeof PAYBA3_CHANNELS)[number];
|
|
10
17
|
export type Payba3ChannelMap = {
|
|
@@ -16,3 +23,13 @@ export type Payba3ChannelMap = {
|
|
|
16
23
|
safehaven: SafehavenService;
|
|
17
24
|
seerbit: SeerbitService;
|
|
18
25
|
};
|
|
26
|
+
export type Payba3Config = {
|
|
27
|
+
mono?: MonoServiceOptions;
|
|
28
|
+
monnify?: MonnifyServiceOptions;
|
|
29
|
+
opay?: OPayServiceOptions;
|
|
30
|
+
paystack?: PaystackServiceOptions;
|
|
31
|
+
qoreid?: QoreIDServiceOptions;
|
|
32
|
+
safehaven?: SafehavenServiceOptions;
|
|
33
|
+
seerbit?: SeerbitServiceOptions;
|
|
34
|
+
channels?: Partial<Payba3ChannelMap>;
|
|
35
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payba3.types.js","sourceRoot":"","sources":["../../src/lib/payba3.types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"payba3.types.js","sourceRoot":"","sources":["../../src/lib/payba3.types.ts"],"names":[],"mappings":";;;AAea,QAAA,eAAe,GAAG;IAC7B,MAAM;IACN,SAAS;IACT,MAAM;IACN,UAAU;IACV,QAAQ;IACR,WAAW;IACX,SAAS;CACD,CAAC"}
|
|
@@ -35,8 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.isTimingSafeEqual = exports.createPaystackSignatureHash = exports.getPaystackSignature = exports.requestPaystack = exports.getPaystackErrorMessage = exports.isPaystackErrorResponse = exports.parsePaystackResponse = exports.assertPaystackSecret = exports.buildPaystackRequestInit = exports.buildPaystackHeaders = exports.getPaystackPreferredBank = exports.getPaystackSecret = exports.normalizePaystackEnvironment = exports.PAYSTACK_BASE_URL = void 0;
|
|
37
37
|
const crypto = __importStar(require("crypto"));
|
|
38
|
-
const
|
|
39
|
-
const response_helper_1 = require("../../shared/response.helper");
|
|
38
|
+
const shared_1 = require("../../shared");
|
|
40
39
|
exports.PAYSTACK_BASE_URL = 'https://api.paystack.co';
|
|
41
40
|
const normalizePaystackEnvironment = (environment) => environment === 'live' || environment === 'production' ? 'live' : 'sandbox';
|
|
42
41
|
exports.normalizePaystackEnvironment = normalizePaystackEnvironment;
|
|
@@ -62,7 +61,7 @@ const buildPaystackRequestInit = (secret, options) => ({
|
|
|
62
61
|
exports.buildPaystackRequestInit = buildPaystackRequestInit;
|
|
63
62
|
const assertPaystackSecret = (secret) => {
|
|
64
63
|
if (!secret) {
|
|
65
|
-
throw new
|
|
64
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.INTERNAL_SERVER_ERROR, 'Paystack secret key not set');
|
|
66
65
|
}
|
|
67
66
|
return secret;
|
|
68
67
|
};
|
|
@@ -84,7 +83,7 @@ const isPaystackErrorResponse = (value) => typeof value === 'object' &&
|
|
|
84
83
|
value !== null &&
|
|
85
84
|
('status' in value || 'message' in value);
|
|
86
85
|
exports.isPaystackErrorResponse = isPaystackErrorResponse;
|
|
87
|
-
const getPaystackErrorMessage = (error) =>
|
|
86
|
+
const getPaystackErrorMessage = (error) => (0, shared_1.getPayba3ErrorMessage)(error, 'Request failed');
|
|
88
87
|
exports.getPaystackErrorMessage = getPaystackErrorMessage;
|
|
89
88
|
const requestPaystack = async ({ baseUrl, secret, endpoint, options = {}, }) => {
|
|
90
89
|
const paystackSecret = (0, exports.assertPaystackSecret)(secret);
|
|
@@ -93,21 +92,20 @@ const requestPaystack = async ({ baseUrl, secret, endpoint, options = {}, }) =>
|
|
|
93
92
|
response = await fetch(`${baseUrl}${endpoint}`, (0, exports.buildPaystackRequestInit)(paystackSecret, options));
|
|
94
93
|
}
|
|
95
94
|
catch (error) {
|
|
96
|
-
throw new
|
|
97
|
-
message: 'Paystack request failed',
|
|
95
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.BAD_GATEWAY, 'Paystack request failed', {
|
|
98
96
|
data: (0, exports.getPaystackErrorMessage)(error),
|
|
99
97
|
});
|
|
100
98
|
}
|
|
101
99
|
const responseBody = await (0, exports.parsePaystackResponse)(response);
|
|
102
100
|
if (response.status === 401) {
|
|
103
|
-
throw new
|
|
101
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.UNAUTHORIZED, 'Unauthorized request to Paystack');
|
|
104
102
|
}
|
|
105
103
|
if (!response.ok) {
|
|
106
104
|
if ((0, exports.isPaystackErrorResponse)(responseBody) &&
|
|
107
105
|
responseBody.status === false) {
|
|
108
|
-
throw new
|
|
106
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.BAD_REQUEST, responseBody.message ?? 'Paystack request failed', responseBody);
|
|
109
107
|
}
|
|
110
|
-
throw new
|
|
108
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.INTERNAL_SERVER_ERROR, 'Request failed', responseBody);
|
|
111
109
|
}
|
|
112
110
|
return responseBody;
|
|
113
111
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paystack.helper.js","sourceRoot":"","sources":["../../../../src/lib/paystack/config/paystack.helper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"paystack.helper.js","sourceRoot":"","sources":["../../../../src/lib/paystack/config/paystack.helper.ts"],"names":[],"mappings":"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"}
|