[DOC] Anime Search Params

This commit is contained in:
Poly 2020-07-25 21:09:21 +02:00
parent 8e65634227
commit bab1fb743f
2 changed files with 97 additions and 4 deletions

View File

@ -50,6 +50,72 @@ class SearchController extends Controller
* path="/anime",
* operationId="getAnimeSearch",
* tags={"anime"},
*
* @OA\Parameter(
* name="q",
* in="query",
* @OA\Schema(type="string")
* ),
*
* @OA\Parameter(
* name="type",
* in="query",
* @OA\Schema(ref="#/components/schemas/anime search query type")
* ),
*
* @OA\Parameter(
* name="score",
* in="query",
* @OA\Schema(type="number")
* ),
*
* @OA\Parameter(
* name="status",
* in="query",
* @OA\Schema(ref="#/components/schemas/anime search query status")
* ),
*
* @OA\Parameter(
* name="rating",
* in="query",
* @OA\Schema(ref="#/components/schemas/anime search query rating")
* ),
*
* @OA\Parameter(
* name="sfw",
* in="query",
* @OA\Schema(type="string")
* ),
*
* @OA\Parameter(
* name="genres",
* in="query",
* @OA\Schema(type="string")
* ),
*
* @OA\Parameter(
* name="order_by",
* in="query",
* @OA\Schema(ref="#/components/schemas/anime search query orderby")
* ),
*
* @OA\Parameter(
* name="sort",
* in="query",
* @OA\Schema(ref="#/components/schemas/anime search query sort")
* ),
*
* @OA\Parameter(
* name="letter",
* in="query",
* @OA\Schema(type="string")
* ),
*
* @OA\Parameter(
* name="producer",
* in="query",
* @OA\Schema(type="string")
* ),
*
* @OA\Response(
* response="200",

View File

@ -20,7 +20,12 @@ class SearchQueryBuilderAnime implements SearchQueryBuilderInterface
const MAX_RESULTS_PER_PAGE = 25;
/**
*
* @OA\Schema(
* schema="anime search query type",
* description="Anime Search Query Type",
* type="string",
* enum={"tv","movie","ova","special","ona","music"}
* )
*/
const MAP_TYPES = [
'tv' => 'TV',
@ -32,7 +37,12 @@ class SearchQueryBuilderAnime implements SearchQueryBuilderInterface
];
/**
*
* @OA\Schema(
* schema="anime search query status",
* description="Anime Search Query Status",
* type="string",
* enum={"airing","complete","upcoming"}
* )
*/
const MAP_STATUS = [
'airing' => 'Currently Airing',
@ -41,7 +51,12 @@ class SearchQueryBuilderAnime implements SearchQueryBuilderInterface
];
/**
*
* @OA\Schema(
* schema="anime search query rating",
* description="Anime Search Query Rating",
* type="string",
* enum={"g","pg","pg13","r17","r","rx"}
* )
*/
const MAP_RATING = [
'g' => 'G - All Ages',
@ -53,7 +68,12 @@ class SearchQueryBuilderAnime implements SearchQueryBuilderInterface
];
/**
*
* @OA\Schema(
* schema="anime search query orderby",
* description="Anime Search Query OrderBy",
* type="string",
* enum={"mal_id", "title", "aired.from", "aired.to", "episodes", "score", "scored_by", "rank", "popularity", "members", "favorites" }
* )
*/
const ORDER_BY = [
'mal_id', 'title', 'aired.from', 'aired.to', 'episodes', 'score', 'scored_by', 'rank', 'popularity', 'members', 'favorites'
@ -251,6 +271,13 @@ class SearchQueryBuilderAnime implements SearchQueryBuilderInterface
/**
* @param string|null $sort
* @return string|null
*
* @OA\Schema(
* schema="anime search query sort",
* description="Anime Search Query Sort",
* type="string",
* enum={"desc","asc"}
* )
*/
public static function mapSort(?string $sort = null) : ?string
{