UNPKG

mychips-react-sdk

Version:
45 lines (44 loc) 1.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BalanceService = void 0; var _RewardDTO = require("../domain/RewardDTO"); var _BalanceDTO = _interopRequireDefault(require("../domain/BalanceDTO")); var _Consts = _interopRequireDefault(require("../Consts")); var _RatelimitService = require("./RatelimitService"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } class BalanceService { async getBalance(userId, adUnitId) { if (!(await _RatelimitService.RateLimitService.canMakeRequest())) { console.log('the offerwall should be opened at least once'); return null; // Block the request if the rate limit is exceeded } try { const url = `${_Consts.default.API_URL}/balance/${userId}?adunit_id=${adUnitId}`; const response = await fetch(url, { method: 'GET' }); console.log(url); if (!response.ok) { throw new Error(`HTTP error code: ${response.status}`); } const jsonResponse = await response.json(); console.log(jsonResponse); const balanceDTO = _BalanceDTO.default.parseFromJson(jsonResponse); if (!balanceDTO) { throw new Error('Invalid balance data'); } const delta = balanceDTO.userLTVInVirtualCurrency - balanceDTO.lastSyncUserLTVInVirtualCurrency; if (delta !== 0) { return new _RewardDTO.RewardDTO(balanceDTO.userLTV - balanceDTO.lastSyncUserLTV, balanceDTO.userLTVInVirtualCurrency - balanceDTO.lastSyncUserLTVInVirtualCurrency); } return null; // No reward to give } catch (error) { console.error('Error fetching balance:', error); throw error; // Propagate error to be handled by the caller } } } exports.BalanceService = BalanceService; //# sourceMappingURL=BalanceService.js.map