33namespace Pharaonic \Laravel \Jsonable \Resources \Json ;
44
55use Illuminate \Http \Resources \Json \ResourceCollection as IlluminateResourceCollection ;
6+ use Illuminate \Http \Resources \Json \ResourceResponse ;
67use Illuminate \Pagination \AbstractCursorPaginator ;
78use Illuminate \Pagination \AbstractPaginator ;
89use Illuminate \Support \Arr ;
910
1011class ResourceCollection extends IlluminateResourceCollection
1112{
1213 /**
13- * Create a new resource instance.
14+ * The name of the resource being collected.
15+ *
16+ * @var string
17+ */
18+ public $ collects ;
19+
20+ /**
21+ * Response message
22+ *
23+ * @var string
24+ */
25+ public static $ message = null ;
26+
27+ /**
28+ * Create a new anonymous resource collection.
1429 *
1530 * @param mixed $resource
31+ * @param string $collects
32+ * @param string|null $message
1633 * @return void
1734 */
18- public function __construct ($ resource , ?string $ message = null )
35+ public function __construct ($ resource , $ collects , ?string $ message = null )
1936 {
20- parent ::__construct ($ resource );
37+ $ this ->collects = $ collects ;
38+ self ::$ message = $ message ;
2139
22- $ this ->resource = $ this ->collectResource ($ resource );
23- if ($ message ) $ this ->message = $ message ;
40+ parent ::__construct ($ resource );
2441 }
2542
2643 /**
@@ -33,8 +50,9 @@ public function toResponse($request)
3350 {
3451 if ($ this ->resource instanceof AbstractPaginator || $ this ->resource instanceof AbstractCursorPaginator)
3552 return $ this ->preparePaginatedResponse ($ request );
53+
3654
37- return json ()->success ($ this ->resource -> toArray (), $ this -> message ?? null );
55+ return json ()->success ($ this ->toArray ($ request ), static :: $ message ?? null );
3856 }
3957
4058 /**
0 commit comments