UNPKG

aping-plugin-footballdata

Version:
251 lines (214 loc) 11.6 kB
"use strict"; angular.module("jtt_aping_footballdata") .service('apingFootballDataHelper', ['apingModels', 'apingTimeHelper', 'apingUtilityHelper', function (apingModels, apingTimeHelper, apingUtilityHelper) { this.getThisPlatformString = function () { return "footballdata"; }; this.getIdByLinksObject = function (_linksObject, _property) { if (angular.isUndefined(_property)) { _property = 'self'; } var returnValue; if (_linksObject && _linksObject[_property] && _linksObject[_property].href) { var tempValue = _linksObject[_property].href.split('/').pop(); if (tempValue.length > 0) { returnValue = tempValue; } } return returnValue; }; this.getObjectByJsonData = function (_data, _helperObject) { var requestResults = []; if (_data && _data.data) { var _this = this; var scope = []; switch (_helperObject.model) { case 'fbd-team': if (angular.isDefined(_data.data.teams)) { scope = _data.data.teams; } else { scope.push(_data.data); } break; case 'fbd-table': scope.push(_data.data); break; case 'fbd-league': if (_data.data.constructor === Array) { scope = _data.data; } else { scope.push(_data.data); } break; case 'fbd-player': if (_data.data.players && _data.data.players.length > 0) { scope = _data.data.players; } break; case 'fbd-fixture': if (angular.isDefined(_data.data.fixture)) { scope.push(_data.data.fixture); } else if (angular.isDefined(_data.data.fixtures)) { scope = _data.data.fixtures; } break; } if (scope.constructor === Array && scope.length > 0) { angular.forEach(scope, function (value, key) { var tempResult; if (_helperObject.getNativeData === true || _helperObject.getNativeData === "true") { tempResult = value; } else { tempResult = _this.getItemByJsonData(value, _helperObject.model); } if (tempResult) { requestResults.push(tempResult); } }); } } return requestResults; }; this.getItemByJsonData = function (_item, _model) { var returnObject = {}; if (_item && _model) { switch (_model) { case "fbd-team": returnObject = this.getFbdTeamItemByJsonData(_item); break; case "fbd-league": returnObject = this.getFbdLeagueItemByJsonData(_item); break; case "fbd-player": returnObject = this.getFbdPlayerItemByJsonData(_item); break; case "fbd-table": returnObject = this.getFbdTableItemByJsonData(_item); break; case "fbd-fixture": returnObject = this.getFbdFixtureItemByJsonData(_item); break; default: return false; } } return returnObject; }; this.getFbdTeamItemByJsonData = function (_item) { var fbdTeamObject = apingModels.getNew("fbd-team", this.getThisPlatformString()); angular.extend(fbdTeamObject, { teamId: _item._links ? this.getIdByLinksObject(_item._links) : undefined, code: _item.code || undefined, shortName: _item.shortName || undefined, name: _item.name || undefined, squadMarketValue: _item.squadMarketValue || undefined, crestUrl: _item.crestUrl ? _item.crestUrl.replace('http://', 'https://') : undefined }); return fbdTeamObject; }; this.getFbdLeagueItemByJsonData = function (_item) { var fbdLeagueObject = apingModels.getNew("fbd-league", this.getThisPlatformString()); angular.extend(fbdLeagueObject, { leagueId: _item.id || undefined, league: _item.league || undefined, caption: _item.caption || undefined, currentMatchday: _item.currentMatchday || undefined, lastUpdated: _item.lastUpdated || undefined, numberOfGames: _item.numberOfGames || undefined, numberOfMatchdays: _item.numberOfMatchdays || undefined, numberOfTeams: _item.numberOfTeams || undefined, year: _item.year || undefined, }); return fbdLeagueObject; }; this.getFbdPlayerItemByJsonData = function (_item) { var fbdPlayerObject = apingModels.getNew("fbd-player", this.getThisPlatformString()); angular.extend(fbdPlayerObject, { contractUntil: _item.contractUntil || undefined, dateOfBirth: _item.dateOfBirth || undefined, jerseyNumber: _item.jerseyNumber || undefined, marketValue: _item.marketValue || undefined, name: _item.name || undefined, nationality: _item.nationality || undefined, position: _item.position || undefined, }); return fbdPlayerObject; }; this.getFbdTableItemByJsonData = function (_item) { var fbdTableObject = apingModels.getNew("fbd-table", this.getThisPlatformString()); var that = this; angular.extend(fbdTableObject, { leagueId: _item._links ? that.getIdByLinksObject(_item._links, 'soccerseason') : undefined, leagueCaption: _item.leagueCaption || undefined, matchday: _item.matchday || undefined, }); if (_item.standing && _item.standing.constructor === Array && _item.standing.length > 0) { fbdTableObject.standing = []; angular.forEach(_item.standing, function (value, key) { fbdTableObject.standing.push({ teamId: value.teamId || (value._links ? that.getIdByLinksObject(value._links, 'team') : undefined), away: value.away || undefined, crestURI: value.crestURI ? value.crestURI.replace('http://', 'https://') : undefined, draws: angular.isDefined(value.draws) ? value.draws : undefined, goalDifference: angular.isDefined(value.goalDifference) ? value.goalDifference : undefined, goals: angular.isDefined(value.goals) ? value.goals : undefined, goalsAgainst: angular.isDefined(value.goalsAgainst) ? value.goalsAgainst : undefined, home: value.home || undefined, losses: angular.isDefined(value.losses) ? value.losses : undefined, playedGames: angular.isDefined(value.playedGames) ? value.playedGames : undefined, points: angular.isDefined(value.points) ? value.points : undefined, position: angular.isDefined(value.position) ? value.position : undefined, rank: angular.isDefined(value.rank) ? value.rank : undefined, teamName: value.teamName || undefined, wins: angular.isDefined(value.wins) ? value.wins : undefined, group: value.group || undefined, team: value.team || undefined, }); }); } else if (typeof _item.standings === 'object' && _item.standings !== null) { fbdTableObject.groups = []; angular.forEach(_item.standings, function (groupValue, groupKey) { var standing = []; angular.forEach(groupValue, function (value, key) { standing.push({ teamId: value.teamId || (value._links ? that.getIdByLinksObject(value._links, 'team') : undefined), away: value.away || undefined, crestURI: value.crestURI ? value.crestURI.replace('http://', 'https://') : undefined, draws: angular.isDefined(value.draws) ? value.draws : undefined, goalDifference: angular.isDefined(value.goalDifference) ? value.goalDifference : undefined, goals: angular.isDefined(value.goals) ? value.goals : undefined, goalsAgainst: angular.isDefined(value.goalsAgainst) ? value.goalsAgainst : undefined, home: value.home || undefined, losses: angular.isDefined(value.losses) ? value.losses : undefined, playedGames: angular.isDefined(value.playedGames) ? value.playedGames : undefined, points: angular.isDefined(value.points) ? value.points : undefined, position: angular.isDefined(value.position) ? value.position : undefined, rank: angular.isDefined(value.rank) ? value.rank : undefined, teamName: value.teamName || undefined, wins: angular.isDefined(value.wins) ? value.wins : undefined, group: value.group || undefined, team: value.team || undefined, }); }); fbdTableObject.groups.push({ name: groupKey, standing: standing }) }); } return fbdTableObject; }; this.getFbdFixtureItemByJsonData = function (_item) { var fbdFixtureObject = apingModels.getNew("fbd-fixture", this.getThisPlatformString()); angular.extend(fbdFixtureObject, { fixtureId: _item._links ? this.getIdByLinksObject(_item._links) : undefined, awayTeamName: _item.awayTeamName || undefined, date: _item.date || undefined, homeTeamName: _item.homeTeamName || undefined, matchday: _item.matchday || undefined, result: _item.result || undefined, status: _item.status || undefined, }); return fbdFixtureObject; }; }]);