/** * * @param mixed $input * @param NefubObject $oOutput * @return NefubObject */ public static function mapTypeFromAPI($input, $sTypeClassName, NefubObject $oOutput = null) { if (!isset(self::$mappedTypes[$sTypeClassName][$input])) { self::$log = array(); $sAction = 'geupdatet'; if (!$oOutput) { $oOutput = $sTypeClassName::getByNefubName($input); if (!$oOutput) { $oOutput = new $sTypeClassName(); $sAction = 'toegevoegd'; } } else { if ($sTypeClassName != get_class($oOutput)) { throw new Exception('Supplied object is not of type ' . $sTypeClassName); } } $oOutput = static::handleMapping($input, $oOutput); $oOutput->save(); self::log($sTypeClassName . ' ' . $sAction . ': ' . $oOutput->nefub_name); if (!isset(self::$mappedTypes[$sTypeClassName])) { self::$mappedTypes[$sTypeClassName] = array(); } self::$mappedTypes[$sTypeClassName][$input] = $oOutput; } return self::$mappedTypes[$sTypeClassName][$input]; }
/** * * @param stdClass $input * @param stdClass $parentInput * @param GameAction $oGameAction * @return GameAction */ public static function mapGameActionFromAPI($input, $parentInput, GameAction $oOutput = null) { $oGameActionType = NefubTypeMapper::mapTypeFromAPI($input->Type, 'GameActionType'); $time = date('H:i:s', '00:' . strtotime($input->Time)); if (!$oOutput) { $where = array('game_nefub_id' => $parentInput->ID, 'team_nefub_id' => $input->Team->ID, 'game_action_type_id' => $oGameActionType->getId(), 'period' => $input->Period, 'time' => $time); $oOutput = GameAction::getSingle($where); if (!$oOutput) { $oOutput = new GameAction(); } } // Mapping $oOutput->time = $time; $oOutput->period = $input->Period; $oOutput->game_nefub_id = $parentInput->ID; $oOutput->team_nefub_id = $input->Team->ID; $oOutput->game_action_type_id = $oGameActionType->getId(); $oOutput->code = $input->Code; $oOutput->description = $input->Description; if ($input->Person) { $oOutput->person_nefub_id = $input->Person->ID; } if ($input->Assist) { $oOutput->assist_person_nefub_id = $input->Assist->ID; } $oOutput->save(); self::log('GameAction toegevoegd aan Game ' . $oOutput->game_nefub_id); return $oOutput; }
/** * @param mixed $input * @param NefubObject $oOutput */ protected static function handleMapping($input, NefubObject $oOutput) { $oOutput->nefub_id = $input->ID; $oOutput->competition_nefub_id = $input->Competition->ID; $oOutput->season_nefub_id = Season::getInstance()->nefub_id; $oOutput->name = $input->Name; $oOutput->information = $input->Information; $oPouleType = NefubTypeMapper::mapTypeFromAPI($input->Type, 'PouleType'); $oOutput->poule_type_id = $oPouleType->getId(); }
/** * @param mixed $input * @param NefubObject $oOutput */ protected static function handleMapping($input, NefubObject $oOutput) { $oOutput->nefub_id = $input->ID; $oGenre = NefubTypeMapper::mapTypeFromAPI($input->Genre, 'Genre'); $oGender = NefubTypeMapper::mapTypeFromAPI($input->Gender, 'Gender'); $oCompetitionType = NefubTypeMapper::mapTypeFromAPI($input->Type, 'CompetitionType'); $oOutput->genre_id = $oGenre->getId(); $oOutput->gender_id = $oGender->getId(); $oOutput->competition_type_id = $oCompetitionType->getId(); $aSeasonYears = explode('-', $input->Season); $oOutput->season_nefub_id = $aSeasonYears[0]; }
/** * * @param stdClass $gamePerson * @param int $teamNefubId * @param Game $oGame * @return GamePerson */ protected function convertGamePerson(stdClass $gamePerson, $teamNefubId, Game $oGame) { if (!($oGamePerson = GamePerson::getByNefubId($gamePerson->Person->ID, $oGame->nefub_id))) { $oGamePerson = new GamePerson(); $this->addedNefubObject($oGamePerson); } $oGamePerson->game_nefub_id = $oGame->nefub_id; $oGamePerson->team_nefub_id = $teamNefubId; $oGamePerson->person_nefub_id = $gamePerson->Person->ID; $oGamePerson->shirt_number = $gamePerson->Number; if ($gamePerson->Type) { $oType = NefubTypeMapper::mapTypeFromAPI($gamePerson->Type, 'GamePersonSpecialType'); $oGamePerson->game_person_special_type_id = $oType->getId(); } $oGamePerson->save(); return $oGamePerson; }