user()->id)->orWhere('receiver_user_id', auth()->user()->id)->get(); return ChatThreadResource::collection($chat_threads)->additional([ 'result' => true, ]); } public function chat_view($id) { $chat_thread = ChatThread::findOrFail($id); foreach ($chat_thread->chats as $key => $chat) { if ($chat->sender_user_id != auth()->user()->id) { $chat->seen = 1; $chat->save(); } } return (new ChatResource($chat_thread))->additional([ 'result' => true ]); } public function get_old_messages(Request $request) { $chat = Chat::findOrFail($request->first_message_id); $chats = Chat::where('id', '<', $chat->id)->where('chat_thread_id', $chat->chat_thread_id)->latest()->limit(20)->get(); if(count($chats) > 0){ return response()->json([ 'result' => true, 'messages' => $chats, 'first_message_id' => $chats->last()->id ]); } else { return response()->json([ 'result' => false, 'messages' => "", 'first_message_id' => 0 ]); } } public function chat_reply(ChatRequest $request) { // image upload $attachments = []; if ($request->hasFile('attachment')) { foreach ($request->file('attachment') as $file) { $attachment = upload_api_file($file); $attachments[] = $attachment; } } $chat = new ChatService(); $new_chat = $chat->store($request->except(['_token']), $attachments); return $this->success_message('Data inserted successfully!'); } }