UNPKG

@cenoa/waas-js-sdk

Version:

Official Cenoa Wallet as a Service SDK

146 lines (145 loc) 5.78 kB
import axios from 'axios'; import { generatePayloadAndSignature } from '../utils'; import * as AdministrativeApi from './administrative'; import * as UsersApi from './users'; import * as WalletApi from './wallet'; import * as TransfersApi from './transfers'; import * as DepositsApi from './deposits'; import * as WithdrawsApi from './withdraws'; import * as ReinvestApi from './reinvests'; const BASE_URLS = { production: 'https://waas.api.cenoa.com/v1', sandbox: 'https://sandbox.waas.api.cenoa.net/v1', }; export class AxiosHelper { constructor(sdkVersion, sdkInitOptions) { const { environment, axiosConfig, apiKey, apiSecret } = sdkInitOptions; this.instance = axios.create(Object.assign({ baseURL: environment ? BASE_URLS[environment] : BASE_URLS.production }, axiosConfig)); this.sdkVersion = sdkVersion; this.apiKey = apiKey; this.apiSecret = apiSecret; // Add an interceptor to modify the headers for all requests this.instance.interceptors.request.use((config) => { const { payload, signature } = generatePayloadAndSignature(this.apiSecret, config.data); config.headers['sdk-version'] = this.sdkVersion; config.headers['apikey'] = this.apiKey; config.headers['payload'] = payload; config.headers['signature'] = signature; return config; }); } registerWebhookURL(url) { return Promise.all([ AdministrativeApi.registerDepositWebhookURL(this.instance, { url: url, active: true, }), AdministrativeApi.registerWithdrawWebhookURL(this.instance, { url: url, active: true, }), ]); } userCreationIntention(payload) { return UsersApi.userCreationIntention(this.instance, payload); } otpValidation(payload) { return UsersApi.otpValidation(this.instance, payload); } createUser(payload) { return UsersApi.createUser(this.instance, payload); } getUser(cenoaUserId) { return UsersApi.getUser(this.instance, cenoaUserId); } getUsers(payload) { return UsersApi.getUsers(this.instance, payload); } setUserWallet(payload) { return WalletApi.setUserWallet(this.instance, payload); } getUserWallet(payload) { return WalletApi.getUserWallet(this.instance, payload); } getUserWalletSecret(payload) { return WalletApi.getUserWalletSecret(this.instance, payload); } setPartnerWallet(payload) { return WalletApi.setPartnerWallet(this.instance, payload); } getPartnerWallet() { return WalletApi.getPartnerWallet(this.instance); } getSignCredentialsForTransfer(payload) { return TransfersApi.getSignCredentialsForTransfer(this.instance, payload); } transfer(payload) { return TransfersApi.transfer(this.instance, payload); } getTransferStatus(payload) { return TransfersApi.getTransferStatus(this.instance, payload); } getUserTransferTransactions(payload) { return TransfersApi.getUserTransferTransactions(this.instance, payload); } initiateDepositTransaction(payload) { return DepositsApi.getOnrampWebUIURL(this.instance, payload); } getSignCredentialsForUserDeposit(payload) { return DepositsApi.getSignCredentialsForUserDeposit(this.instance, payload); } patchDepositWithSignature(payload) { return DepositsApi.patchUserDeposit(this.instance, payload); } getUserDepositTransaction(payload) { return DepositsApi.getUserDepositTransaction(this.instance, payload); } getUserDepositTransactions(payload) { return DepositsApi.getUserDepositTransactions(this.instance, payload); } initiateWithdrawTransaction(payload) { return WithdrawsApi.getOfframpWebUIURL(this.instance, payload); } getSignCredentialsForUserWithdraw(payload) { return WithdrawsApi.getSignCredentialsForUserWithdraw(this.instance, payload); } patchWithdrawWithSignature(payload) { return WithdrawsApi.patchWithdraw(this.instance, payload); } getUserWithdrawTransaction(payload) { return WithdrawsApi.getUserWithdrawTransaction(this.instance, payload); } getUserWithdrawTransactions(payload) { return WithdrawsApi.getUserWithdrawTransactions(this.instance, payload); } getSignCredentialsForPartnerDeposit(payload) { return DepositsApi.getSignCredentialsForPartnerDeposit(this.instance, payload); } patchPartnerDeposit(payload) { return DepositsApi.patchPartnerDeposit(this.instance, payload); } getPartnerDepositTransaction(payload) { return DepositsApi.getPartnerDepositTransaction(this.instance, payload); } getSignCredentialsForPartnerWithdraw(payload) { return WithdrawsApi.getSignCredentialsForPartnerWithdraw(this.instance, payload); } patchPartnerWithdraw(payload) { return WithdrawsApi.patchPartnerWithdraw(this.instance, payload); } getPartnerWithdrawTransaction(payload) { return WithdrawsApi.getPartnerWithdrawTransaction(this.instance, payload); } getPartnerDepositTransactions(payload) { return DepositsApi.getPartnerDepositTransactions(this.instance, payload); } getPartnerWithdrawTransactions(payload) { return WithdrawsApi.getPartnerWithdrawTransactions(this.instance, payload); } getSignCredentialsForReinvest() { return ReinvestApi.getSignCredentialsForReinvest(this.instance); } patchReinvestWithSignature(payload) { return ReinvestApi.patchReinvest(this.instance, payload); } }