UNPKG

fut

Version:
145 lines (108 loc) 4.77 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _keys = require('babel-runtime/core-js/object/keys'); var _keys2 = _interopRequireDefault(_keys); var _utils = require('./utils'); var _utils2 = _interopRequireDefault(_utils); var _underscore = require('underscore'); var _underscore2 = _interopRequireDefault(_underscore); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // weak const urls = require('./urls')(); class Methods { constructor() { this.getCredits = () => this.api(urls.api.credits); this.getTradepile = () => this.api(urls.api.tradepile); this.getWatchlist = () => this.api(urls.api.watchlist); this.getPilesize = () => this.api(urls.api.pilesize); this.relist = () => this.api(urls.api.relist, { xHttpMethod: 'PUT' }); this.getSquads = () => this.api(urls.api.squadList); this.getSquadDetails = squadId => this.api(_utils2.default.format(urls.api.squadDetails, [squadId])); this.getUnassigned = () => this.api(urls.api.unassigned); this.search = filter => { let defaultFilter = { type: 'player', start: 0, num: 16 }; filter = _underscore2.default.extend(defaultFilter, filter); if (filter.maskedDefId) filter.maskedDefId = _utils2.default.getBaseId(filter.maskedDefId); let url = urls.api.transfermarket + toUrlParameters(filter); return this.api(url); }; this.placeBid = (tradeId, bid) => { let tId = 0; let body = { bid: bid }; if (!_utils2.default.isPriceValid(bid)) throw new Error('Price is invalid.'); if (_underscore2.default.isNumber(tradeId)) tId = tradeId;else if (_underscore2.default.isObject(tradeId) && _underscore2.default.isNumber(tradeId.tradeId)) tId = tradeId.tradeId; if (tId === 0) throw new Error('0 is not a valid tradeId'); let url = _utils2.default.format(urls.api.placebid, [tId]); let options = { body: body, xHttpMethod: 'PUT' }; return this.api(url, options); }; this.listItem = (itemDataId, startingBid, buyNowPrice, duration) => { if ([3600, 10800, 21600, 43200, 86400, 259200].indexOf(duration) < 0) throw new Error('Duration is invalid.'); if (!_utils2.default.isPriceValid(startingBid) || !_utils2.default.isPriceValid(buyNowPrice)) throw new Error('Starting bid or buy now price is invalid.'); let body = { duration: duration, buyNowPrice: buyNowPrice, startingBid: startingBid, itemData: { id: itemDataId } }; let options = { body: body, xHttpMethod: 'POST' }; return this.api(urls.api.listItem, options); }; this.getStatus = tradeIds => { let urlParameters = `tradeIds=${ tradeIds.join(',') }`; let url = urls.api.status + urlParameters; return this.api(url); }; this.addToWatchlist = tradeId => { let body = { 'auctionInfo': [{ id: tradeId }] }; let url = urls.api.watchlist + _utils2.default.format('?tradeId={0}', [tradeId]); let options = { body: body, xHttpMethod: 'PUT' }; return this.api(url, options); }; this.removeFromWatchlist = tradeId => { let url = urls.api.watchlist + _utils2.default.format('?tradeId={0}', [tradeId]); return this.api(url, { xHttpMethod: 'DELETE' }); }; this.removeFromTradepile = tradeId => this.api(_utils2.default.format(urls.api.removeFromTradepile, [tradeId]), { xHttpMethod: 'DELETE' }); this.sendToTradepile = itemDataId => { let body = { 'itemData': [{ pile: 'trade', id: itemDataId }] }; return this.api(urls.api.item, { body: body, xHttpMethod: 'PUT' }); }; this.sendToClub = itemDataId => { let body = { 'itemData': [{ pile: 'club', id: itemDataId }] }; this.api(urls.api.item, { body: body, xHttpMethod: 'PUT' }); }; this.quickSell = itemDataId => this.api(urls.api.item + _utils2.default.format('/{0}', [itemDataId]), { xHttpMethod: 'DELETE' }); this.deleteSoldFromTrade = () => this.api(urls.api.sold, { xHttpMethod: 'DELETE' }); this.getPriceLimit = itemIds => { let urlParameters = `?itemIdList=${ itemIds.join(',') }`; let url = urls.api.pricelimit + urlParameters; return this.api(url); }; } /** example response: [{ "source": "ITEM_DEFINITION", "defId": 228999, "itemId": 261211112028, "minPrice": 150, "maxPrice": 10000 }] */ } exports.default = Methods; function toUrlParameters(obj) { var str = ''; var keys = (0, _keys2.default)(obj); for (var i = 0; i < keys.length; i++) { str += keys[i] + '=' + encodeURI(obj[keys[i]]).replace(/%5B/g, '[').replace(/%5D/g, ']') + '&'; } return str.substr(0, str.length - 1); }