UNPKG

glide-nodejs-sdk

Version:

Glide NodeJS SDK

82 lines (66 loc) 1.92 kB
const validateSchema = require("../utils/validator.schema"); const handleApiErrors = require("../errors/handleApiErrors"); const { fundCardSchema, createCardSchema, cardBalanceSchema, activateCardSchema, } = require("../validators/card.schema"); class Card { constructor(request) { this.request = request; } create = async (payload) => { try { const cardPayload = await validateSchema({ schema: createCardSchema, payload }); const { data } = await this.request.post("/card", cardPayload); if (data && data.status) { return data; } else { throw new Error("There is a problem creating your card"); } } catch (error) { handleApiErrors(error); } }; activate = async (payload) => { try { const activatePayload = await validateSchema({ schema: activateCardSchema, payload }); const { data } = await this.request.post("/card/activate", activatePayload); if (data && data.status) { return data; } else { throw new Error("There is a problem activating your card"); } } catch (error) { handleApiErrors(error); } }; getBalance = async (customerId) => { try { const balancePayload = await validateSchema({ schema: cardBalanceSchema, payload: { customerId } }); const { data } = await this.request.get("/card/balance", { params: balancePayload }); if (data && data.status) { return data.data; } else { throw new Error("There is a problem getting card balance"); } } catch (error) { handleApiErrors(error); } }; fund = async (payload) => { try { const fundPayload = await validateSchema({ schema: fundCardSchema, payload }); const { data } = await this.request.post("/card/fund", fundPayload); if (data && data.status) { return data; } else { throw new Error("There is a problem funding your card"); } } catch (error) { handleApiErrors(error); } }; } module.exports = Card;