fut
Version:
fifa 17 web-app api
145 lines (108 loc) • 4.77 kB
JavaScript
'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);
}