mirror of
https://github.com/jikan-me/jikan-rest.git
synced 2025-02-20 11:23:35 +08:00
Merge branch 'master' into search-improvements-5
This commit is contained in:
commit
a3a1b6e715
@ -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;
|
||||
}
|
||||
|
@ -8,6 +8,8 @@ use App\Casts\EnumCast;
|
||||
use App\Concerns\HasRequestFingerprint;
|
||||
use App\Contracts\DataRequest;
|
||||
use App\Dto\Concerns\HasPageParameter;
|
||||
use App\Dto\Concerns\HasPreliminaryParameter;
|
||||
use App\Dto\Concerns\HasSpoilersParameter;
|
||||
use App\Dto\Concerns\PreparesData;
|
||||
use App\Enums\MediaReviewsSortEnum;
|
||||
use App\Http\Resources\V4\ResultsResource;
|
||||
@ -22,14 +24,8 @@ use Spatie\LaravelData\Optional;
|
||||
*/
|
||||
abstract class QueryReviewsCommand extends Data implements DataRequest
|
||||
{
|
||||
use HasRequestFingerprint, HasPageParameter, PreparesData;
|
||||
use HasRequestFingerprint, HasPageParameter, HasPreliminaryParameter, HasSpoilersParameter, PreparesData;
|
||||
|
||||
#[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;
|
||||
}
|
||||
|
@ -6,6 +6,8 @@ use App\Casts\ContextualBooleanCast;
|
||||
use App\Casts\EnumCast;
|
||||
use App\Concerns\HasRequestFingerprint;
|
||||
use App\Contracts\DataRequest;
|
||||
use App\Dto\Concerns\HasPreliminaryParameter;
|
||||
use App\Dto\Concerns\HasSpoilersParameter;
|
||||
use App\Dto\Concerns\PreparesData;
|
||||
use App\Enums\TopAnimeFilterEnum;
|
||||
use App\Enums\TopReviewsTypeEnum;
|
||||
@ -19,14 +21,8 @@ use Spatie\LaravelData\Optional;
|
||||
*/
|
||||
final class QueryTopReviewsCommand extends QueryTopItemsCommand implements DataRequest
|
||||
{
|
||||
use HasRequestFingerprint, PreparesData;
|
||||
use HasRequestFingerprint, HasPreliminaryParameter, HasSpoilersParameter, PreparesData;
|
||||
|
||||
#[WithCast(EnumCast::class, TopAnimeFilterEnum::class), EnumValidation(TopReviewsTypeEnum::class)]
|
||||
public TopReviewsTypeEnum|Optional $type;
|
||||
|
||||
#[WithCast(ContextualBooleanCast::class)]
|
||||
public bool|Optional $spoilers;
|
||||
|
||||
#[WithCast(ContextualBooleanCast::class)]
|
||||
public bool|Optional $preliminary;
|
||||
}
|
||||
|
@ -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",
|
||||
|
@ -582,6 +582,12 @@
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/parameters/page"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/parameters/preliminary"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/parameters/spoiler"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
@ -1594,6 +1600,12 @@
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/parameters/page"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/parameters/preliminary"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/parameters/spoiler"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
@ -2209,6 +2221,12 @@
|
||||
"parameters": [
|
||||
{
|
||||
"$ref": "#/components/parameters/page"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/parameters/preliminary"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/parameters/spoiler"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
@ -2235,6 +2253,12 @@
|
||||
"parameters": [
|
||||
{
|
||||
"$ref": "#/components/parameters/page"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/parameters/preliminary"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/parameters/spoiler"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
@ -9022,6 +9046,15 @@
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"preliminary": {
|
||||
"name": "preliminary",
|
||||
"in": "query",
|
||||
"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`",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"sfw": {
|
||||
"name": "sfw",
|
||||
"in": "query",
|
||||
@ -9031,6 +9064,15 @@
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"spoiler": {
|
||||
"name": "spoiler",
|
||||
"in": "query",
|
||||
"description": "Any reviews that are tagged as a spoiler. Spoiler reviews are not returned by default. e.g usage: `?spoiler=true`",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"unapproved": {
|
||||
"name": "unapproved",
|
||||
"in": "query",
|
||||
|
Loading…
x
Reference in New Issue
Block a user