MediaTagController.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\Services\MediaTagService;
  5. use App\MediaTag;
  6. use App\Notification;
  7. use App\Profile;
  8. use App\UserFilter;
  9. use App\User;
  10. use Illuminate\Support\Str;
  11. class MediaTagController extends Controller
  12. {
  13. public function __construct()
  14. {
  15. $this->middleware('auth');
  16. }
  17. public function usernameLookup(Request $request)
  18. {
  19. abort(404);
  20. }
  21. public function untagProfile(Request $request)
  22. {
  23. abort_if(!$request->user(), 403);
  24. $this->validate($request, [
  25. 'status_id' => 'required',
  26. 'profile_id' => 'required'
  27. ]);
  28. $user = $request->user();
  29. $status_id = $request->input('status_id');
  30. $profile_id = (int) $request->input('profile_id');
  31. abort_if((int) $user->profile_id !== $profile_id, 400);
  32. $tag = MediaTag::whereStatusId($status_id)
  33. ->whereProfileId($profile_id)
  34. ->first();
  35. if(!$tag) {
  36. return [];
  37. }
  38. Notification::whereItemType('App\MediaTag')
  39. ->whereItemId($tag->id)
  40. ->whereProfileId($profile_id)
  41. ->whereAction('tagged')
  42. ->delete();
  43. MediaTagService::untag($status_id, $profile_id);
  44. return [200];
  45. }
  46. }