mirror of
https://github.com/jikan-me/jikan-rest.git
synced 2025-02-20 11:23:35 +08:00
add new /random/list/* endpoints
This commit is contained in:
parent
3b59908e4d
commit
f20e40c138
@ -3,19 +3,16 @@
|
||||
namespace App\Dto;
|
||||
|
||||
use App\Contracts\DataRequest;
|
||||
use App\Dto\Concerns\HasLimitParameterWithSmallerMax;
|
||||
use App\Dto\Concerns\HasSfwParameter;
|
||||
use App\Dto\Concerns\HasUnapprovedParameter;
|
||||
use App\Http\Resources\V4\AnimeCollection;
|
||||
use App\Http\Resources\V4\AnimeResource;
|
||||
use Spatie\LaravelData\Data;
|
||||
|
||||
/**
|
||||
* @implements DataRequest<AnimeResource|AnimeCollection>
|
||||
* @implements DataRequest<AnimeResource>
|
||||
*/
|
||||
final class QueryRandomAnimeCommand extends Data implements DataRequest
|
||||
{
|
||||
use HasSfwParameter,
|
||||
HasUnapprovedParameter,
|
||||
HasLimitParameterWithSmallerMax;
|
||||
HasUnapprovedParameter;
|
||||
}
|
||||
|
20
app/Dto/QueryRandomAnimeListCommand.php
Normal file
20
app/Dto/QueryRandomAnimeListCommand.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Dto;
|
||||
|
||||
use App\Contracts\DataRequest;
|
||||
use App\Dto\Concerns\HasLimitParameterWithSmallerMax;
|
||||
use App\Dto\Concerns\HasSfwParameter;
|
||||
use App\Dto\Concerns\HasUnapprovedParameter;
|
||||
use App\Http\Resources\V4\AnimeCollection;
|
||||
use Spatie\LaravelData\Data;
|
||||
|
||||
/**
|
||||
* @implements DataRequest<AnimeCollection>
|
||||
*/
|
||||
final class QueryRandomAnimeListCommand extends Data implements DataRequest
|
||||
{
|
||||
use HasSfwParameter,
|
||||
HasUnapprovedParameter,
|
||||
HasLimitParameterWithSmallerMax;
|
||||
}
|
@ -12,5 +12,4 @@ use Spatie\LaravelData\Data;
|
||||
*/
|
||||
final class QueryRandomCharacterCommand extends Data implements DataRequest
|
||||
{
|
||||
use HasLimitParameterWithSmallerMax;
|
||||
}
|
||||
|
16
app/Dto/QueryRandomCharacterListCommand.php
Normal file
16
app/Dto/QueryRandomCharacterListCommand.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace App\Dto;
|
||||
|
||||
use App\Contracts\DataRequest;
|
||||
use App\Dto\Concerns\HasLimitParameterWithSmallerMax;
|
||||
use App\Http\Resources\V4\CharacterCollection;
|
||||
use Spatie\LaravelData\Data;
|
||||
|
||||
/**
|
||||
* @implements DataRequest<CharacterCollection>
|
||||
*/
|
||||
final class QueryRandomCharacterListCommand extends Data implements DataRequest
|
||||
{
|
||||
use HasLimitParameterWithSmallerMax;
|
||||
}
|
@ -3,19 +3,16 @@
|
||||
namespace App\Dto;
|
||||
|
||||
use App\Contracts\DataRequest;
|
||||
use App\Dto\Concerns\HasLimitParameterWithSmallerMax;
|
||||
use App\Dto\Concerns\HasSfwParameter;
|
||||
use App\Dto\Concerns\HasUnapprovedParameter;
|
||||
use App\Http\Resources\V4\MangaCollection;
|
||||
use App\Http\Resources\V4\MangaResource;
|
||||
use Spatie\LaravelData\Data;
|
||||
|
||||
/**
|
||||
* @implements DataRequest<MangaResource|MangaCollection>
|
||||
* @implements DataRequest<MangaResource>
|
||||
*/
|
||||
final class QueryRandomMangaCommand extends Data implements DataRequest
|
||||
{
|
||||
use HasSfwParameter,
|
||||
HasUnapprovedParameter,
|
||||
HasLimitParameterWithSmallerMax;
|
||||
HasUnapprovedParameter;
|
||||
}
|
||||
|
20
app/Dto/QueryRandomMangaListCommand.php
Normal file
20
app/Dto/QueryRandomMangaListCommand.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Dto;
|
||||
|
||||
use App\Contracts\DataRequest;
|
||||
use App\Dto\Concerns\HasLimitParameterWithSmallerMax;
|
||||
use App\Dto\Concerns\HasSfwParameter;
|
||||
use App\Dto\Concerns\HasUnapprovedParameter;
|
||||
use App\Http\Resources\V4\MangaCollection;
|
||||
use Spatie\LaravelData\Data;
|
||||
|
||||
/**
|
||||
* @implements DataRequest<MangaCollection>
|
||||
*/
|
||||
final class QueryRandomMangaListCommand extends Data implements DataRequest
|
||||
{
|
||||
use HasSfwParameter,
|
||||
HasUnapprovedParameter,
|
||||
HasLimitParameterWithSmallerMax;
|
||||
}
|
@ -3,15 +3,12 @@
|
||||
namespace App\Dto;
|
||||
|
||||
use App\Contracts\DataRequest;
|
||||
use App\Dto\Concerns\HasLimitParameterWithSmallerMax;
|
||||
use App\Http\Resources\V4\PersonCollection;
|
||||
use App\Http\Resources\V4\PersonResource;
|
||||
use Spatie\LaravelData\Data;
|
||||
|
||||
/**
|
||||
* @implements DataRequest<PersonResource|PersonCollection>
|
||||
* @implements DataRequest<PersonResource>
|
||||
*/
|
||||
final class QueryRandomPersonCommand extends Data implements DataRequest
|
||||
{
|
||||
use HasLimitParameterWithSmallerMax;
|
||||
}
|
||||
|
16
app/Dto/QueryRandomPersonListCommand.php
Normal file
16
app/Dto/QueryRandomPersonListCommand.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace App\Dto;
|
||||
|
||||
use App\Contracts\DataRequest;
|
||||
use App\Dto\Concerns\HasLimitParameterWithSmallerMax;
|
||||
use App\Http\Resources\V4\PersonCollection;
|
||||
use Spatie\LaravelData\Data;
|
||||
|
||||
/**
|
||||
* @implements DataRequest<PersonCollection>
|
||||
*/
|
||||
final class QueryRandomPersonListCommand extends Data implements DataRequest
|
||||
{
|
||||
use HasLimitParameterWithSmallerMax;
|
||||
}
|
@ -12,5 +12,4 @@ use Spatie\LaravelData\Data;
|
||||
*/
|
||||
final class QueryRandomUserCommand extends Data implements DataRequest
|
||||
{
|
||||
use HasLimitParameterWithSmallerMax;
|
||||
}
|
||||
|
16
app/Dto/QueryRandomUserListCommand.php
Normal file
16
app/Dto/QueryRandomUserListCommand.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace App\Dto;
|
||||
|
||||
use App\Contracts\DataRequest;
|
||||
use App\Dto\Concerns\HasLimitParameterWithSmallerMax;
|
||||
use App\Http\Resources\V4\UserCollection;
|
||||
use Spatie\LaravelData\Data;
|
||||
|
||||
/**
|
||||
* @implements DataRequest<UserCollection>
|
||||
*/
|
||||
final class QueryRandomUserListCommand extends Data implements DataRequest
|
||||
{
|
||||
use HasLimitParameterWithSmallerMax;
|
||||
}
|
@ -5,31 +5,27 @@ namespace App\Features;
|
||||
use App\Anime;
|
||||
use App\Contracts\RequestHandler;
|
||||
use App\Dto\QueryRandomAnimeCommand;
|
||||
use App\Http\Resources\V4\AnimeCollection;
|
||||
use App\Http\Resources\V4\AnimeResource;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
/**
|
||||
* @implements RequestHandler<QueryRandomAnimeCommand, AnimeResource|AnimeCollection>
|
||||
* @implements RequestHandler<QueryRandomAnimeCommand, AnimeResource>
|
||||
*/
|
||||
final class QueryRandomAnimeHandler implements RequestHandler
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function handle($request): AnimeResource|AnimeCollection
|
||||
public function handle($request): AnimeResource
|
||||
{
|
||||
$queryable = Anime::query();
|
||||
|
||||
$sfwParam = $request->sfw instanceof Optional ? false : $request->sfw;
|
||||
$unapprovedParam = $request->unapproved instanceof Optional ? false : $request->unapproved;
|
||||
$limit = $request->limit instanceof Optional ? 1 : $request->limit;
|
||||
|
||||
$results = $queryable->random($limit, $sfwParam, $unapprovedParam);
|
||||
$results = $queryable->random(1, $sfwParam, $unapprovedParam);
|
||||
|
||||
return $results->count() === 1
|
||||
? new AnimeResource($results->first())
|
||||
: new AnimeCollection($results, false);
|
||||
return new AnimeResource($results->first());
|
||||
}
|
||||
|
||||
/**
|
||||
|
40
app/Features/QueryRandomAnimeListHandler.php
Normal file
40
app/Features/QueryRandomAnimeListHandler.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Features;
|
||||
|
||||
use App\Anime;
|
||||
use App\Contracts\RequestHandler;
|
||||
use App\Dto\QueryRandomAnimeCommand;
|
||||
use App\Dto\QueryRandomAnimeListCommand;
|
||||
use App\Http\Resources\V4\AnimeCollection;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
/**
|
||||
* @implements RequestHandler<QueryRandomAnimeCommand, AnimeCollection>
|
||||
*/
|
||||
final class QueryRandomAnimeListHandler implements RequestHandler
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function handle($request): AnimeCollection
|
||||
{
|
||||
$queryable = Anime::query();
|
||||
|
||||
$sfwParam = $request->sfw instanceof Optional ? false : $request->sfw;
|
||||
$unapprovedParam = $request->unapproved instanceof Optional ? false : $request->unapproved;
|
||||
$limit = $request->limit instanceof Optional ? 1 : $request->limit;
|
||||
|
||||
$results = $queryable->random($limit, $sfwParam, $unapprovedParam);
|
||||
|
||||
return new AnimeCollection($results, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function requestClass(): string
|
||||
{
|
||||
return QueryRandomAnimeListCommand::class;
|
||||
}
|
||||
}
|
@ -5,12 +5,10 @@ namespace App\Features;
|
||||
use App\Character;
|
||||
use App\Contracts\RequestHandler;
|
||||
use App\Dto\QueryRandomCharacterCommand;
|
||||
use App\Http\Resources\V4\CharacterCollection;
|
||||
use App\Http\Resources\V4\CharacterResource;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
/**
|
||||
* @extends QueryRandomCharacterHandler<QueryRandomCharacterCommand, CharacterResource|CharacterCollection>
|
||||
* @extends QueryRandomCharacterHandler<QueryRandomCharacterCommand, CharacterResource>
|
||||
*/
|
||||
final class QueryRandomCharacterHandler implements RequestHandler
|
||||
{
|
||||
@ -18,17 +16,13 @@ final class QueryRandomCharacterHandler implements RequestHandler
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function handle($request): CharacterResource|CharacterCollection
|
||||
public function handle($request): CharacterResource
|
||||
{
|
||||
$queryable = Character::query();
|
||||
|
||||
$limit = $request->limit instanceof Optional ? 1 : $request->limit;
|
||||
|
||||
$results = $queryable->random($limit);
|
||||
|
||||
return $results->count() === 1
|
||||
? new CharacterResource($results->first())
|
||||
: new CharacterCollection($results, false);
|
||||
return new CharacterResource(
|
||||
Character::query()
|
||||
->random(1)
|
||||
->first()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
35
app/Features/QueryRandomCharacterListHandler.php
Normal file
35
app/Features/QueryRandomCharacterListHandler.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace App\Features;
|
||||
|
||||
use App\Character;
|
||||
use App\Contracts\RequestHandler;
|
||||
use App\Dto\QueryRandomCharacterListCommand;
|
||||
use App\Http\Resources\V4\CharacterCollection;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
/**
|
||||
* @implements RequestHandler<QueryRandomCharacterListCommand, CharacterCollection>
|
||||
*/
|
||||
final class QueryRandomCharacterListHandler implements RequestHandler
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function handle($request): CharacterCollection
|
||||
{
|
||||
$queryable = Character::query();
|
||||
$limit = $request->limit instanceof Optional ? 1 : $request->limit;
|
||||
$results = $queryable->random($limit);
|
||||
|
||||
return new CharacterCollection($results, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function requestClass(): string
|
||||
{
|
||||
return QueryRandomCharacterListCommand::class;
|
||||
}
|
||||
}
|
@ -4,32 +4,27 @@ namespace App\Features;
|
||||
|
||||
use App\Contracts\RequestHandler;
|
||||
use App\Dto\QueryRandomMangaCommand;
|
||||
use App\Http\Resources\V4\MangaCollection;
|
||||
use App\Http\Resources\V4\MangaResource;
|
||||
use App\Manga;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
/**
|
||||
* @implements RequestHandler<QueryRandomMangaCommand, MangaResource|MangaCollection>
|
||||
* @implements RequestHandler<QueryRandomMangaCommand, MangaResource>
|
||||
*/
|
||||
final class QueryRandomMangaHandler implements RequestHandler
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function handle($request): MangaResource|MangaCollection
|
||||
public function handle($request): MangaResource
|
||||
{
|
||||
$queryable = Manga::query();
|
||||
|
||||
$sfwParam = $request->sfw instanceof Optional ? false : $request->sfw;
|
||||
$unapprovedParam = $request->unapproved instanceof Optional ? false : $request->unapproved;
|
||||
$limit = $request->limit instanceof Optional ? 1 : $request->limit;
|
||||
$results = $queryable->random(1, $sfwParam, $unapprovedParam);
|
||||
|
||||
$results = $queryable->random($limit, $sfwParam, $unapprovedParam);
|
||||
|
||||
return $results->count() === 1
|
||||
? new MangaResource($results->first())
|
||||
: new MangaCollection($results, false);
|
||||
return new MangaResource($results->first());
|
||||
}
|
||||
|
||||
/**
|
||||
|
40
app/Features/QueryRandomMangaListHandler.php
Normal file
40
app/Features/QueryRandomMangaListHandler.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Features;
|
||||
|
||||
use App\Contracts\RequestHandler;
|
||||
use App\Dto\QueryRandomMangaCommand;
|
||||
use App\Dto\QueryRandomMangaListCommand;
|
||||
use App\Http\Resources\V4\MangaCollection;
|
||||
use App\Manga;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
/**
|
||||
* @implements RequestHandler<QueryRandomMangaCommand, MangaCollection>
|
||||
*/
|
||||
final class QueryRandomMangaListHandler implements RequestHandler
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function handle($request): MangaCollection
|
||||
{
|
||||
$queryable = Manga::query();
|
||||
|
||||
$sfwParam = $request->sfw instanceof Optional ? false : $request->sfw;
|
||||
$unapprovedParam = $request->unapproved instanceof Optional ? false : $request->unapproved;
|
||||
$limit = $request->limit instanceof Optional ? 1 : $request->limit;
|
||||
|
||||
$results = $queryable->random($limit, $sfwParam, $unapprovedParam);
|
||||
|
||||
return new MangaCollection($results, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function requestClass(): string
|
||||
{
|
||||
return QueryRandomMangaListCommand::class;
|
||||
}
|
||||
}
|
@ -4,13 +4,11 @@ namespace App\Features;
|
||||
|
||||
use App\Contracts\RequestHandler;
|
||||
use App\Dto\QueryRandomPersonCommand;
|
||||
use App\Http\Resources\V4\PersonCollection;
|
||||
use App\Http\Resources\V4\PersonResource;
|
||||
use App\Person;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
/**
|
||||
* @extends RequestHandler<QueryRandomPersonCommand, PersonResource|PersonCollection>
|
||||
* @extends RequestHandler<QueryRandomPersonCommand, PersonResource>
|
||||
*/
|
||||
final class QueryRandomPersonHandler implements RequestHandler
|
||||
{
|
||||
@ -18,17 +16,13 @@ final class QueryRandomPersonHandler implements RequestHandler
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function handle($request): PersonResource|PersonCollection
|
||||
public function handle($request): PersonResource
|
||||
{
|
||||
$queryable = Person::query();
|
||||
|
||||
$limit = $request->limit instanceof Optional ? 1 : $request->limit;
|
||||
|
||||
$results = $queryable->random($limit);
|
||||
|
||||
return $results->count() === 1
|
||||
? new PersonResource($results->first())
|
||||
: new PersonCollection($results, false);
|
||||
return new PersonResource(
|
||||
Person::query()
|
||||
->random()
|
||||
->first()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
37
app/Features/QueryRandomPersonListHandler.php
Normal file
37
app/Features/QueryRandomPersonListHandler.php
Normal file
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace App\Features;
|
||||
|
||||
use App\Contracts\RequestHandler;
|
||||
use App\Dto\QueryRandomPersonCommand;
|
||||
use App\Dto\QueryRandomPersonListCommand;
|
||||
use App\Http\Resources\V4\PersonCollection;
|
||||
use App\Person;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
/**
|
||||
* @extends RequestHandler<QueryRandomPersonCommand, PersonCollection>
|
||||
*/
|
||||
final class QueryRandomPersonListHandler implements RequestHandler
|
||||
{
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function handle($request): PersonCollection
|
||||
{
|
||||
$queryable = Person::query();
|
||||
$limit = $request->limit instanceof Optional ? 1 : $request->limit;
|
||||
$results = $queryable->random($limit);
|
||||
|
||||
return new PersonCollection($results, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function requestClass(): string
|
||||
{
|
||||
return QueryRandomPersonListCommand::class;
|
||||
}
|
||||
}
|
@ -5,29 +5,22 @@ namespace App\Features;
|
||||
use App\Contracts\RequestHandler;
|
||||
use App\Dto\QueryRandomUserCommand;
|
||||
use App\Http\Resources\V4\ProfileResource;
|
||||
use App\Http\Resources\V4\UserCollection;
|
||||
use App\Profile;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
/**
|
||||
* @extends RequestHandler<QueryRandomUserCommand, ProfileResource|UserCollection>
|
||||
* @extends RequestHandler<QueryRandomUserCommand, ProfileResource>
|
||||
*/
|
||||
final class QueryRandomUserHandler implements RequestHandler
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function handle($request): ProfileResource|UserCollection
|
||||
public function handle($request): ProfileResource
|
||||
{
|
||||
$queryable = Profile::query();
|
||||
$results = $queryable->random(1);
|
||||
|
||||
$limit = $request->limit instanceof Optional ? 1 : $request->limit;
|
||||
|
||||
$results = $queryable->random($limit);
|
||||
|
||||
return $results->count() === 1
|
||||
? new ProfileResource($results->first())
|
||||
: new UserCollection($results, false);
|
||||
return new ProfileResource($results->first());
|
||||
}
|
||||
|
||||
/**
|
||||
|
37
app/Features/QueryRandomUserListHandler.php
Normal file
37
app/Features/QueryRandomUserListHandler.php
Normal file
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace App\Features;
|
||||
|
||||
use App\Contracts\RequestHandler;
|
||||
use App\Dto\QueryRandomUserCommand;
|
||||
use App\Dto\QueryRandomUserListCommand;
|
||||
use App\Http\Resources\V4\ProfileResource;
|
||||
use App\Http\Resources\V4\UserCollection;
|
||||
use App\Profile;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
/**
|
||||
* @extends RequestHandler<QueryRandomUserCommand, UserCollection>
|
||||
*/
|
||||
final class QueryRandomUserListHandler implements RequestHandler
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function handle($request): UserCollection
|
||||
{
|
||||
$queryable = Profile::query();
|
||||
$limit = $request->limit instanceof Optional ? 1 : $request->limit;
|
||||
$results = $queryable->random($limit);
|
||||
|
||||
return new UserCollection($results, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function requestClass(): string
|
||||
{
|
||||
return QueryRandomUserListCommand::class;
|
||||
}
|
||||
}
|
@ -3,10 +3,14 @@
|
||||
namespace App\Http\Controllers\V4DB;
|
||||
|
||||
use App\Dto\QueryRandomAnimeCommand;
|
||||
use App\Dto\QueryRandomAnimeListCommand;
|
||||
use App\Dto\QueryRandomCharacterCommand;
|
||||
use App\Dto\QueryRandomCharacterListCommand;
|
||||
use App\Dto\QueryRandomMangaCommand;
|
||||
use App\Dto\QueryRandomPersonCommand;
|
||||
use App\Dto\QueryRandomPersonListCommand;
|
||||
use App\Dto\QueryRandomUserCommand;
|
||||
use App\Dto\QueryRandomUserListCommand;
|
||||
|
||||
|
||||
class RandomController extends Controller
|
||||
@ -44,7 +48,7 @@ class RandomController extends Controller
|
||||
*
|
||||
* @OA\Response(
|
||||
* response="200",
|
||||
* description="Returns a single random anime resource or multiple resources in an array when `limit` is supplied",
|
||||
* description="Returns a single random anime resource",
|
||||
* @OA\JsonContent(
|
||||
* @OA\Property(
|
||||
* property="data",
|
||||
@ -63,6 +67,39 @@ class RandomController extends Controller
|
||||
return $this->mediator->send($command);
|
||||
}
|
||||
|
||||
/**
|
||||
* @OA\Get(
|
||||
* path="/random/list/anime",
|
||||
* operationId="getRandomAnimeList",
|
||||
* tags={"random"},
|
||||
*
|
||||
* @OA\Parameter(ref="#/components/parameters/limit"),
|
||||
*
|
||||
* @OA\Response(
|
||||
* response="200",
|
||||
* description="Returns multiple anime resources. You can use `limit` to control the number of items returned. By default it returns 1 and maximum 5",
|
||||
* @OA\JsonContent(
|
||||
* @OA\Property(
|
||||
* property="data",
|
||||
* type="array",
|
||||
* @OA\Items(
|
||||
* type="object",
|
||||
* ref="#/components/schemas/anime"
|
||||
* ),
|
||||
* ),
|
||||
* )
|
||||
* ),
|
||||
* @OA\Response(
|
||||
* response="400",
|
||||
* description="Error: Bad request. When required parameters were not supplied.",
|
||||
* ),
|
||||
* ),
|
||||
*/
|
||||
public function animeList(QueryRandomAnimeListCommand $command)
|
||||
{
|
||||
return $this->mediator->send($command);
|
||||
}
|
||||
|
||||
/**
|
||||
* @OA\Get(
|
||||
* path="/random/manga",
|
||||
@ -92,6 +129,39 @@ class RandomController extends Controller
|
||||
return $this->mediator->send($command);
|
||||
}
|
||||
|
||||
/**
|
||||
* @OA\Get(
|
||||
* path="/random/list/manga",
|
||||
* operationId="getRandomMangaList",
|
||||
* tags={"random"},
|
||||
*
|
||||
* @OA\Parameter(ref="#/components/parameters/limit"),
|
||||
*
|
||||
* @OA\Response(
|
||||
* response="200",
|
||||
* description="Returns multiple manga resources. You can use `limit` to control the number of items returned. By default it returns 1 and maximum 5",
|
||||
* @OA\JsonContent(
|
||||
* @OA\Property(
|
||||
* property="data",
|
||||
* type="array",
|
||||
* @OA\Items(
|
||||
* type="object",
|
||||
* ref="#/components/schemas/manga"
|
||||
* ),
|
||||
* ),
|
||||
* )
|
||||
* ),
|
||||
* @OA\Response(
|
||||
* response="400",
|
||||
* description="Error: Bad request. When required parameters were not supplied.",
|
||||
* ),
|
||||
* ),
|
||||
*/
|
||||
public function mangaList(QueryRandomAnimeListCommand $command)
|
||||
{
|
||||
return $this->mediator->send($command);
|
||||
}
|
||||
|
||||
/**
|
||||
* @OA\Get(
|
||||
* path="/random/characters",
|
||||
@ -121,6 +191,39 @@ class RandomController extends Controller
|
||||
return $this->mediator->send($command);
|
||||
}
|
||||
|
||||
/**
|
||||
* @OA\Get(
|
||||
* path="/random/list/characters",
|
||||
* operationId="getRandomCharactersList",
|
||||
* tags={"random"},
|
||||
*
|
||||
* @OA\Parameter(ref="#/components/parameters/limit"),
|
||||
*
|
||||
* @OA\Response(
|
||||
* response="200",
|
||||
* description="Returns multiple character resources. You can use `limit` to control the number of items returned. By default it returns 1 and maximum 5",
|
||||
* @OA\JsonContent(
|
||||
* @OA\Property(
|
||||
* property="data",
|
||||
* type="array",
|
||||
* @OA\Items(
|
||||
* type="object",
|
||||
* ref="#/components/schemas/character"
|
||||
* ),
|
||||
* ),
|
||||
* )
|
||||
* ),
|
||||
* @OA\Response(
|
||||
* response="400",
|
||||
* description="Error: Bad request. When required parameters were not supplied.",
|
||||
* ),
|
||||
* ),
|
||||
*/
|
||||
public function charactersList(QueryRandomCharacterListCommand $command)
|
||||
{
|
||||
return $this->mediator->send($command);
|
||||
}
|
||||
|
||||
/**
|
||||
* @OA\Get(
|
||||
* path="/random/people",
|
||||
@ -150,6 +253,39 @@ class RandomController extends Controller
|
||||
return $this->mediator->send($command);
|
||||
}
|
||||
|
||||
/**
|
||||
* @OA\Get(
|
||||
* path="/random/list/people",
|
||||
* operationId="getRandomPeopleList",
|
||||
* tags={"random"},
|
||||
*
|
||||
* @OA\Parameter(ref="#/components/parameters/limit"),
|
||||
*
|
||||
* @OA\Response(
|
||||
* response="200",
|
||||
* description="Returns multiple people resources. You can use `limit` to control the number of items returned. By default it returns 1 and maximum 5",
|
||||
* @OA\JsonContent(
|
||||
* @OA\Property(
|
||||
* property="data",
|
||||
* type="array",
|
||||
* @OA\Items(
|
||||
* type="object",
|
||||
* ref="#/components/schemas/person"
|
||||
* ),
|
||||
* ),
|
||||
* )
|
||||
* ),
|
||||
* @OA\Response(
|
||||
* response="400",
|
||||
* description="Error: Bad request. When required parameters were not supplied.",
|
||||
* ),
|
||||
* ),
|
||||
*/
|
||||
public function peopleList(QueryRandomPersonListCommand $command)
|
||||
{
|
||||
return $this->mediator->send($command);
|
||||
}
|
||||
|
||||
/**
|
||||
* @OA\Get(
|
||||
* path="/random/users",
|
||||
@ -178,4 +314,37 @@ class RandomController extends Controller
|
||||
{
|
||||
return $this->mediator->send($command);
|
||||
}
|
||||
|
||||
/**
|
||||
* @OA\Get(
|
||||
* path="/random/list/users",
|
||||
* operationId="getRandomUsersList",
|
||||
* tags={"random"},
|
||||
*
|
||||
* @OA\Parameter(ref="#/components/parameters/limit"),
|
||||
*
|
||||
* @OA\Response(
|
||||
* response="200",
|
||||
* description="Returns multiple user resources. You can use `limit` to control the number of items returned. By default it returns 1 and maximum 5",
|
||||
* @OA\JsonContent(
|
||||
* @OA\Property(
|
||||
* property="data",
|
||||
* type="array",
|
||||
* @OA\Items(
|
||||
* type="object",
|
||||
* ref="#/components/schemas/user_profile"
|
||||
* ),
|
||||
* ),
|
||||
* )
|
||||
* ),
|
||||
* @OA\Response(
|
||||
* response="400",
|
||||
* description="Error: Bad request. When required parameters were not supplied.",
|
||||
* ),
|
||||
* ),
|
||||
*/
|
||||
public function usersList(QueryRandomUserListCommand $command)
|
||||
{
|
||||
return $this->mediator->send($command);
|
||||
}
|
||||
}
|
||||
|
@ -5,18 +5,21 @@ namespace App\Http\Middleware;
|
||||
use App\Http\HttpHelper;
|
||||
use App\Support\JikanConfig;
|
||||
use Closure;
|
||||
use Illuminate\Support\Env;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Jikan\Exception\BadResponseException;
|
||||
|
||||
class MicroCaching
|
||||
{
|
||||
private const NO_CACHING = [
|
||||
'RandomController@anime',
|
||||
'RandomController@animeList',
|
||||
'RandomController@manga',
|
||||
'RandomController@mangaList',
|
||||
'RandomController@characters',
|
||||
'RandomController@charactersList',
|
||||
'RandomController@people',
|
||||
'RandomController@peopleList',
|
||||
'RandomController@users',
|
||||
'RandomController@usersList',
|
||||
'InsightsController@main'
|
||||
];
|
||||
|
||||
|
@ -307,10 +307,15 @@ class AppServiceProvider extends ServiceProvider
|
||||
// automatically resolvable dependencies or no dependencies at all
|
||||
$requestHandlersWithNoDependencies = [
|
||||
Features\QueryRandomAnimeHandler::class,
|
||||
Features\QueryRandomAnimeListHandler::class,
|
||||
Features\QueryRandomMangaHandler::class,
|
||||
Features\QueryRandomMangaListHandler::class,
|
||||
Features\QueryRandomCharacterHandler::class,
|
||||
Features\QueryRandomCharacterListHandler::class,
|
||||
Features\QueryRandomPersonHandler::class,
|
||||
Features\QueryRandomPersonListHandler::class,
|
||||
Features\QueryRandomUserHandler::class,
|
||||
Features\QueryRandomUserListHandler::class,
|
||||
Features\QueryAnimeSchedulesHandler::class,
|
||||
Features\QueryCurrentAnimeSeasonHandler::class,
|
||||
Features\QuerySpecificAnimeSeasonHandler::class,
|
||||
|
@ -556,6 +556,33 @@ $router->group(
|
||||
$router->get('/users', [
|
||||
'uses' => 'RandomController@users',
|
||||
]);
|
||||
|
||||
$router->group(
|
||||
[
|
||||
'prefix' => '/list'
|
||||
],
|
||||
function() use ($router) {
|
||||
$router->get('/anime', [
|
||||
'uses' => 'RandomController@animeList',
|
||||
]);
|
||||
|
||||
$router->get('/manga', [
|
||||
'uses' => 'RandomController@mangaList',
|
||||
]);
|
||||
|
||||
$router->get('/characters', [
|
||||
'uses' => 'RandomController@charactersList',
|
||||
]);
|
||||
|
||||
$router->get('/people', [
|
||||
'uses' => 'RandomController@peopleList',
|
||||
]);
|
||||
|
||||
$router->get('/users', [
|
||||
'uses' => 'RandomController@usersList',
|
||||
]);
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user