add GET /random/users

This commit is contained in:
Irfan 2020-11-27 00:30:02 +05:00
parent 246fa45dcc
commit 3d64a53b6a
3 changed files with 64 additions and 0 deletions

View File

@ -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
);
}
}

View File

@ -0,0 +1,28 @@
<?php
namespace App\Http\Resources\V4;
use Illuminate\Http\Resources\Json\ResourceCollection;
class UserCollection extends ResourceCollection
{
public $collects = 'App\Http\Resources\V4\ProfileResource';
/**
* Transform the resource collection into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'data' => $this->collection,
'links' => [
'self' => 'link-value',
],
];
}
}

View File

@ -511,5 +511,9 @@ $router->group(
$router->get('/people', [
'uses' => 'RandomController@people',
]);
$router->get('/users', [
'uses' => 'RandomController@users',
]);
}
);