diff --git a/app/Http/Controllers/Admin/ProfileController.php b/app/Http/Controllers/Admin/ProfileController.php new file mode 100644 index 0000000..b4a9fd8 --- /dev/null +++ b/app/Http/Controllers/Admin/ProfileController.php @@ -0,0 +1,51 @@ + []]], + responses: [ + new OAT\Response( + response: HttpResponse::HTTP_OK, + description: 'Ok', + content: new OAT\JsonContent(ref: '#/components/schemas/AdminResource') + ), + ] + )] + public function me(Request $request): JsonResponse + { + return Response::json(new AdminResource($request->user())); + } +} diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 3ac8235..d8cdee1 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -24,6 +24,7 @@ OAT\Tag(name: 'auth', description: 'User authentication'), OAT\Tag(name: 'adminAuth', description: 'Admin authentication'), OAT\Tag(name: 'profile', description: 'User profile'), + OAT\Tag(name: 'adminProfile', description: 'Admin profile'), OAT\Schema( schema: 'ValidationError', properties: [ diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 5dd9591..1fe8846 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -39,6 +39,13 @@ public function boot() ], function () { require base_path('routes/api/profile.php'); }); + + Route::group([ + 'middleware' => ['auth:admin'], + 'prefix' => 'admin' + ], function () { + require base_path('routes/api/admin/profile.php'); + }); }); Route::middleware('web') diff --git a/public/openapi.yaml b/public/openapi.yaml index 8c32a3f..1fb402e 100644 --- a/public/openapi.yaml +++ b/public/openapi.yaml @@ -8,6 +8,23 @@ servers: url: 'http://localhost' description: 'Local API server' paths: + /api/admin/profile: + get: + tags: + - adminProfile + summary: me + description: 'Get the authenticated admin.' + operationId: Admin.ProfileController.me + responses: + '200': + description: Ok + content: + application/json: + schema: + $ref: '#/components/schemas/AdminResource' + security: + - + BearerToken: [] /api/signup: post: tags: @@ -291,3 +308,6 @@ tags: - name: profile description: 'User profile' + - + name: adminProfile + description: 'Admin profile' diff --git a/routes/api/admin/profile.php b/routes/api/admin/profile.php new file mode 100644 index 0000000..5779f9c --- /dev/null +++ b/routes/api/admin/profile.php @@ -0,0 +1,8 @@ + 'profile'], function () { + Route::get('/', [ProfileController::class, 'me']); +});