/** * Extract basic profile data from an array. * * @param array $params The parameters with the API response where the data should be extracted from. * @return array */ public static function extractCharacterData($params) { $characters = array(); foreach ($params['characters'] as $character) { $characters[] = BasicProfileParsingService::extract($character); } return $characters; }
/** * Extract ladder position entry from an array. * * @param array $params * @return Position */ public static function extract($params) { $ladderPosition = new Position(); $characterProfile = BasicProfileParsingService::extract($params['character']); $joinDate = new \DateTime(); $joinDate->setTimestamp($params['joinTimestamp']); if (!isset($params['favoriteRaceP1'])) { $params['favoriteRaceP1'] = null; } $ladderPosition->setCharacter($characterProfile)->setJoinDate($joinDate)->setPoints($params['points'])->setWins($params['wins'])->setLosses($params['losses'])->setHighestRank($params['highestRank'])->setPreviousRank($params['previousRank'])->setFavoriteRaceP1($params['favoriteRaceP1']); return $ladderPosition; }
/** * Extract complete player profile information from an array. * * @param array $params * @return Player */ public static function extract($params) { $portrait = IconParsingService::extract($params['portrait']); $career = CareerParsingService::extract($params['career']); $playerSwarmLevels = SwarmLevelsParsingService::extract($params['swarmLevels']); $campaign = CampaignParsingService::extract($params['campaign']); $season = SeasonParsingService::extract($params['season']); $rewards = RewardsParsingService::extract($params['rewards']); $achievements = AchievementParsingService::extract($params['achievements']); $profileBasicInformation = BasicProfileParsingService::extract($params); $player = new Player(); $player->setBasicInformation($profileBasicInformation)->setPortrait($portrait)->setCareer($career)->setSwarmLevels($playerSwarmLevels)->setCampaign($campaign)->setSeason($season)->setRewards($rewards)->setAchievements($achievements); return $player; }