UNPKG

@parcl-finance/product-sdk

Version:

TypeScript SDK for interacting with Parcl's product APIs

125 lines 4.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Points = void 0; const utils_1 = require("./utils"); const httpClient_1 = require("./httpClient"); class Points { baseUrl; headers; client; constructor(baseUrl, accessToken) { const headers = {}; if (accessToken !== undefined) { headers["Authorization"] = "Bearer " + accessToken; } this.headers = headers; this.baseUrl = baseUrl.concat("/points"); this.client = new httpClient_1.HttpClient(this.baseUrl, this.headers); } async getLeaderboard(refresh) { const { leaderboard, count, lastUpdatedAt } = await this.client.get({ path: "/leaderboard", params: { refresh }, }); return { leaderboard: (0, utils_1.formatPointsLeaderboard)(leaderboard), count, lastUpdatedAt }; } async getLeaderboardWithUserInfo(user, refresh) { const { info } = await this.client.get({ path: `/leaderboard/user/${user}`, params: { refresh, }, }); return { leaderboard: (0, utils_1.formatPointsLeaderboard)(info.leaderboard), userRow: (0, utils_1.formatPointsLeaderboardPosition)(info.userRow), surroundingCtx: { aboveRow: info.surroundingCtx.aboveRow === null || info.surroundingCtx.aboveRow === undefined ? undefined : (0, utils_1.formatPointsLeaderboardPosition)(info.surroundingCtx.aboveRow), belowRow: info.surroundingCtx.belowRow === null || info.surroundingCtx.belowRow === undefined ? undefined : (0, utils_1.formatPointsLeaderboardPosition)(info.surroundingCtx.belowRow), }, count: info.count, lastUpdatedAt: info.lastUpdatedAt, }; } async getUserPointsBalances(user) { const { balances } = await this.client.get({ path: "/balances", params: { user, }, }); return balances; } async getUserPointsBalance(user) { const { balance } = await this.client.get({ path: "/balance", params: { user, }, }); return balance; } async isRegistered({ user, isForPerpetualPoints }) { const { isParticipating } = await this.client.get({ path: "/participate", params: { user, isForPerpetualPoints, }, }); return isParticipating; } async register({ user, isForPerpetualPoints }, accessToken) { const { isParticipating } = await this.client.post({ path: "/participate", params: { user, isForPerpetualPoints }, accessToken, }); return isParticipating; } async generateReferralCode(user, referralCode, accessToken) { if (referralCode.length > 20) { throw new Error("The referral code cannot be longer than 20 characters"); } const { referralsUser } = await this.client.post({ path: "referrals/generate-code", params: { user }, body: { referralCode }, accessToken, }); return (0, utils_1.formatReferralsUser)(referralsUser); } async useReferralCode(user, referralCode, accessToken) { if (referralCode.length > 20) { throw new Error("Referral codes cannot be longer than 20 characters"); } const { referralsUser } = await this.client.post({ path: "referrals/use-code", params: { user }, body: { referralCode }, accessToken, }); return (0, utils_1.formatReferralsUser)(referralsUser); } async getReferralsUserInfo(user, accessToken) { const { referralsUser } = await this.client.get({ path: "referrals/user-info", params: { user }, accessToken, }); return (0, utils_1.formatReferralsUserUi)(referralsUser); } async getUserReferredByCode(user) { const { code } = await this.client.get({ path: "referrals/user-referred-by", params: { user }, }); return code ?? undefined; } } exports.Points = Points; //# sourceMappingURL=points.js.map