Advertisement
HristoBaychev

Untitled

Jun 29th, 2023
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.91 KB | None | 0 0
  1. class UserController extends AbstractBaseController
  2. {
  3.  
  4.  
  5.  
  6. public function index()
  7. {
  8. try {
  9. $users = User::orderBy('id')->get();
  10. return response()->json(compact('users'));
  11. } catch (\Exception $e) {
  12. return response()->json([
  13. 'message' => 'Error',
  14. 'error' => $e->getMessage()
  15. ], 500);
  16. }
  17. }
  18.  
  19. public function create()
  20. {
  21.  
  22. return response()->json([
  23. 'first_name' => 'input your first name',
  24. 'last_name' => 'input your last name',
  25. 'email' => 'input your email',
  26. 'user_type' => 'user type',
  27. 'password' => 'password minimum 5 char',
  28. ], 200);
  29. }
  30.  
  31. public function store(Request $request)
  32. {
  33. try {
  34. if (!$request->wantsJson()) {
  35. return response()->json([
  36. 'message' => 'Error',
  37. 'error' => 'Invalid request format. JSON format is required.',
  38. ], 400);
  39. }
  40.  
  41. $validatedData = $request->validate([
  42. 'first_name' => 'required',
  43. 'last_name' => 'required',
  44. 'email' => 'required|email|unique:users',
  45. 'user_type' => 'required',
  46. 'password' => 'required|min:5',
  47. ]);
  48.  
  49. $user = new User();
  50. $user->first_name = $request->input('first_name');
  51. $user->last_name = $request->input('last_name');
  52. $user->email = $request->input('email');
  53. $user->user_type = $request->input('user_type');
  54. $user->password = $request->input('password');
  55.  
  56. return response()->json([
  57. 'message' => 'Success',
  58. 'data' => 'User created successfully.'
  59. ]);
  60. } catch (ValidationException $e) {
  61. return response()->json([
  62. 'message' => 'Validation Error',
  63. 'errors' => $e->errors()
  64. ], 422);
  65. }
  66. }
  67.  
  68.  
  69. public function show(Request $request, $id)
  70. {
  71. try {
  72. if (!is_numeric($id)) {
  73. throw new \Exception('Invalid ID');
  74. }
  75.  
  76. $user = User::findOrFail($id);
  77. return response()->json(compact('user'));
  78. } catch (\Exception $e) {
  79. return response()->json([
  80. 'message' => 'Error',
  81. 'error' => $e->getMessage()
  82. ], 500);
  83. }
  84. }
  85.  
  86.  
  87.  
  88. public function edit()
  89. {
  90. return response()->json([
  91. 'first_name' => 'input your first name',
  92. 'last_name' => 'input your last name',
  93. 'email' => 'input your email',
  94. 'user_type' => 'user type',
  95. 'password' => 'password minimum 5 char',
  96. ], 200);
  97. }
  98.  
  99. public function update(Request $request, User $user)
  100. {
  101. try {
  102. if (!$request->wantsJson()) {
  103. return response()->json([
  104. 'message' => 'Error',
  105. 'error' => 'Invalid request format. JSON format is required.',
  106. ], 400);
  107. }
  108.  
  109. $validUserTypes = array_values((new ReflectionClass(UserType::class))->getConstants());
  110. $validUserTypes = array_diff($validUserTypes, ['created_at', 'updated_at']);
  111.  
  112. if ($request->has('first_name')) {
  113. $user->first_name = $request->input('first_name');
  114. }
  115.  
  116. if ($request->has('last_name')) {
  117. $user->last_name = $request->input('last_name');
  118. }
  119.  
  120. if ($request->has('email')) {
  121. $user->email = $request->input('email');
  122. }
  123.  
  124. if ($request->has('user_type') && in_array($request->input('user_type'), $validUserTypes)) {
  125. $user->user_type = $request->input('user_type');
  126. } else {
  127. return response()->json([
  128. 'message' => 'Error',
  129. 'error' => 'Wrong user type',
  130. ], 500);
  131. }
  132.  
  133. if ($request->has('password')) {
  134. $user->password = $request->input('password');
  135. }
  136.  
  137. $user->save();
  138.  
  139. return response()->json(['success' => 'User updated successfully.']);
  140. } catch (\Exception $e) {
  141. return response()->json([
  142. 'message' => 'Error',
  143. 'error' => $e->getMessage()
  144. ], 500);
  145. }
  146. }
  147.  
  148. public function destroy(User $user)
  149. {
  150. try {
  151. $user->delete();
  152. return response()->json(['success' => 'User deleted successfully.']);
  153. } catch (\Exception $e) {
  154. return response()->json([
  155. 'message' => 'Error',
  156. 'error' => $e->getMessage()
  157. ], 500);
  158. }
  159. }
  160. }
  161.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement