Ejemplo n.º 1
0
/**
 * @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;
    }
}
Ejemplo n.º 2
0
    echo "Something went wrong: " . $typeError->getMessage() . PHP_EOL;
}
//downloader for players NFL
try {
    $seasoning = ["2015", "2016"];
    foreach ($seasoning as $season) {
        $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->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
Ejemplo n.º 3
0
    //sanitize inputs
    $id = filter_input(INPUT_GET, "id", FILTER_VALIDATE_INT);
    //make sure the id is valid for methods that require it
    if (($method === "DELETE" || $method === "PUT") && (empty($id) === true || $id < 0)) {
        throw new InvalidArgumentException("id can not be empty or negative", 405);
    }
    //sanitize and trim other fields
    $sportId = filter_input(INPUT_GET, "sportId", FILTER_VALIDATE_INT);
    $sportLeague = filter_input(INPUT_GET, "sportLeague", FILTER_VALIDATE_INT);
    $sportName = filter_input(INPUT_GET, "sportName", FILTER_VALIDATE_INT);
    //get the Sport based on the given field
    if (empty($id) === false) {
        $sport = Sport::getSportBySportId($pdo, $id);
        $reply->data = $sport;
    } elseif (empty($teamId) === false) {
        $sport = Sport::getSportBySportLeague($pdo, $playerTeamId);
        $reply->date = $sport;
    } elseif (empty($sportId) === false) {
        $sport = Sport::getSportBySportName($pdo, $playerSportId);
        $reply->date = $sport;
    } else {
        $reply->data = Sport::getAllSportLeagues($pdo)->toArray();
    }
} catch (Exception $exception) {
    $reply->status = $exception->getCode();
    $reply->message = $exception->getMessage();
} catch (TypeError $typeError) {
    $reply->status = $typeError->getCode();
    $reply->message = $typeError->getMessage();
}
header("Content-type: application/json");