DirectMessageController.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Auth;
  4. use Illuminate\Http\Request;
  5. use App\{
  6. DirectMessage,
  7. Profile,
  8. Status
  9. };
  10. class DirectMessageController extends Controller
  11. {
  12. public function __construct()
  13. {
  14. $this->middleware('auth');
  15. }
  16. public function inbox(Request $request)
  17. {
  18. $profile = Auth::user()->profile;
  19. $inbox = DirectMessage::whereToId($profile->id)
  20. ->with(['author','status'])
  21. ->orderBy('created_at', 'desc')
  22. ->groupBy('from_id')
  23. ->paginate(10);
  24. return view('account.messages', compact('inbox'));
  25. }
  26. public function show(Request $request, int $pid, $mid)
  27. {
  28. $profile = Auth::user()->profile;
  29. if($pid !== $profile->id) {
  30. abort(403);
  31. }
  32. $msg = DirectMessage::whereToId($profile->id)
  33. ->findOrFail($mid);
  34. $thread = DirectMessage::whereToId($profile->id)
  35. ->orWhere([['from_id', $profile->id],['to_id', $msg->from_id]])
  36. ->orderBy('created_at', 'desc')
  37. ->paginate(10);
  38. return view('account.message', compact('msg', 'profile', 'thread'));
  39. }
  40. public function compose(Request $request)
  41. {
  42. $profile = Auth::user()->profile;
  43. }
  44. }