feat: Delete Stripe pamyent connection

This commit is contained in:
Ahmed Bouhuolia
2024-09-22 21:57:46 +02:00
parent eb5fdbf4ee
commit 9ba651decb
4 changed files with 45 additions and 7 deletions

View File

@@ -34,6 +34,12 @@ export class PaymentServicesController extends BaseController {
this.validationResult,
asyncMiddleware(this.updatePaymentMethod.bind(this))
);
router.delete(
'/:paymentMethodId',
[param('paymentMethodId').exists()],
this.validationResult,
this.deletePaymentMethod.bind(this)
);
return router;
}
@@ -141,4 +147,33 @@ export class PaymentServicesController extends BaseController {
next(error);
}
}
/**
* Deletes the given payment method.
* @param {Request<{ paymentMethodId: number }>} req - Request.
* @param {Response} res - Response.
* @param {NextFunction} next - Next function.
* @return {Promise<Response | void>}
*/
private async deletePaymentMethod(
req: Request<{ paymentMethodId: number }>,
res: Response,
next: NextFunction
) {
const { tenantId } = req;
const { paymentMethodId } = req.params;
try {
await this.paymentServicesApp.deletePaymentMethod(
tenantId,
paymentMethodId
);
return res.status(204).send({
id: paymentMethodId,
message: 'The payment method has been deleted.',
});
} catch (error) {
next(error);
}
}
}

View File

@@ -124,10 +124,11 @@ function StripePaymentMethod() {
)}
</Group>
<Group spacing={10}>
<Button small onClick={handleEditBtnClick}>
Edit
</Button>
{isAccountActive && (
<Button small onClick={handleEditBtnClick}>
Edit
</Button>
)}
{!isAccountCreated && (
<Button intent={Intent.PRIMARY} small onClick={handleSetUpBtnClick}>
Set it Up

View File

@@ -20,7 +20,7 @@ export const useDeletePaymentMethod = (
return useMutation<void, Error, DeletePaymentMethodValues>(
({ paymentMethodId }) => {
return apiRequest
.delete(`/payment-methods/${paymentMethodId}`)
.delete(`/payment-services/${paymentMethodId}`)
.then((res) => res.data);
},
{ ...options },

View File

@@ -91,9 +91,11 @@ export const useDrawerActions = () => {
};
export const useAlertActions = () => {
const dispatch = useDispatch();
return {
openAlert: useDispatchAction(openAlert),
closeAlert: useDispatchAction(closeAlert),
openAlert: (name, payload) => dispatch(openAlert(name, payload)),
closeAlert: (name, payload) => dispatch(closeAlert(name, payload)),
};
};