When using the Client.getTeamsAtWeek() function for league stats prior to 2018, the api fails with a 404.
(node:24828) UnhandledPromiseRejectionWarning: Error: Request failed with status code 404
at createError (C:\scratch\GitHub\GentlemensLeague\node_modules\espn-fantasy-football-api\node-dev.js:1014:15)
at settle (C:\scratch\GitHub\GentlemensLeague\node_modules\espn-fantasy-football-api\node-dev.js:1289:12)
at IncomingMessage.handleStreamEnd (C:\scratch\GitHub\GentlemensLeague\node_modules\espn-fantasy-football-api\node-dev.js:361:11)
at IncomingMessage.emit (events.js:327:22)
at endReadableNT (_stream_readable.js:1220:12)
at processTicksAndRejections (internal/process/task_queues.js:84:21)
(node:24828) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict
(see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:24828) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
--but I thought I would at least let anyone else know that it is possible to get historical information at least to 2011.
This is the hacky temporary workaround I made in node-dev.js if anyone needs it. I'll try to mock up a pull request that isn't my hack, maybe add a getHistoricalTeamsAtWeek() function instead for those years < 2018
{
key: "getTeamsAtWeek",
value: function getTeamsAtWeek(_ref5) {
var _this4 = this;
console.log(_ref5.seasonId);
if(_ref5.seasonId > 2017) {
var seasonId = _ref5.seasonId,
scoringPeriodId = _ref5.scoringPeriodId;
var route = this.constructor._buildRoute({
base: "".concat(seasonId, "/segments/0/leagues/").concat(this.leagueId),
params: "?scoringPeriodId=".concat(scoringPeriodId, "&view=mRoster&view=mTeam")
});
console.log(route);
return axios__WEBPACK_IMPORTED_MODULE_4___default.a.get(route, this._buildAxiosConfig()).then(function (response) {
var data = lodash_get__WEBPACK_IMPORTED_MODULE_3___default()(response.data, 'teams');
return lodash_map__WEBPACK_IMPORTED_MODULE_1___default()(data, function (team) {
return _team_team__WEBPACK_IMPORTED_MODULE_9__["default"].buildFromServer(team, {
leagueId: _this4.leagueId,
seasonId: seasonId
});
});
});
} else {
var _this4 = this;
var seasonId = _ref5.seasonId,
matchupPeriodId = _ref5.scoringPeriodId,
scoringPeriodId = _ref5.scoringPeriodId;
var route = this.constructor._buildRoute({
base: "".concat(this.leagueId),
params: "?scoringPeriodId=".concat(scoringPeriodId, "&seasonId=").concat(seasonId) + '&view=mMatchupScore&view=mScoreboard&view=mSettings&view=mTopPerformers&view=mTeam'
});
var axiosConfig = this._buildAxiosConfig({
baseURL: 'https://fantasy.espn.com/apis/v3/games/ffl/leagueHistory/'
});
console.log(route);
return axios__WEBPACK_IMPORTED_MODULE_4___default.a.get(route, axiosConfig).then(function (response) {
var data = lodash_get__WEBPACK_IMPORTED_MODULE_3___default()(response.data[0], 'teams');it
return lodash_map__WEBPACK_IMPORTED_MODULE_1___default()(data, function (team) {
return _team_team__WEBPACK_IMPORTED_MODULE_9__["default"].buildFromServer(team, {
leagueId: _this4.leagueId,
seasonId: seasonId
});
});
});
}
}