Skip to content

Commit 898a1bf

Browse files
committed
CHK-8290: Implement endpoint hooks in lib for Checkout Payment Method Delete
1 parent 1a0cc10 commit 898a1bf

5 files changed

Lines changed: 39 additions & 0 deletions

File tree

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ export * from './shipping';
2828
export * from './taxes';
2929
export * from './discounts';
3030
export * from './payment';
31+
export * from './paymentMethod';
3132
export * from './orderMetaData';
3233
export * from './order';
3334
export * from './externalPaymentGateway';
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import {
2+
apiTypeKeys,
3+
apiTypes,
4+
checkApiResponse,
5+
fetchAPI,
6+
getApiOptions,
7+
getApiUrl,
8+
IApiReturnObject
9+
} from 'src';
10+
11+
/**
12+
* # deletePaymentMethod
13+
*
14+
* Remove saved payment method
15+
*
16+
* @param {@link string} paymentMethodID - Payment Method pyblic ID to delete.
17+
* @param {number} [numOfRetries=0] - Number of retries for some HTTP errors - Number from 0 to 5
18+
*
19+
* @returns {Promise<IApiReturnObject>} response
20+
*/
21+
export async function deletePaymentMethod(paymentMethodID: string, numOfRetries = 0): Promise<IApiReturnObject> {
22+
const {deletePaymentMethod} = apiTypeKeys;
23+
const url = `${getApiUrl(deletePaymentMethod)}/${paymentMethodID}`;
24+
const options = getApiOptions(deletePaymentMethod);
25+
const fetchRes = await fetchAPI(url, options, numOfRetries);
26+
const {keysToTest} = apiTypes.deletePaymentMethod;
27+
return checkApiResponse(fetchRes, keysToTest);
28+
}

src/paymentMethod/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './deletePaymentMethod';

src/types/apiInterfaces.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ export interface IApiTypes {
272272
updatePayment: IApiTypesDetail;
273273
deletePayment: IApiTypesDetail;
274274
deleteGiftCardPayment: IApiTypesDetail;
275+
deletePaymentMethod: IApiTypesDetail;
275276
patchOrderMetaData: IApiTypesDetail;
276277
batchRequest: IApiTypesDetail;
277278
addLog: IApiTypesDetail;
@@ -313,6 +314,7 @@ export interface IApiTypeKeys {
313314
updatePayment: keyof IApiTypes;
314315
deletePayment: keyof IApiTypes;
315316
deleteGiftCardPayment: keyof IApiTypes;
317+
deletePaymentMethod: keyof IApiTypes;
316318
patchOrderMetaData: keyof IApiTypes;
317319
batchRequest: keyof IApiTypes;
318320
addLog: keyof IApiTypes;

src/variables/constants.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,12 @@ export const apiTypes: IApiTypes = {
252252
useJwt: true,
253253
keysToTest: [...appStateKeysToTest]
254254
},
255+
deletePaymentMethod: {
256+
path: '/payments/saved',
257+
method: methods.DELETE,
258+
useJwt: true,
259+
keysToTest: [...appStateKeysToTest]
260+
},
255261
patchOrderMetaData: {
256262
path: '/meta_data',
257263
method: methods.PATCH,
@@ -333,6 +339,7 @@ export const apiTypeKeys: IApiTypeKeys = {
333339
updatePayment: 'updatePayment',
334340
deletePayment: 'deletePayment',
335341
deleteGiftCardPayment: 'deleteGiftCardPayment',
342+
deletePaymentMethod: 'deletePaymentMethod',
336343
patchOrderMetaData: 'patchOrderMetaData',
337344
batchRequest: 'batchRequest',
338345
addLog: 'addLog',

0 commit comments

Comments
 (0)