public function detectContentTypeOfPost(Post $post) : string { if (count($post->getAttachmentIds())) { $attachment = $this->attachmentService->getById($post->getAttachmentIds()[0]); switch ($resource = $attachment->getMetadata()['resource']) { default: throw new \Exception(sprintf('Unknown resource `%s`', $resource)); case YoutubeLinkMetadata::RESOURCE_TYPE: return ContentTypeCriteria::CONTENT_TYPE_VIDEO; case PageLinkMetadata::RESOURCE_TYPE: return ContentTypeCriteria::CONTENT_TYPE_LINK; case ImageLinkMetadata::RESOURCE_TYPE: return ContentTypeCriteria::CONTENT_TYPE_IMAGE; case WebmLinkMetadata::RESOURCE_TYPE: return ContentTypeCriteria::CONTENT_TYPE_VIDEO; case UnknownLinkMetadata::RESOURCE_TYPE: return ContentTypeCriteria::CONTENT_TYPE_TEXT; } } else { return ContentTypeCriteria::CONTENT_TYPE_TEXT; } }
private function formatAttachments(Post $post) : array { return array_map(function (Attachment $attachment) { return $this->attachmentFormatter->format($attachment); }, $this->attachmentService->getManyByIds($post->getAttachmentIds())); }