docs: update anime episodes

This commit is contained in:
Irfan 2021-04-20 11:21:19 +05:00
parent 01296b32d6
commit bacd259315
4 changed files with 129 additions and 116 deletions

View File

@ -244,78 +244,17 @@ class AnimeController extends Controller
/**
* @OA\Get(
* path="/anime/{id}/episodes/{ep_id}",
* operationId="getAnimeEpisodeById",
* path="/anime/{id}/episodes",
* operationId="getAnimeEpisodes",
* tags={"anime"},
*
*
* @OA\Parameter(
* name="id",
* in="path",
* required=true,
* @OA\Schema(type="integer")
* ),
*
* @OA\Parameter(
* name="ep_id",
* in="path",
* required=true,
* @OA\Schema(type="integer")
* ),
*
* @OA\Response(
* response="200",
* description="Returns a single anime episode resource",
* @OA\JsonContent(
* ref="#/components/schemas/anime episode"
* )
* ),
* @OA\Response(
* response="400",
* description="Error: Bad request. When required parameters were not supplied.",
* ),
* )
*/
public function episode(Request $request, int $id, int $episodeId)
{
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
if (
$results->isEmpty()
|| $this->isExpired($request, $results)
) {
$page = $request->get('page') ?? 1;
$anime = $this->jikan->getAnimeEpisode(new AnimeEpisodeRequest($id, $episodeId));
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
$results = $this->updateCache($request, $results, $response);
}
$response = (new AnimeEpisodeResource(
$results->first()
))->response();
return $this->prepareResponse(
$response,
$results,
$request
);
}
/**
* @OA\Get(
* path="/anime/{id}/episodes",
* operationId="getAnimeEpisodes",
* tags={"anime"},
*
* @OA\Parameter(
* name="id",
* in="path",
* required=true,
* @OA\Schema(type="integer")
* ),
*
* @OA\Parameter(ref="#/components/parameters/page"),
*
* @OA\Response(
@ -389,9 +328,9 @@ class AnimeController extends Controller
* description="Recap episode"
* ),
* @OA\Property(
* property="synopsis",
* property="forum_url",
* type="string",
* description="Episode Synopsis"
* description="Episode discussion forum URL"
* ),
* ),
* ),
@ -427,6 +366,67 @@ class AnimeController extends Controller
);
}
/**
* @OA\Get(
* path="/anime/{id}/episodes/{episode}",
* operationId="getAnimeEpisodeById",
* tags={"anime"},
*
* @OA\Parameter(
* name="id",
* in="path",
* required=true,
* @OA\Schema(type="integer")
* ),
*
* @OA\Parameter(
* name="ep_id",
* in="path",
* required=true,
* @OA\Schema(type="integer")
* ),
*
* @OA\Response(
* response="200",
* description="Returns a single anime episode resource",
* @OA\JsonContent(
* ref="#/components/schemas/anime episode"
* )
* ),
* @OA\Response(
* response="400",
* description="Error: Bad request. When required parameters were not supplied.",
* ),
* )
*/
public function episode(Request $request, int $id, int $episodeId)
{
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
if (
$results->isEmpty()
|| $this->isExpired($request, $results)
) {
$page = $request->get('page') ?? 1;
$anime = $this->jikan->getAnimeEpisode(new AnimeEpisodeRequest($id, $episodeId));
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
$results = $this->updateCache($request, $results, $response);
}
$response = (new AnimeEpisodeResource(
$results->first()
))->response();
return $this->prepareResponse(
$response,
$results,
$request
);
}
/**
* @OA\Get(
* path="/anime/{id}/news",

View File

@ -15,6 +15,7 @@ class AnimeStaffResource extends JsonResource
* @OA\Property(
* property="data",
* type="array",
*
* @OA\Items(
* type="object",
*
@ -22,6 +23,7 @@ class AnimeStaffResource extends JsonResource
* property="person",
* type="object",
* description="Person details",
*
* @OA\Property(
* property="mal_id",
* type="integer",

View File

@ -250,14 +250,20 @@ class CommonResource extends JsonResource
* @OA\Schema(
* schema="pagination",
* type="object",
*
* @OA\Property(
* property="last_visible_page",
* type="integer"
* property="pagination",
* type="object",
*
* @OA\Property(
* property="last_visible_page",
* type="integer"
* ),
* @OA\Property(
* property="has_next_page",
* type="boolean"
* ),
* ),
* @OA\Property(
* property="has_next_page",
* type="boolean"
* ),
* ),
*
* @OA\Schema(

View File

@ -124,7 +124,43 @@
}
}
},
"/anime/{id}/episodes/{ep_id}": {
"/anime/{id}/episodes": {
"get": {
"tags": [
"anime"
],
"operationId": "getAnimeEpisodes",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
},
{
"$ref": "#/components/parameters/page"
}
],
"responses": {
"200": {
"description": "Returns a list of anime episodes",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/anime episodes"
}
}
}
},
"400": {
"description": "Error: Bad request. When required parameters were not supplied."
}
}
}
},
"/anime/{id}/episodes/{episode}": {
"get": {
"tags": [
"anime"
@ -165,42 +201,6 @@
}
}
},
"/anime/{id}/episodes": {
"get": {
"tags": [
"anime"
],
"operationId": "getAnimeEpisodes",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer"
}
},
{
"$ref": "#/components/parameters/page"
}
],
"responses": {
"200": {
"description": "Returns a list of anime episodes",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/anime episodes"
}
}
}
},
"400": {
"description": "Error: Bad request. When required parameters were not supplied."
}
}
}
},
"/anime/{id}/news": {
"get": {
"tags": [
@ -2707,8 +2707,8 @@
"description": "Recap episode",
"type": "boolean"
},
"synopsis": {
"description": "Episode Synopsis",
"forum_url": {
"description": "Episode discussion forum URL",
"type": "string"
}
},
@ -4546,11 +4546,16 @@
},
"pagination": {
"properties": {
"last_visible_page": {
"type": "integer"
},
"has_next_page": {
"type": "boolean"
"pagination": {
"properties": {
"last_visible_page": {
"type": "integer"
},
"has_next_page": {
"type": "boolean"
}
},
"type": "object"
}
},
"type": "object"