예제 #1
0
 private function createPostFromParameters(CreatePostParameters $createPostParameters) : Post
 {
     $postType = $this->postTypeFactory->createPostTypeByIntCode($createPostParameters->getPostTypeCode());
     $collection = $this->collectionService->getCollectionById($createPostParameters->getCollectionId());
     $profile = $this->profileService->getProfileById($createPostParameters->getProfileId());
     $post = new Post($postType, $profile, $collection, $createPostParameters->getContent());
     $post->setAttachmentIds($createPostParameters->getAttachmentIds());
     $post->setThemeIds($collection->getThemeIds());
     $this->postRepository->createPost($post);
     return $post;
 }
예제 #2
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;
     }
 }
예제 #3
0
 private function formatAttachments(Post $post) : array
 {
     return array_map(function (Attachment $attachment) {
         return $this->attachmentFormatter->format($attachment);
     }, $this->attachmentService->getManyByIds($post->getAttachmentIds()));
 }
예제 #4
0
 protected function getSource(Post $entity) : Source
 {
     return $source = $this->sourceFactory->getCollectionSource($entity->getCollection()->getId());
 }
 protected function isIndexable(Post $entity) : bool
 {
     return $entity->getPostTypeCode() === DiscussionPostType::CODE_INT;
 }
예제 #6
0
 protected function getThemeIdsWeight(Post $entity) : array
 {
     return $this->themeWeightCalculator->calculateWeights($entity->getThemeIds());
 }
예제 #7
0
 protected function isIndexable(Post $entity) : bool
 {
     return $entity->getCollection()->isCommunityCollection();
 }
예제 #8
0
 protected function isIndexable(Post $entity) : bool
 {
     return $entity->getCollection()->isProfileCollection();
 }