File tree Expand file tree Collapse file tree 4 files changed +134
-1
lines changed Expand file tree Collapse file tree 4 files changed +134
-1
lines changed Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace App \Http \Controllers ;
4
+
5
+ use App \Http \Requests \CreateUserRequest ;
6
+ use App \Http \Resources \UserResource ;
7
+ use App \Models \User ;
8
+ use Illuminate \Http \Request ;
9
+
10
+ /**
11
+ * @group Users
12
+ */
13
+ class UserController extends Controller
14
+ {
15
+ /**
16
+ * View all users.
17
+ *
18
+ * This endpoint uses a custom Scribe strategy that parses a
19
+ * `@usesPaginationParameters` annotation.
20
+ *
21
+ * @usesPaginationParameters
22
+ */
23
+ public function index ()
24
+ {
25
+ //
26
+ }
27
+
28
+ /**
29
+ * Create a user
30
+ *
31
+ * This endpoint's body parameters are automatically generated from a FormRequest.
32
+ */
33
+ public function store (CreateUserRequest $ request )
34
+ {
35
+ /** @var User $user */
36
+ $ user = User::create ($ request ->validated ());
37
+ $ token = $ user ->createToken ('default ' );
38
+ return ['user ' => $ user , 'token ' => $ token ->plainTextToken ];
39
+ }
40
+
41
+ /**
42
+ * Fetch a user
43
+ *
44
+ */
45
+ public function show ($ id )
46
+ {
47
+ return new UserResource (User::findOrFail ($ id ));
48
+ }
49
+
50
+ /**
51
+ * Update the specified resource in storage.
52
+ *
53
+ * @param \Illuminate\Http\Request $request
54
+ * @param int $id
55
+ * @return \Illuminate\Http\Response
56
+ */
57
+ public function update (Request $ request , $ id )
58
+ {
59
+ //
60
+ }
61
+
62
+ /**
63
+ * Remove the specified resource from storage.
64
+ *
65
+ * @param int $id
66
+ * @return \Illuminate\Http\Response
67
+ */
68
+ public function destroy ($ id )
69
+ {
70
+ //
71
+ }
72
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace App \Http \Requests ;
4
+
5
+ use Illuminate \Foundation \Http \FormRequest ;
6
+ use Illuminate \Validation \Rules \Password ;
7
+
8
+ class CreateUserRequest extends FormRequest
9
+ {
10
+ /**
11
+ * Determine if the user is authorized to make this request.
12
+ *
13
+ * @return bool
14
+ */
15
+ public function authorize ()
16
+ {
17
+ return true ;
18
+ }
19
+
20
+ /**
21
+ * Get the validation rules that apply to the request.
22
+ *
23
+ * @return array
24
+ */
25
+ public function rules ()
26
+ {
27
+ return [
28
+ 'name ' => 'string|required|min:1|max:255 ' ,
29
+ 'email ' => 'string|required|email ' ,
30
+ 'password ' => [
31
+ 'string ' ,
32
+ 'required ' ,
33
+ Password::min (8 ),
34
+ ],
35
+ ];
36
+ }
37
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace App \Http \Resources ;
4
+
5
+ use Illuminate \Http \Resources \Json \JsonResource ;
6
+
7
+ class UserResource extends JsonResource
8
+ {
9
+ /**
10
+ * Transform the resource into an array.
11
+ *
12
+ * @param \Illuminate\Http\Request $request
13
+ * @return array
14
+ */
15
+ public function toArray ($ request )
16
+ {
17
+ return [
18
+ 'id ' => $ this ->id ,
19
+ 'name ' => $ this ->name ,
20
+ 'email ' => $ this ->email ,
21
+ ];
22
+ }
23
+ }
Original file line number Diff line number Diff line change 6
6
use Illuminate \Database \Eloquent \Factories \HasFactory ;
7
7
use Illuminate \Foundation \Auth \User as Authenticatable ;
8
8
use Illuminate \Notifications \Notifiable ;
9
+ use Laravel \Sanctum \HasApiTokens ;
9
10
10
11
class User extends Authenticatable
11
12
{
12
- use HasFactory, Notifiable;
13
+ use HasFactory, Notifiable, HasApiTokens ;
13
14
14
15
/**
15
16
* The attributes that are mass assignable.
You can’t perform that action at this time.
0 commit comments