/** * Generic "extra normalizer" * * @param $data * @param string $path To be overridden * * @return array */ protected function extraNormalizer($data, $path = '') { if (is_array($data)) { if (!$path) { $path = $this->normalizersMap->getPathContext(); } $path = trim($path, '.'); $pathsFields = []; foreach ($this->normalizersMap->getPathNormalizers() as $normalizer) { $pathsFields[] = $normalizer['pathWithoutContext']; } // Remove all paths fields return ArrayUtils::removeKeys(ArrayUtils::getNested($data, $path, []), $pathsFields); } return []; }
protected function imageLoader() { return ArrayUtils::getNested($this->service->requestJSON(self::REQUEST_IMAGE), 'data.url'); }
protected function profileUrlNormalizer($data) { $id = ArrayUtils::getNested($data, 'response.0.screen_name'); return !$id ? null : 'https://vk.com/' . ArrayUtils::getNested($data, 'response.0.screen_name'); }
protected function imageUrlNormalizer($data) { $avatarUrl = ArrayUtils::getNested($data, 'user.avatar_url'); return !$avatarUrl ?: 'https://api.harvestapp.com/' . $avatarUrl; }
protected function locationNormalizer($data) { $path = trim($this->normalizersMap->getPathContext(), '.'); return join(', ', array_filter([ArrayUtils::getNested($data, "{$path}.city", ''), ArrayUtils::getNested($data, "{$path}.region", '')])); }