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\ContextualBooleanCast;
|
||||||
use App\Casts\EnumCast;
|
use App\Casts\EnumCast;
|
||||||
|
use App\Dto\Concerns\HasPreliminaryParameter;
|
||||||
|
use App\Dto\Concerns\HasSpoilersParameter;
|
||||||
use App\Dto\Concerns\PreparesData;
|
use App\Dto\Concerns\PreparesData;
|
||||||
use App\Enums\MediaReviewsSortEnum;
|
use App\Enums\MediaReviewsSortEnum;
|
||||||
use App\Rules\Attributes\EnumValidation;
|
use App\Rules\Attributes\EnumValidation;
|
||||||
@ -14,22 +16,17 @@ use Spatie\LaravelData\Attributes\Validation\Numeric;
|
|||||||
use Spatie\LaravelData\Attributes\WithCast;
|
use Spatie\LaravelData\Attributes\WithCast;
|
||||||
use Spatie\LaravelData\Optional;
|
use Spatie\LaravelData\Optional;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @extends LookupDataCommand<JsonResponse>
|
* @extends LookupDataCommand<JsonResponse>
|
||||||
*/
|
*/
|
||||||
final class AnimeReviewsLookupCommand extends LookupDataCommand
|
final class AnimeReviewsLookupCommand extends LookupDataCommand
|
||||||
{
|
{
|
||||||
use PreparesData;
|
use PreparesData, HasPreliminaryParameter, HasSpoilersParameter;
|
||||||
|
|
||||||
#[Numeric, Min(1)]
|
#[Numeric, Min(1)]
|
||||||
public int|Optional $page = 1;
|
public int|Optional $page = 1;
|
||||||
|
|
||||||
#[WithCast(EnumCast::class, MediaReviewsSortEnum::class), EnumValidation(MediaReviewsSortEnum::class)]
|
#[WithCast(EnumCast::class, MediaReviewsSortEnum::class), EnumValidation(MediaReviewsSortEnum::class)]
|
||||||
public MediaReviewsSortEnum|Optional $sort;
|
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\ContextualBooleanCast;
|
||||||
use App\Casts\EnumCast;
|
use App\Casts\EnumCast;
|
||||||
|
use App\Dto\Concerns\HasPreliminaryParameter;
|
||||||
|
use App\Dto\Concerns\HasSpoilersParameter;
|
||||||
use App\Dto\Concerns\PreparesData;
|
use App\Dto\Concerns\PreparesData;
|
||||||
use App\Enums\MediaReviewsSortEnum;
|
use App\Enums\MediaReviewsSortEnum;
|
||||||
use App\Rules\Attributes\EnumValidation;
|
use App\Rules\Attributes\EnumValidation;
|
||||||
@ -20,17 +22,11 @@ use Spatie\LaravelData\Optional;
|
|||||||
*/
|
*/
|
||||||
final class MangaReviewsLookupCommand extends LookupDataCommand
|
final class MangaReviewsLookupCommand extends LookupDataCommand
|
||||||
{
|
{
|
||||||
use PreparesData;
|
use PreparesData, HasPreliminaryParameter, HasSpoilersParameter;
|
||||||
|
|
||||||
#[Numeric, Min(1)]
|
#[Numeric, Min(1)]
|
||||||
public int|Optional $page = 1;
|
public int|Optional $page = 1;
|
||||||
|
|
||||||
#[WithCast(EnumCast::class, MediaReviewsSortEnum::class), EnumValidation(MediaReviewsSortEnum::class)]
|
#[WithCast(EnumCast::class, MediaReviewsSortEnum::class), EnumValidation(MediaReviewsSortEnum::class)]
|
||||||
public MediaReviewsSortEnum|Optional $sort;
|
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;
|
namespace App\Dto;
|
||||||
|
|
||||||
|
use App\Dto\Concerns\HasPreliminaryParameter;
|
||||||
|
use App\Dto\Concerns\HasSpoilersParameter;
|
||||||
|
|
||||||
final class QueryAnimeReviewsCommand extends QueryReviewsCommand
|
final class QueryAnimeReviewsCommand extends QueryReviewsCommand
|
||||||
{
|
{
|
||||||
|
use HasPreliminaryParameter, HasSpoilersParameter;
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
namespace App\Dto;
|
namespace App\Dto;
|
||||||
|
|
||||||
|
use App\Dto\Concerns\HasPreliminaryParameter;
|
||||||
|
use App\Dto\Concerns\HasSpoilersParameter;
|
||||||
|
|
||||||
final class QueryMangaReviewsCommand extends QueryReviewsCommand
|
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/page"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/preliminary"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/spoiler"),
|
||||||
*
|
*
|
||||||
* @OA\Response(
|
* @OA\Response(
|
||||||
* response="200",
|
* response="200",
|
||||||
|
@ -386,6 +386,8 @@ class MangaController extends Controller
|
|||||||
* ),
|
* ),
|
||||||
*
|
*
|
||||||
* @OA\Parameter(ref="#/components/parameters/page"),
|
* @OA\Parameter(ref="#/components/parameters/page"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/preliminary"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/spoiler"),
|
||||||
*
|
*
|
||||||
* @OA\Response(
|
* @OA\Response(
|
||||||
* response="200",
|
* response="200",
|
||||||
|
@ -14,6 +14,8 @@ class ReviewsController extends Controller
|
|||||||
* tags={"reviews"},
|
* tags={"reviews"},
|
||||||
*
|
*
|
||||||
* @OA\Parameter(ref="#/components/parameters/page"),
|
* @OA\Parameter(ref="#/components/parameters/page"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/preliminary"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/spoiler"),
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @OA\Response(
|
* @OA\Response(
|
||||||
@ -67,6 +69,8 @@ class ReviewsController extends Controller
|
|||||||
* tags={"reviews"},
|
* tags={"reviews"},
|
||||||
*
|
*
|
||||||
* @OA\Parameter(ref="#/components/parameters/page"),
|
* @OA\Parameter(ref="#/components/parameters/page"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/preliminary"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/spoiler"),
|
||||||
*
|
*
|
||||||
* @OA\Response(
|
* @OA\Response(
|
||||||
* response="200",
|
* response="200",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user