3
3
namespace CSlant \Blog \Api \Http \Actions \Author ;
4
4
5
5
use Botble \Base \Http \Responses \BaseHttpResponse ;
6
+ use CSlant \Blog \Api \Http \Requests \Author \AuthorGetListRequest ;
6
7
use CSlant \Blog \Api \Http \Resources \Author \ListAuthorResource ;
7
8
use CSlant \Blog \Api \OpenApi \Schemas \Resources \Author \ListAuthorResourceSchema ;
8
9
use CSlant \Blog \Api \Services \AuthorService ;
10
+ use CSlant \Blog \Api \Supports \FilterAuthor ;
9
11
use CSlant \Blog \Core \Http \Actions \Action ;
10
12
use Illuminate \Http \JsonResponse ;
11
13
use Illuminate \Http \RedirectResponse ;
12
- use Illuminate \Http \Request ;
13
14
use Illuminate \Http \Resources \Json \JsonResource ;
14
15
use OpenApi \Attributes \Get ;
15
16
use OpenApi \Attributes \JsonContent ;
@@ -40,7 +41,7 @@ public function __construct(AuthorService $authorService)
40
41
}
41
42
42
43
/**
43
- * @param Request $request
44
+ * @param AuthorGetListRequest $request
44
45
*
45
46
* @return BaseHttpResponse|JsonResource|JsonResponse|RedirectResponse
46
47
* @group Blog
@@ -57,6 +58,15 @@ public function __construct(AuthorService $authorService)
57
58
summary: "Get all authors with pagination " ,
58
59
tags: ["Author " ],
59
60
parameters: [
61
+ new Parameter (
62
+ name: 'is_super ' ,
63
+ description: 'is_super direction:
64
+ 0 for admin
65
+ 1 for super admin ' ,
66
+ in: 'query ' ,
67
+ required: false ,
68
+ schema: new Schema (type: 'integer ' , default: 0 , enum: [0 , 1 ])
69
+ ),
60
70
new Parameter (
61
71
name: 'order_by ' ,
62
72
description: 'Can order by field: id, posts_count, updated_at, ... ' ,
@@ -124,9 +134,11 @@ public function __construct(AuthorService $authorService)
124
134
]
125
135
)
126
136
]
127
- public function __invoke (Request $ request ): BaseHttpResponse |JsonResponse |JsonResource |RedirectResponse
137
+ public function __invoke (AuthorGetListRequest $ request ): BaseHttpResponse |JsonResponse |JsonResource |RedirectResponse
128
138
{
129
- $ users = $ this ->authorService ->getAllAuthor ($ request );
139
+ $ filters = FilterAuthor::setFilters ((array ) $ request ->validated ());
140
+
141
+ $ users = $ this ->authorService ->getAllAuthor ($ filters );
130
142
131
143
return $ this
132
144
->httpResponse ()
0 commit comments