maib-mia-sdk 1.0.0 → 1.0.1
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/README.md +2 -6
- package/package.json +2 -2
- package/src/MaibMiaApiRequest.js +19 -0
- package/src/index.js +0 -2
- package/src/MaibMiaAuthRequest.js +0 -49
package/README.md
CHANGED
|
@@ -20,7 +20,6 @@ Import SDK:
|
|
|
20
20
|
```javascript
|
|
21
21
|
const {
|
|
22
22
|
MaibMiaSdk,
|
|
23
|
-
MaibMiaAuthRequest,
|
|
24
23
|
MaibMiaApiRequest
|
|
25
24
|
} = require('maib-mia-sdk');
|
|
26
25
|
```
|
|
@@ -37,10 +36,8 @@ const MAIB_MIA_SIGNATURE_KEY = process.env.MAIB_MIA_SIGNATURE_KEY;
|
|
|
37
36
|
### Get Access Token with Client ID and Client Secret
|
|
38
37
|
|
|
39
38
|
```javascript
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
.generateToken(MAIB_MIA_CLIENT_ID, MAIB_MIA_CLIENT_SECRET);
|
|
43
|
-
|
|
39
|
+
const maibMiaApiRequest = MaibMiaApiRequest.create(MaibMiaSdk.SANDBOX_BASE_URL);
|
|
40
|
+
const maibMiaAuth = await maibMiaApiRequest.generateToken(MAIB_MIA_CLIENT_ID, MAIB_MIA_CLIENT_SECRET);
|
|
44
41
|
const maibMiaToken = maibMiaAuth.accessToken;
|
|
45
42
|
```
|
|
46
43
|
|
|
@@ -60,7 +57,6 @@ const maibMiaQrData = {
|
|
|
60
57
|
'redirectUrl': 'https://example.com/success'
|
|
61
58
|
};
|
|
62
59
|
|
|
63
|
-
const maibMiaApiRequest = MaibMiaApiRequest.create(MaibMiaSdk.SANDBOX_BASE_URL);
|
|
64
60
|
const maibMiaQrCreateResponse = await maibMiaApiRequest.qrCreate(maibMiaQrData, maibMiaToken);
|
|
65
61
|
```
|
|
66
62
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "maib-mia-sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Node.js SDK for maib MIA API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"maib",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"test:coverage": "jest --coverage",
|
|
37
37
|
"lint": "eslint src/ test/",
|
|
38
38
|
"lint:fix": "eslint src/ test/ --fix",
|
|
39
|
-
"
|
|
39
|
+
"_prepublishOnly": "npm test && npm run lint"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"axios": "^1.6.0"
|
package/src/MaibMiaApiRequest.js
CHANGED
|
@@ -30,6 +30,25 @@ class MaibMiaApiRequest {
|
|
|
30
30
|
}
|
|
31
31
|
//#endregion
|
|
32
32
|
|
|
33
|
+
//#region Auth
|
|
34
|
+
/**
|
|
35
|
+
* Obtain Authentication Token
|
|
36
|
+
* @param {string} clientId - Client ID
|
|
37
|
+
* @param {string} clientSecret - Client secret
|
|
38
|
+
* @returns {Promise<Object>} - Token response object
|
|
39
|
+
* @link https://docs.maibmerchants.md/mia-qr-api/en/endpoints/authentication/obtain-authentication-token
|
|
40
|
+
* @throws {MaibMiaValidationError} - If Client ID or Client secret are invalid
|
|
41
|
+
*/
|
|
42
|
+
async generateToken(clientId, clientSecret) {
|
|
43
|
+
if (!clientId || !clientSecret) {
|
|
44
|
+
throw new MaibMiaValidationError('Client ID and Client Secret are required');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const tokenData = { clientId, clientSecret };
|
|
48
|
+
return this.client._sendRequest('POST', API_ENDPOINTS.AUTH_TOKEN, tokenData);
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
|
|
33
52
|
//#region Operation
|
|
34
53
|
/**
|
|
35
54
|
* Perform API request
|
package/src/index.js
CHANGED
|
@@ -4,13 +4,11 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
const MaibMiaSdk = require('./MaibMiaSdk');
|
|
7
|
-
const MaibMiaAuthRequest = require('./MaibMiaAuthRequest');
|
|
8
7
|
const MaibMiaApiRequest = require('./MaibMiaApiRequest');
|
|
9
8
|
const { MaibMiaError, MaibMiaApiError, MaibMiaValidationError } = require('./errors');
|
|
10
9
|
|
|
11
10
|
module.exports = {
|
|
12
11
|
MaibMiaSdk,
|
|
13
|
-
MaibMiaAuthRequest,
|
|
14
12
|
MaibMiaApiRequest,
|
|
15
13
|
MaibMiaError,
|
|
16
14
|
MaibMiaApiError,
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Node.js SDK for maib MIA API
|
|
3
|
-
* Authentication Request Handler
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
const { API_ENDPOINTS } = require('./constants');
|
|
7
|
-
const { MaibMiaValidationError } = require('./errors');
|
|
8
|
-
|
|
9
|
-
const MaibMiaSdk = require('./MaibMiaSdk');
|
|
10
|
-
|
|
11
|
-
class MaibMiaAuthRequest {
|
|
12
|
-
/**
|
|
13
|
-
* Create a new MaibMiaAuthRequest instance
|
|
14
|
-
* @param {string} baseUrl - maib MIA API base url
|
|
15
|
-
* @param {number} timeout - API request timeout in milliseconds
|
|
16
|
-
*/
|
|
17
|
-
constructor(baseUrl = MaibMiaSdk.DEFAULT_BASE_URL, timeout = MaibMiaSdk.DEFAULT_TIMEOUT) {
|
|
18
|
-
this.client = new MaibMiaSdk(baseUrl, timeout);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Static factory method to create an instance
|
|
23
|
-
* @param {string} baseUrl - maib MIA API base url
|
|
24
|
-
* @param {number} timeout - API request timeout in milliseconds
|
|
25
|
-
* @returns {MaibMiaAuthRequest}
|
|
26
|
-
*/
|
|
27
|
-
static create(baseUrl = MaibMiaSdk.DEFAULT_BASE_URL, timeout = MaibMiaSdk.DEFAULT_TIMEOUT) {
|
|
28
|
-
return new MaibMiaAuthRequest(baseUrl, timeout);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Obtain Authentication Token
|
|
33
|
-
* @param {string} clientId - Client ID
|
|
34
|
-
* @param {string} clientSecret - Client secret
|
|
35
|
-
* @returns {Promise<Object>} - Token response object
|
|
36
|
-
* @link https://docs.maibmerchants.md/mia-qr-api/en/endpoints/authentication/obtain-authentication-token
|
|
37
|
-
* @throws {MaibMiaValidationError} - If Client ID or Client secret are invalid
|
|
38
|
-
*/
|
|
39
|
-
async generateToken(clientId, clientSecret) {
|
|
40
|
-
if (!clientId || !clientSecret) {
|
|
41
|
-
throw new MaibMiaValidationError('Client ID and Client Secret are required');
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const tokenData = { clientId, clientSecret };
|
|
45
|
-
return this.client._sendRequest('POST', API_ENDPOINTS.AUTH_TOKEN, tokenData);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
module.exports = MaibMiaAuthRequest;
|