@cenoa/waas-js-sdk
Version:
Official Cenoa Wallet as a Service SDK
146 lines (145 loc) • 5.78 kB
JavaScript
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);
}
}