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(); }
/** * 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(); }