mirror of
https://github.com/jikan-me/jikan-rest.git
synced 2025-02-20 11:23:35 +08:00
adds reviews dto
This commit is contained in:
parent
466dcac516
commit
c1fb9dec95
@ -4,6 +4,8 @@ namespace App\Dto;
|
||||
|
||||
use App\Casts\ContextualBooleanCast;
|
||||
use App\Casts\EnumCast;
|
||||
use App\Dto\Concerns\HasPreliminaryParameter;
|
||||
use App\Dto\Concerns\HasSpoilersParameter;
|
||||
use App\Dto\Concerns\PreparesData;
|
||||
use App\Enums\MediaReviewsSortEnum;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
@ -14,22 +16,17 @@ use Spatie\LaravelData\Attributes\Validation\Numeric;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
|
||||
/**
|
||||
* @extends LookupDataCommand<JsonResponse>
|
||||
*/
|
||||
final class AnimeReviewsLookupCommand extends LookupDataCommand
|
||||
{
|
||||
use PreparesData;
|
||||
use PreparesData, HasPreliminaryParameter, HasSpoilersParameter;
|
||||
|
||||
#[Numeric, Min(1)]
|
||||
public int|Optional $page = 1;
|
||||
|
||||
#[WithCast(EnumCast::class, MediaReviewsSortEnum::class), EnumValidation(MediaReviewsSortEnum::class)]
|
||||
public MediaReviewsSortEnum|Optional $sort;
|
||||
|
||||
#[BooleanType, WithCast(ContextualBooleanCast::class)]
|
||||
public bool|Optional $spoilers;
|
||||
|
||||
#[BooleanType, WithCast(ContextualBooleanCast::class)]
|
||||
public bool|Optional $preliminary;
|
||||
}
|
||||
|
26
app/Dto/Concerns/HasPreliminaryParameter.php
Normal file
26
app/Dto/Concerns/HasPreliminaryParameter.php
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\Dto\Concerns;
|
||||
|
||||
use App\Casts\ContextualBooleanCast;
|
||||
use OpenApi\Annotations as OA;
|
||||
use Spatie\LaravelData\Attributes\Validation\BooleanType;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
/**
|
||||
* @OA\Parameter(
|
||||
* name="preliminary",
|
||||
* in="query",
|
||||
* required=false,
|
||||
* description="Any reviews left during an ongoing anime/manga, those reviews are tagged as preliminary. Preliminary reviews are not returned by default. e.g usage: `?preliminary=true`",
|
||||
* @OA\Schema(type="boolean")
|
||||
* ),
|
||||
*/
|
||||
trait HasPreliminaryParameter
|
||||
{
|
||||
use PreparesData;
|
||||
|
||||
#[BooleanType, WithCast(ContextualBooleanCast::class)]
|
||||
public bool|Optional $preliminary;
|
||||
}
|
26
app/Dto/Concerns/HasSpoilersParameter.php
Normal file
26
app/Dto/Concerns/HasSpoilersParameter.php
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\Dto\Concerns;
|
||||
|
||||
use App\Casts\ContextualBooleanCast;
|
||||
use OpenApi\Annotations as OA;
|
||||
use Spatie\LaravelData\Attributes\Validation\BooleanType;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
/**
|
||||
* @OA\Parameter(
|
||||
* name="spoiler",
|
||||
* in="query",
|
||||
* required=false,
|
||||
* description="Any reviews that are tagged as a spoiler. Spoiler reviews are not returned by default. e.g usage: `?spoiler=true`",
|
||||
* @OA\Schema(type="boolean")
|
||||
* ),
|
||||
*/
|
||||
trait HasSpoilersParameter
|
||||
{
|
||||
use PreparesData;
|
||||
|
||||
#[BooleanType, WithCast(ContextualBooleanCast::class)]
|
||||
public bool|Optional $spoilers;
|
||||
}
|
@ -5,6 +5,8 @@ namespace App\Dto;
|
||||
|
||||
use App\Casts\ContextualBooleanCast;
|
||||
use App\Casts\EnumCast;
|
||||
use App\Dto\Concerns\HasPreliminaryParameter;
|
||||
use App\Dto\Concerns\HasSpoilersParameter;
|
||||
use App\Dto\Concerns\PreparesData;
|
||||
use App\Enums\MediaReviewsSortEnum;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
@ -20,17 +22,11 @@ use Spatie\LaravelData\Optional;
|
||||
*/
|
||||
final class MangaReviewsLookupCommand extends LookupDataCommand
|
||||
{
|
||||
use PreparesData;
|
||||
use PreparesData, HasPreliminaryParameter, HasSpoilersParameter;
|
||||
|
||||
#[Numeric, Min(1)]
|
||||
public int|Optional $page = 1;
|
||||
|
||||
#[WithCast(EnumCast::class, MediaReviewsSortEnum::class), EnumValidation(MediaReviewsSortEnum::class)]
|
||||
public MediaReviewsSortEnum|Optional $sort;
|
||||
|
||||
#[BooleanType, WithCast(ContextualBooleanCast::class)]
|
||||
public bool|Optional $spoilers;
|
||||
|
||||
#[BooleanType, WithCast(ContextualBooleanCast::class)]
|
||||
public bool|Optional $preliminary;
|
||||
}
|
||||
|
@ -2,6 +2,10 @@
|
||||
|
||||
namespace App\Dto;
|
||||
|
||||
use App\Dto\Concerns\HasPreliminaryParameter;
|
||||
use App\Dto\Concerns\HasSpoilersParameter;
|
||||
|
||||
final class QueryAnimeReviewsCommand extends QueryReviewsCommand
|
||||
{
|
||||
use HasPreliminaryParameter, HasSpoilersParameter;
|
||||
}
|
||||
|
@ -2,6 +2,10 @@
|
||||
|
||||
namespace App\Dto;
|
||||
|
||||
use App\Dto\Concerns\HasPreliminaryParameter;
|
||||
use App\Dto\Concerns\HasSpoilersParameter;
|
||||
|
||||
final class QueryMangaReviewsCommand extends QueryReviewsCommand
|
||||
{
|
||||
use HasPreliminaryParameter, HasSpoilersParameter;
|
||||
}
|
||||
|
@ -668,6 +668,8 @@ class AnimeController extends Controller
|
||||
* ),
|
||||
*
|
||||
* @OA\Parameter(ref="#/components/parameters/page"),
|
||||
* @OA\Parameter(ref="#/components/parameters/preliminary"),
|
||||
* @OA\Parameter(ref="#/components/parameters/spoiler"),
|
||||
*
|
||||
* @OA\Response(
|
||||
* response="200",
|
||||
|
@ -386,6 +386,8 @@ class MangaController extends Controller
|
||||
* ),
|
||||
*
|
||||
* @OA\Parameter(ref="#/components/parameters/page"),
|
||||
* @OA\Parameter(ref="#/components/parameters/preliminary"),
|
||||
* @OA\Parameter(ref="#/components/parameters/spoiler"),
|
||||
*
|
||||
* @OA\Response(
|
||||
* response="200",
|
||||
|
@ -14,6 +14,8 @@ class ReviewsController extends Controller
|
||||
* tags={"reviews"},
|
||||
*
|
||||
* @OA\Parameter(ref="#/components/parameters/page"),
|
||||
* @OA\Parameter(ref="#/components/parameters/preliminary"),
|
||||
* @OA\Parameter(ref="#/components/parameters/spoiler"),
|
||||
*
|
||||
*
|
||||
* @OA\Response(
|
||||
@ -67,6 +69,8 @@ class ReviewsController extends Controller
|
||||
* tags={"reviews"},
|
||||
*
|
||||
* @OA\Parameter(ref="#/components/parameters/page"),
|
||||
* @OA\Parameter(ref="#/components/parameters/preliminary"),
|
||||
* @OA\Parameter(ref="#/components/parameters/spoiler"),
|
||||
*
|
||||
* @OA\Response(
|
||||
* response="200",
|
||||
|
Loading…
x
Reference in New Issue
Block a user