messageRepository = $messageRepository; } /** * @param Request $request * @return \Illuminate\Http\JsonResponse */ public function sendMessage(Request $request) { $response = []; try{ $response = $this->messageRepository->sendMessage($request); $this->setStatusCode($response['status']); } catch (\Exception $ex) { Log::error($ex); $this->setStatusCode(403); } return $this->respond($response); } /** * @param Request $request * @return \Illuminate\Http\JsonResponse */ public function messageThreadList(Request $request) { $response = []; try{ $response = $this->messageRepository->messageThreadList($request); $this->setStatusCode($response['status']); } catch (\Exception $ex) { Log::error($ex); $this->setStatusCode(403); } return $this->respond($response); } /** * @param Request $request * @param $id * @return \Illuminate\Http\JsonResponse */ public function messageList(Request $request) { $response = []; $messageListing = $this->messageRepository->messageList($request); $messageData = (!empty($messageListing['data'])) ? $messageListing['data']->toArray() : $messageListing['data']; $temp = (!empty($messageListing['data'])) ? array_reverse($messageData['data']) : []; unset($messageData['data']); $messageData['data'] = collect($temp) ->groupBy(function ($val) { $val['created_at'] = Carbon::parse($val['created_at'])->format('Y/m/d'); return Carbon::parse($val['created_at'])->format('Y/m/d'); }); // $messageData['data'] = $messageData['data']->reverse(); $user = getUserByID($request->user_id); if ($user) { $messageData['receiver_image'] = !empty($user['avatar']) ? $user['avatar'] : url('media/avatars/avatar0.jpg'); } else { $messageData['receiver_image'] = asset('/images/misc/shravak.png'); } $messageData['unread_count'] = messagesCounter(); $userBlocked = UserBlocked::where('user_id', $user->id)->orWhere('blocked_by', loggedInUser()->id)->first(); //When user profile is blocked if (!empty($userBlocked)) { $isBlocked = Constant::STATUS_ONE; //When profile is not blocked } else { $isBlocked = Constant::STATUS_ZERO; } $messageData['is_blocked'] = $isBlocked; if ($messageListing['status']) { $response = [ 'status' => __('api.messages.list'), 'code' => 200, 'data' => $messageData ]; } else { $response = [ 'status' => __('auth.something_went_wrong'), 'code' => 500, 'message' => $messageListing['error'] ]; } return response()->json($response, $response['code']); } /** * @param Request $data * @param $id * @return \Illuminate\Http\JsonResponse */ public function searchMessage(Request $data, $id) { $response = []; try{ $response = $this->messageRepository->searchMessage($data, $id); $this->setStatusCode($response['status']); } catch (\Exception $ex) { Log::error($ex); $this->setStatusCode(403); } return $this->respond($response); } /** * @param $messageThreadId * @return \Illuminate\Http\JsonResponse */ public function clearMessageConversation($messageThreadId) { $response = []; try{ $response = $this->messageRepository->clearMessageConversation($messageThreadId); $this->setStatusCode($response['status']); } catch (\Exception $ex) { Log::error($ex); $this->setStatusCode(403); } return $this->respond($response); } /** * @param $id * @return \Illuminate\Http\JsonResponse */ public function deleteMessageThread($id) { $response = []; try{ $response = $this->messageRepository->deleteMessageThread($id); $this->setStatusCode($response['status']); } catch (\Exception $ex) { Log::error($ex); $this->setStatusCode(403); } return $this->respond($response); } }