13
13
class UserController extends Controller
14
14
{
15
15
/**
16
- * View all users.
16
+ * View all users
17
17
*
18
18
* This endpoint uses a custom Scribe strategy that parses a
19
- * `@usesPaginationParameters ` annotation.
19
+ * `@usesPagination ` annotation to add some query parameters .
20
20
*
21
- * @usesPaginationParameters
21
+ * The sample response is gotten by Scribe making a test API call (aka "response call").
22
+ *
23
+ * @usesPagination
22
24
*/
23
25
public function index ()
24
26
{
25
- //
27
+ return UserResource:: collection (User:: all ());
26
28
}
27
29
28
30
/**
@@ -38,9 +40,33 @@ public function store(CreateUserRequest $request)
38
40
return ['user ' => $ user , 'token ' => $ token ->plainTextToken ];
39
41
}
40
42
43
+ /**
44
+ * Authenticate
45
+ *
46
+ * Get a new API token.
47
+ *
48
+ * <aside>Yes, we know you can impersonate any user.🙄</aside>
49
+ *
50
+ * @response {"token": "2|KLDoUXc68Ko0JaFDZoX9qYkUqWglwdGxQsvTGBCg"}
51
+ * @responseField token The new API token. Valid forever.
52
+ */
53
+ public function authenticate ($ id )
54
+ {
55
+ $ token = User::findOrFail ($ id )->createToken ('default ' );
56
+ return ['token ' => $ token ->plainTextToken ];
57
+ }
58
+
41
59
/**
42
60
* Fetch a user
43
61
*
62
+ * This endpoint's response uses an Eloquent API resource, so we tell Scribe that using an annotation,
63
+ * and it figures out how to generate a sample. The 404 sample is gotten from a "response file".
64
+ *
65
+ * <aside class="success">Also, pretty cool: this endpoint's URL parameters were figured out entirely by Scribe!</aside>
66
+ *
67
+ * @apiResource App\Http\Resources\UserResource
68
+ * @apiResourceModel App\Models\User with=sideProjects
69
+ * @responseFile 404 responses/not_found.json {"resource": "user"}
44
70
*/
45
71
public function show ($ id )
46
72
{
0 commit comments