Advertisement
Guest User

Untitled

a guest
Sep 16th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.76 KB | None | 0 0
  1. /**
  2.      * @param array $projectMessages
  3.      * @param User  $user
  4.      *
  5.      * @return array
  6.      */
  7.     public function transformUserConversationMessages(
  8.         array $projectMessages,
  9.         User $user
  10.     ): array {
  11.         $result = [];
  12.  
  13.  
  14.         $firstMessage = $projectMessages[0];
  15.  
  16.         /* @var User|AdminUser $conversationSender */
  17.         $conversationReceiver = $firstMessage->getToUser();
  18.  
  19.         if ($firstMessage->isToAdmin()) {
  20.             $conversationReceiver = $firstMessage->getAdminUser();
  21.         }
  22.  
  23.         $projectIdWIthTitle = $firstMessage->getProjectIdWIthTitle();
  24.  
  25.         $result['receiver'] = $conversationReceiver->getName().' sobre '. $projectIdWIthTitle;
  26.         $result['allowSendMessages'] = $firstMessage->allowSendMessages($conversationReceiver);
  27.         $result['uuid'] = $this->buildConversationUUID(
  28.             $firstMessage,
  29.             $user
  30.         );
  31.  
  32.         foreach ($projectMessages as $projectMessage) {
  33.             $result['messages'][] = $this->getUserConversation($projectMessage, $user);
  34.         }
  35.  
  36.         return $result;
  37.     }
  38.  
  39.     /**
  40.      * @param ProjectMessage $projectMessage
  41.      * @param User           $loggedUser
  42.      *
  43.      * @return array
  44.      */
  45.     public function getUserConversation(
  46.         ProjectMessage $projectMessage,
  47.         User $loggedUser
  48.     ): array {
  49.         /** @var AdminUser|User $conversationSender */
  50.         $conversationSender = $projectMessage->getFromUser();
  51.  
  52.         $isAdmin = false;
  53.         if ($projectMessage->isFromAdmin()) {
  54.             $isAdmin = true;
  55.             $conversationSender = $projectMessage->getAdminUser();
  56.         }
  57.  
  58.         return [
  59.             'isAdmin' => $isAdmin,
  60.             'avatar' => $this->getAvatar($conversationSender, $projectMessage->participatesAdmin()),
  61.             'sender' => $projectMessage->messageIsSentByUser($loggedUser) ?
  62.                 'you' :
  63.                 $conversationSender->getName()
  64.             ,
  65.             'sender_first_letter' => $conversationSender->getFirstLetter(),
  66.             'sender_id' => $conversationSender->getId(),
  67.             'message' => $projectMessage->getMessage(),
  68.             'message_date' => $projectMessage->getCreatedAt()->format('d/m/Y'),
  69.             'message_hour' => $projectMessage->getCreatedAt()->format('H:i'),
  70.             'created_at' => $projectMessage->getCreatedAt(),
  71. //            'project' => $projectIdWIthTitle,
  72. //            'uuid' => $this->buildConversationUUID(
  73. //                $projectMessage,
  74. //                $loggedUser
  75. //            ),
  76. //            'receiver' => $conversationReceiver->getName().' sobre '.$projectIdWIthTitle,
  77. //            'allowSendMessages' => $projectMessage->allowSendMessages($conversationReceiver),
  78.         ];
  79.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement