UNPKG

tempus-api-graphql

Version:

A GraphQL wrapper for the tempus api (tempus2.xyz)

263 lines (219 loc) 11.3 kB
"use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _base_model = _interopRequireDefault(require("./base_model")); var _record2 = _interopRequireDefault(require("./record")); var _map = _interopRequireDefault(require("./map")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var Player = /*#__PURE__*/function (_BaseModel) { _inherits(Player, _BaseModel); var _super = _createSuper(Player); function Player() { _classCallCheck(this, Player); return _super.apply(this, arguments); } _createClass(Player, [{ key: "fetchRecord", value: function fetchRecord() { return this.context.tempus.playersById.load(this.attrs.id); } }, { key: "id", value: function id() { return this.access("id", function (r) { return r.player_info.id; }); } }, { key: "name", value: function name() { return this.access("name", function (r) { return r.player_info.name; }); } }, { key: "country", value: function country() { return this.access("country", function (r) { return r.player_info.country; }); } }, { key: "countryCode", value: function countryCode() { return this.access("country_code", function (r) { return r.player_info.country_code; }); } }, { key: "steamId", value: function steamId() { return this.access("steamid", function (r) { return r.player_info.steamid; }); } }, { key: "firstSeen", value: function firstSeen() { return this.access("first_seen", function (r) { return r.player_info.first_seen; }); } }, { key: "lastSeen", value: function lastSeen() { return this.access("last_seen", function (r) { return r.player_info.last_seen; }); } }, { key: "ranks", value: function ranks() { return this.access("ranks", function (r) { return { overall: _objectSpread(_objectSpread({}, r.rank_info), {}, { totalRanked: r.rank_info.total_ranked }), soldier: _objectSpread(_objectSpread({}, r.class_rank_info[3]), {}, { totalRanked: r.class_rank_info[3].total_ranked }), demoman: _objectSpread(_objectSpread({}, r.class_rank_info[4]), {}, { totalRanked: r.class_rank_info[4].total_ranked }) }; }); } }, { key: "countryRanks", value: function countryRanks() { return this.access("country_ranks", function (r) { return { overall: _objectSpread(_objectSpread({}, r.country_rank_info), {}, { totalRanked: r.country_rank_info.total_ranked }), soldier: _objectSpread(_objectSpread({}, r.country_class_rank_info[3]), {}, { totalRanked: r.country_class_rank_info[3].total_ranked }), demoman: _objectSpread(_objectSpread({}, r.country_class_rank_info[4]), {}, { totalRanked: r.country_class_rank_info[4].total_ranked }) }; }); } }, { key: "stats", value: function stats() { return this.access("stats", function (r) { return { pr: r.pr_stats, wr: r.wr_stats, top: r.top_stats }; }); } }, { key: "record", value: function () { var _record = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(args) { var r, playerId, demoInfo; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: r = null; _context.next = 3; return this.id(); case 3: playerId = _context.sent; if (!args.mapName) { _context.next = 10; break; } _context.next = 7; return this.context.tempus.playerRecordByMapName.load(_objectSpread({ playerId: playerId }, args)); case 7: r = _context.sent; _context.next = 17; break; case 10: if (!args.mapId) { _context.next = 16; break; } _context.next = 13; return this.context.tempus.playerRecordByMapId.load(_objectSpread({ playerId: playerId }, args)); case 13: r = _context.sent; _context.next = 17; break; case 16: throw new Error('One of "mapId"/"mapName" must be provided.'); case 17: if (r.result) { _context.next = 19; break; } return _context.abrupt("return", null); case 19: demoInfo = null; if (r.result.demo_id) { demoInfo = { id: r.result.demo_id, url: r.result.demo_url, server_info: { id: r.result.demo_server_id, name: r.result.demo_server_name } }; } return _context.abrupt("return", new _record2["default"](this.context, _objectSpread(_objectSpread({}, r.result), {}, { zone_info: r.zone_info, player_info: { id: r.result.user_id, name: r.result.name, steamid: r.result.steamid }, map: new _map["default"](this.context, { id: r.zone_info.map_id }), demo_info: demoInfo }))); case 22: case "end": return _context.stop(); } } }, _callee, this); })); function record(_x) { return _record.apply(this, arguments); } return record; }() }]); return Player; }(_base_model["default"]); var _default = Player; exports["default"] = _default;