Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 0 additions & 11 deletions samples/bkmExpress/RetrieveBkmExpressPayment.js

This file was deleted.

17 changes: 17 additions & 0 deletions samples/mealVoucher/CompleteMealVoucherCardTokenization.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
const Craftgate = require('../../dist');

const craftgate = new Craftgate.Client({
apiKey: 'api-key',
secretKey: 'secret-key',
baseUrl: 'https://sandbox-api.craftgate.io'
});

const sessionId = 'session-id';

const request = {
validationCode: '123456'
};

craftgate.mealVoucherCardTokenization().complete(sessionId, request)
.then(result => console.info('Meal voucher card tokenization completed', result))
.catch(err => console.error('Meal voucher card tokenization completion failed', err));
18 changes: 18 additions & 0 deletions samples/mealVoucher/InitMealVoucherCardTokenization.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
const Craftgate = require('../../dist');

const craftgate = new Craftgate.Client({
apiKey: 'api-key',
secretKey: 'secret-key',
baseUrl: 'https://sandbox-api.craftgate.io'
});

const request = {
apmType: Craftgate.Model.ApmType.Setcard,
mealVoucherCardTokenizationData: {
callbackUrl: 'https://www.yourdomain.com/callback'
}
};

craftgate.mealVoucherCardTokenization().init(request)
.then(result => console.info('Meal voucher card tokenization initiated', result))
.catch(err => console.error('Meal voucher card tokenization failed', err));
20 changes: 20 additions & 0 deletions samples/mealVoucher/RegenerateMealVoucherCardTokenization.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
const Craftgate = require('../../dist');

const craftgate = new Craftgate.Client({
apiKey: 'api-key',
secretKey: 'secret-key',
baseUrl: 'https://sandbox-api.craftgate.io'
});

const sessionId = 'session-id';

const request = {
mealVoucherCardTokenizationData: {
cardNumber: '1234567890123456',
gsmNumber: '5555555555'
}
};

craftgate.mealVoucherCardTokenization().regenerate(sessionId, request)
.then(result => console.info('Meal voucher card tokenization regenerated', result))
.catch(err => console.error('Meal voucher card tokenization regeneration failed', err));
7 changes: 7 additions & 0 deletions src/CraftgateClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import HookAdapter from './adapter/HookAdapter';
import InstallmentAdapter from './adapter/InstallmentAdapter';
import JuzdanPaymentAdapter from './adapter/JuzdanPaymentAdapter';
import MasterpassPaymentAdapter from './adapter/MasterpassPaymentAdapter';
import MealVoucherCardTokenizationAdapter from './adapter/MealVoucherCardTokenizationAdapter';
import MerchantAdapter from './adapter/MerchantAdapter';
import MerchantApmAdapter from './adapter/MerchantApmAdapter';
import OnboardingAdapter from './adapter/OnboardingAdapter';
Expand Down Expand Up @@ -36,6 +37,7 @@ export default class CraftgateAdapter extends BaseAdapter {
private _merchantApmAdapter: MerchantApmAdapter;
private _juzdanPaymentAdapter: JuzdanPaymentAdapter;
private _bkmExpressPaymentAdapter: BkmExpressPaymentAdapter;
private _mealVoucherCardTokenizationAdapter: MealVoucherCardTokenizationAdapter;

constructor(options: ClientCreationOptions) {
super(options);
Expand All @@ -56,6 +58,7 @@ export default class CraftgateAdapter extends BaseAdapter {
this._merchantApmAdapter = new MerchantApmAdapter(options);
this._juzdanPaymentAdapter = new JuzdanPaymentAdapter(options);
this._bkmExpressPaymentAdapter = new BkmExpressPaymentAdapter(options);
this._mealVoucherCardTokenizationAdapter = new MealVoucherCardTokenizationAdapter(options);
}

installment(): InstallmentAdapter {
Expand Down Expand Up @@ -125,4 +128,8 @@ export default class CraftgateAdapter extends BaseAdapter {
bkmExpress(): BkmExpressPaymentAdapter {
return this._bkmExpressPaymentAdapter;
}

mealVoucherCardTokenization(): MealVoucherCardTokenizationAdapter {
return this._mealVoucherCardTokenizationAdapter;
}
}
4 changes: 0 additions & 4 deletions src/adapter/BkmExpressPaymentAdapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,6 @@ export default class BkmExpressPaymentAdapter extends BaseAdapter {
return this._client.post(`/payment/v1/bkm-express/complete`, request);
}

async retrievePayment(ticketId: string): Promise<ReportingPaymentResponse> {
return this._client.get(`/payment/v1/bkm-express/payments/${ticketId}`);
}

async retrievePaymentByToken(token: string): Promise<ReportingPaymentResponse> {
return this._client.get(`/payment/v1/bkm-express/${token}`);
}
Expand Down
28 changes: 28 additions & 0 deletions src/adapter/MealVoucherCardTokenizationAdapter.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import {ClientCreationOptions} from '../lib/HttpClient';

import InitMealVoucherCardTokenizationRequest from '../request/InitMealVoucherCardTokenizationRequest';
import MealVoucherCardTokenizationCompleteRequest from '../request/MealVoucherCardTokenizationCompleteRequest';
import MealVoucherCardTokenizationRegenerateRequest from '../request/MealVoucherCardTokenizationRegenerateRequest';

import InitMealVoucherCardTokenizationResponse from '../response/InitMealVoucherCardTokenizationResponse';
import MealVoucherCardTokenizationCompleteResponse from '../response/MealVoucherCardTokenizationCompleteResponse';

import BaseAdapter from './BaseAdapter';

export default class MealVoucherCardTokenizationAdapter extends BaseAdapter {
constructor(options: ClientCreationOptions) {
super(options);
}

async init(request: InitMealVoucherCardTokenizationRequest): Promise<InitMealVoucherCardTokenizationResponse> {
return this._client.post('/payment/v1/meal-voucher/card-tokenizations/init', request);
}

async regenerate(sessionId: string, request: MealVoucherCardTokenizationRegenerateRequest): Promise<InitMealVoucherCardTokenizationResponse> {
return this._client.post(`/payment/v1/meal-voucher/card-tokenizations/${sessionId}/regenerate`, request);
}

async complete(sessionId: string, request: MealVoucherCardTokenizationCompleteRequest): Promise<MealVoucherCardTokenizationCompleteResponse> {
return this._client.post(`/payment/v1/meal-voucher/card-tokenizations/${sessionId}/complete`, request);
}
}
2 changes: 2 additions & 0 deletions src/model/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import AccountOwner from './AccountOwner';
import ApmAdditionalAction from './ApmAdditionalAction';
import ApmType from './ApmType';
import ApprovalStatus from './ApprovalStatus';
import BankAccountTrackingSource from './BankAccountTrackingSource';
Expand Down Expand Up @@ -59,6 +60,7 @@ import WebhookStatus from './WebhookStatus';

export = {
AccountOwner,
ApmAdditionalAction,
ApmType,
ApprovalStatus,
BounceStatus,
Expand Down
10 changes: 10 additions & 0 deletions src/request/InitMealVoucherCardTokenizationRequest.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import ApmType from '../model/ApmType';

import MealVoucherCardTokenizationData from './dto/MealVoucherCardTokenizationData';

type InitMealVoucherCardTokenizationRequest = {
apmType: ApmType;
mealVoucherCardTokenizationData: MealVoucherCardTokenizationData;
};

export default InitMealVoucherCardTokenizationRequest;
5 changes: 5 additions & 0 deletions src/request/MealVoucherCardTokenizationCompleteRequest.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
type MealVoucherCardTokenizationCompleteRequest = {
validationCode?: string;
};

export default MealVoucherCardTokenizationCompleteRequest;
7 changes: 7 additions & 0 deletions src/request/MealVoucherCardTokenizationRegenerateRequest.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import MealVoucherCardTokenizationData from './dto/MealVoucherCardTokenizationData';

type MealVoucherCardTokenizationRegenerateRequest = {
mealVoucherCardTokenizationData: MealVoucherCardTokenizationData;
};

export default MealVoucherCardTokenizationRegenerateRequest;
8 changes: 8 additions & 0 deletions src/request/dto/MealVoucherCardTokenizationData.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
type MealVoucherCardTokenizationData = {
cardNumber?: string;
userReferenceNumber?: string;
gsmNumber?: string;
callbackUrl?: string;
};

export default MealVoucherCardTokenizationData;
10 changes: 10 additions & 0 deletions src/response/InitMealVoucherCardTokenizationResponse.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import ApmAdditionalAction from '../model/ApmAdditionalAction';

type InitMealVoucherCardTokenizationResponse = {
sessionId: string;
additionalAction: ApmAdditionalAction;
htmlContent: string;
redirectUrl: string;
};

export default InitMealVoucherCardTokenizationResponse;
8 changes: 8 additions & 0 deletions src/response/MealVoucherCardTokenizationCompleteResponse.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
type MealVoucherCardTokenizationCompleteResponse = {
sessionId: string;
maskedCardNumber: string;
fingerprint: string;
balance: number;
};

export default MealVoucherCardTokenizationCompleteResponse;
Loading