/** * @param string $league * @param int $teamSportId */ function getTeams(string $league, int $teamSportId) { try { // grab the db connection $pdo = connectToEncryptedMySQL("/etc/apache2/capstone-mysql/sprots.ini"); $config = readConfig("/etc/apache2/capstone-mysql/sprots.ini"); $apiKeys = json_decode($config["fantasyData"]); $opts = array('http' => array('method' => "GET", 'header' => "Content-Type: application/json\r\nOcp-Apim-Subscription-key: " . $apiKeys->{$league}, 'content' => "{body}")); $context = stream_context_create($opts); // response from api $response = file_get_contents("https://api.fantasydata.net/{$league}/v2/JSON/teams", false, $context); $data = json_decode($response); // Places team in designated sport, and populates teams in team db with response from api $sport = Sport::getSportBySportLeague($pdo, $league); foreach ($data as $team) { $team = new Team(null, $sport->getSportId(), $team->TeamID, $team->City, $team->Name); $team->insert($pdo); // get team statistics by game $game = Game::getGameByGameFirstTeamId($pdo, $team->getTeamId()); if ($game === null) { $game = Game::getGameByGameSecondTeamId($pdo, $team->getTeamId()); if ($game === null) { continue; } } $gameDate = $game->getGameTime()->format("Y-m-d"); // response from api $response = file_get_contents("https://api.fantasydata.net/{$league}/v2/JSON/TeamGameStatsByDate/{$gameDate}"); $statisticData = json_decode($response); // adds statistics to database foreach ($GLOBALS['stats'] as $statisticName) { $statistic = Statistic::getStatisticByStatisticName($pdo, $statisticName); if ($statistic === null || $statistic->getSize() <= 0) { $statistic = new Statistic(null, $statisticName); $statistic->insert($pdo); } else { $statistic = $statistic[0]; } $statisticValue = null; if (empty($statisticData->{$statisticName}) === false) { $statisticValue = $statisticData->{$statisticName}; } if ($statisticValue !== null) { // $statisticValue = ""; $teamStatisticToInsert = new TeamStatistic($game->getGameId(), $team->getTeamId(), $statistic->getTeamStatisticStatisticId(), $statisticValue); $teamStatisticToInsert->insert($pdo); } else { echo "<p> team statistics isn't working </p>" . PHP_EOL; } } } } catch (Exception $exception) { echo "Something went wrong: " . $exception->getMessage() . PHP_EOL; } catch (TypeError $typeError) { echo "Something went wrong: " . $typeError->getMessage() . PHP_EOL; } }
$apiKeys = json_decode($config["fantasyData"]); $opts = array('http' => array('method' => "GET", 'header' => "Content-Type: application/json\r\nOcp-Apim-Subscription-key: " . $apiKeys->NFL, 'content' => "{body}")); $context = stream_context_create($opts); //response from Api $response = file_get_contents("https://api.fantasydata.net/nfl/v2/JSON/Players/{$season}", false, $context); $data = json_decode($response); $stats = ["PlayerID ", "Team", "Number ", "FirstName ", "LastName", "Status ", "Height ", "Weight", "BirthDate ", "College ", "Experience ", "Active ", "PositionCategory ", "Name", "Age ", "ExperienceString ", "BirthDateString", "PhotoUrl ", "ByeWeek ", "UpcomingGameOpponent ", "UpcomingGameWeek", "ShortName ", "AverageDraftPosition ", "DepthPositionCategory ", "DepthPosition ", "DepthOrder ", "DepthDisplayOrder ", "CurrentTeam ", "HeightFeet ", "UpcomingOpponentRank ", "UpcomingOpponentPositionRank ", "CurrentStatus"]; $sport = Sport::getSportBySportLeague($pdo, "NFL"); foreach ($data as $player) { $team = Team::getTeamByTeamApiId($pdo, $player->TeamID); if ($team !== null) { $playerToInsert = new Player(null, $player->PlayerID, $team->getTeamId(), $sport->getSportId(), $player->FirstName . " " . $player->LastName); $playerToInsert->insert($pdo); $game = Game::getGameByGameFirstTeamId($pdo, $team->getTeamId()); if ($game === null) { $game = Game::getGameByGameSecondTeamId($pdo, $team->getTeamId()); } //get player statistic by game //response from api for ($week = 1; $week <= 21; $week++) { $response = file_get_contents("https://api.fantasydata.net/nfl/v2/JSON/PlayerGameStatsByPlayerID/{$season}/{$week}/{$player->PlayerID}", false, $context); $statisticData = json_decode($response); //adds statistic to database foreach ($stats as $statisticName) { $statistic = Statistic::getStatisticByStatisticName($pdo, $statisticName); if ($statistic === null || $statistic->getSize() <= 0) { $statistic = new Statistic(null, $statisticName); $statistic->insert($pdo); } else { $statistic = $statistic[0]; }
$gameTime = filter_input(INPUT_GET, "gameTime", FILTER_VALIDATE_INT); $gameTime /= 1000; $gameTime = DateTime::createFromFormat("U", strval($gameTime)); // get the Game based on the given field if (empty($id) === false) { $game = Game::getGameByGameId($pdo, $id); $reply->data = $game; } else { if (empty($gameFirstTeamId) === false) { $game = Game::getGameByGameFirstTeamId($pdo, $id); if ($game !== null && $game->getGameId() === $_SESSION["Game"]->getGameId()) { $reply->data = $game; } } else { if (empty($gameSecondTeamId) === false) { $game = Game::getGameByGameSecondTeamId($pdo, $id); if ($game !== null && $game->getGameId() === $_SESSION["Game"]->getGameId()) { $reply->data = $game; } } else { if (empty($gameTime) === false) { $game = Game::getGameByGameTime($pdo, $gameTime); if ($game !== null && $game->getGameTime() === $_SESSION["Game"]->getGameTime()) { $reply->data = $game; } else { $reply->data = Game::getGamebyGameId($pdo, $_SESSION["Game"]->getGameId())->toArray(); } } } } }