From 3d64a53b6a16db7d8eed875bbbebc45c60002c4c Mon Sep 17 00:00:00 2001 From: Irfan Date: Fri, 27 Nov 2020 00:30:02 +0500 Subject: [PATCH] add `GET /random/users` --- .../Controllers/V4DB/RandomController.php | 32 +++++++++++++++++++ app/Http/Resources/V4/UserCollection.php | 28 ++++++++++++++++ routes/web.v4.php | 4 +++ 3 files changed, 64 insertions(+) create mode 100644 app/Http/Resources/V4/UserCollection.php diff --git a/app/Http/Controllers/V4DB/RandomController.php b/app/Http/Controllers/V4DB/RandomController.php index 2944774..f459b24 100644 --- a/app/Http/Controllers/V4DB/RandomController.php +++ b/app/Http/Controllers/V4DB/RandomController.php @@ -11,8 +11,12 @@ use App\Http\Resources\V4\AnimeResource; use App\Http\Resources\V4\CharacterCollection; use App\Http\Resources\V4\MangaCollection; use App\Http\Resources\V4\PersonCollection; +use App\Http\Resources\V4\ResultsResource; +use App\Http\Resources\V4\UserCollection; use App\Manga; use App\Person; +use App\Profile; +use App\User; use Illuminate\Http\Request; use MongoDB\BSON\UTCDateTime; @@ -170,4 +174,32 @@ class RandomController extends Controller $results ); } + + /** + * @OA\Get( + * path="/random/users", + * operationId="getRandomUsers", + * tags={"random"}, + * + * @OA\Response( + * response="200", + * description="Returns Random Users", + * @OA\JsonContent() + * ), + * @OA\Response( + * response="400", + * description="Error: Bad request. When required parameters were not supplied.", + * ), + * ), + */ + public function users(Request $request) + { + + $results = Profile::query() + ->raw(fn($collection) => $collection->aggregate([ ['$sample' => ['size' => 1]] ])); + + return new UserCollection( + $results + ); + } } diff --git a/app/Http/Resources/V4/UserCollection.php b/app/Http/Resources/V4/UserCollection.php new file mode 100644 index 0000000..cf0df7f --- /dev/null +++ b/app/Http/Resources/V4/UserCollection.php @@ -0,0 +1,28 @@ + $this->collection, + 'links' => [ + 'self' => 'link-value', + ], + ]; + } +} \ No newline at end of file diff --git a/routes/web.v4.php b/routes/web.v4.php index 87d7d48..369b2a1 100755 --- a/routes/web.v4.php +++ b/routes/web.v4.php @@ -511,5 +511,9 @@ $router->group( $router->get('/people', [ 'uses' => 'RandomController@people', ]); + + $router->get('/users', [ + 'uses' => 'RandomController@users', + ]); } ); \ No newline at end of file