예제 #1
0
 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;
     }
 }
예제 #2
0
 private function formatAttachments(Post $post) : array
 {
     return array_map(function (Attachment $attachment) {
         return $this->attachmentFormatter->format($attachment);
     }, $this->attachmentService->getManyByIds($post->getAttachmentIds()));
 }