コード例 #1
0
 public function deliver($id, $message_id)
 {
     $chat = CarChat::find($id);
     if (!$chat) {
         return $this->respondNotFound('chat.not-found');
     }
     $message = $chat->messages()->find($message_id);
     if (!$message) {
         return $this->respondNotFound('Message not found');
     }
     $message->delivered_at = Carbon::now();
     $message->save();
     $chat->getMembersTokens()->each(function ($token) use($chat, $message) {
         $state = new StateSender($token->auth_token, true);
         $state->setMessageAsDelivered($chat->id, $message->id, $message->delivered_at);
         $state->send();
     });
     return $this->respondNoContent();
 }
コード例 #2
0
 /**
  * Update delivered timestamp
  *
  * @return Response
  */
 public function deliver()
 {
     $message = Message::find(Input::get('id'));
     $user = Auth::user();
     $member = $message->chat->members->filter(function ($member) use($user) {
         return $member->id == $user->id;
     });
     if (!$member) {
         return $this->respondNotFound('Chat member not found');
     }
     if (!$message) {
         return $this->respondNotFound('Message not found');
     }
     $message->delivered_at = Carbon::now()->timestamp;
     if ($message->save()) {
         $message->chat->members->each(function ($member) use($message) {
             $member->devices->each(function ($device) use($message) {
                 $state = new StateSender($device->auth_token);
                 $state->setMessageAsDelivered($message->chat->id, $message->id, $message->delivered_at);
                 $state->send();
             });
         });
         return $this->respondNoContent();
     }
     return $this->respondServerError();
 }