mychips-react-sdk
Version:
MyChips Offerwall
45 lines (44 loc) • 1.83 kB
JavaScript
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
;