UserController.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Exceptions\ApiException;
  4. use App\Http\Requests\LoginRequest;
  5. use App\Http\Requests\ServiceRequest;
  6. use App\Http\Resources\UserRegistrationsResource;
  7. use App\Http\Resources\UserRegistrationsResource2;
  8. use App\Models\Registration;
  9. use App\Models\User;
  10. use App\Models\UserRegistration;
  11. use Illuminate\Http\Request;
  12. use Illuminate\Support\Facades\Auth;
  13. class UserController extends Controller
  14. {
  15. public function login(LoginRequest $request)
  16. {
  17. $u = User::where("login", $request->login)->where("password", $request->password)->first();
  18. if (!$u) {
  19. throw new ApiException(401, "Authentication failed");
  20. }
  21. $data = [
  22. "data" => [
  23. "user_token" => $u->generateToken()
  24. ]
  25. ];
  26. return response()->json($data);
  27. }
  28. public function logout()
  29. {
  30. Auth::user()->api_token = null;
  31. Auth::user()->save();
  32. $data = [
  33. "data" => [
  34. "message" => "logout"
  35. ]
  36. ];
  37. return response()->json($data);
  38. }
  39. public function services()
  40. {
  41. $reg_id = UserRegistration::where("user_id", Auth::id())->get();
  42. return
  43. [
  44. "count" => 1,
  45. "next" => "next_id",
  46. "previous" => "previous_id",
  47. "results" => UserRegistrationsResource::collection($reg_id)
  48. ];
  49. }
  50. public function service(Registration $registration)
  51. {
  52. $reg_id = UserRegistration::where("user_id", Auth::id())->where("registration_id",$registration->id)->get();
  53. return UserRegistrationsResource::collection($reg_id);
  54. }
  55. public function add_service(ServiceRequest $request)
  56. {
  57. $reg = Registration::where("name" ,$request->service)->first();
  58. $reg_id =UserRegistration::create([
  59. "user_id"=>Auth::id(),
  60. "registration_id"=>$reg->id,
  61. "status"=>1
  62. ]);
  63. return [
  64. "id_registration"=> $reg_id->id
  65. ];
  66. }
  67. public function remove_service(UserRegistration $registration)
  68. {
  69. $reg_id = UserRegistration::where("user_id", Auth::id())->where("id",$registration->id)->first();
  70. $reg_id->delete();
  71. return [
  72. "id"=>$reg_id->id
  73. ];
  74. }
  75. }