From b3474ddff2b4a555cf48642260c7e812351d1363 Mon Sep 17 00:00:00 2001 From: Timothy J Warren Date: Wed, 15 Aug 2018 16:19:07 -0400 Subject: [PATCH] More progress on #5 --- .../GraphQL/Queries/AnimeDetails.graphql | 159 ++++++++++++++++++ .../GraphQL/Queries/AnimeIdByMalId.graphql | 5 + .../GraphQL/Queries/MangaDetails.graphql | 101 +++++++++++ .../GraphQL/Queries/MangaIdByMalId.graphql | 5 + .../GraphQL/Queries/UserAnimeList.graphql | 1 + .../GraphQL/Queries/UserMangaList.graphql | 2 +- .../Transformer/AnimeListTransformer.php | 6 + .../Transformer/MangaListTransformer.php | 9 +- .../MAL/Transformer/AnimeListTransformer.php | 10 +- 9 files changed, 290 insertions(+), 8 deletions(-) create mode 100644 src/API/Anilist/GraphQL/Queries/AnimeDetails.graphql create mode 100644 src/API/Anilist/GraphQL/Queries/AnimeIdByMalId.graphql create mode 100644 src/API/Anilist/GraphQL/Queries/MangaDetails.graphql create mode 100644 src/API/Anilist/GraphQL/Queries/MangaIdByMalId.graphql diff --git a/src/API/Anilist/GraphQL/Queries/AnimeDetails.graphql b/src/API/Anilist/GraphQL/Queries/AnimeDetails.graphql new file mode 100644 index 00000000..db4ba20b --- /dev/null +++ b/src/API/Anilist/GraphQL/Queries/AnimeDetails.graphql @@ -0,0 +1,159 @@ +query ($id: Int) { + Media(type: ANIME, idMal:$id) { + id + idMal + isAdult + season + title { + romaji + english + native + userPreferred + } + description(asHtml: true) + duration + format + status + chapters + volumes + genres + synonyms + countryOfOrigin + source + startDate { + year + month + day + } + endDate { + year + month + day + } + trailer { + id + site + } + coverImage { + large + medium + } + bannerImage + tags { + id + name + description + category + isGeneralSpoiler + isMediaSpoiler + isAdult + } + characters { + edges { + role + voiceActors { + id + name { + first + last + native + } + language + image { + large + medium + } + description(asHtml: true) + siteUrl + } + node { + id + name { + first + last + native + } + image { + large + medium + } + description + siteUrl + } + } + pageInfo { + total + perPage + currentPage + lastPage + hasNextPage + } + } + staff { + edges { + role + node { + id + name { + first + last + native + } + language + image { + large + medium + } + description(asHtml: true) + siteUrl + } + } + pageInfo { + total + perPage + currentPage + lastPage + hasNextPage + } + } + studios { + edges { + isMain + node { + name + siteUrl + } + } + pageInfo { + total + perPage + currentPage + lastPage + hasNextPage + } + } + externalLinks { + id + url + site + } + mediaListEntry { + id + userId + status + score + progress + progressVolumes + repeat + private + notes + } + streamingEpisodes { + title + thumbnail + url + site + } + siteUrl + } +} \ No newline at end of file diff --git a/src/API/Anilist/GraphQL/Queries/AnimeIdByMalId.graphql b/src/API/Anilist/GraphQL/Queries/AnimeIdByMalId.graphql new file mode 100644 index 00000000..86899951 --- /dev/null +++ b/src/API/Anilist/GraphQL/Queries/AnimeIdByMalId.graphql @@ -0,0 +1,5 @@ +query ($id: Int) { + Media (type: ANIME, malId: $id) { + id + } +} \ No newline at end of file diff --git a/src/API/Anilist/GraphQL/Queries/MangaDetails.graphql b/src/API/Anilist/GraphQL/Queries/MangaDetails.graphql new file mode 100644 index 00000000..c032070e --- /dev/null +++ b/src/API/Anilist/GraphQL/Queries/MangaDetails.graphql @@ -0,0 +1,101 @@ +query ($id: Int){ + Media(type: MANGA, id: $id) { + id + idMal + isAdult + season + title { + romaji + english + native + userPreferred + } + description(asHtml:true) + duration + format + status + chapters + volumes + genres + synonyms + countryOfOrigin + source + startDate { + year + month + day + } + endDate { + year + month + day + } + trailer { + id + site + } + coverImage { + large + medium + } + bannerImage + tags { + id + name + description + category + isGeneralSpoiler + isMediaSpoiler + isAdult + } + characters { + edges { + id + } + nodes { + id + name { + first + last + native + } + image { + large + medium + } + description + siteUrl + } + pageInfo { + total + perPage + currentPage + lastPage + hasNextPage + } + } + externalLinks { + id + url + site + } + mediaListEntry { + id + userId + status + score + progress + progressVolumes + repeat + private + notes + } + streamingEpisodes { + title + thumbnail + url + site + } + siteUrl + } +} \ No newline at end of file diff --git a/src/API/Anilist/GraphQL/Queries/MangaIdByMalId.graphql b/src/API/Anilist/GraphQL/Queries/MangaIdByMalId.graphql new file mode 100644 index 00000000..86899951 --- /dev/null +++ b/src/API/Anilist/GraphQL/Queries/MangaIdByMalId.graphql @@ -0,0 +1,5 @@ +query ($id: Int) { + Media (type: ANIME, malId: $id) { + id + } +} \ No newline at end of file diff --git a/src/API/Anilist/GraphQL/Queries/UserAnimeList.graphql b/src/API/Anilist/GraphQL/Queries/UserAnimeList.graphql index ea25ddca..e7af2e99 100644 --- a/src/API/Anilist/GraphQL/Queries/UserAnimeList.graphql +++ b/src/API/Anilist/GraphQL/Queries/UserAnimeList.graphql @@ -24,6 +24,7 @@ query ($name: String) { status episodes season + seasonYear genres synonyms countryOfOrigin diff --git a/src/API/Anilist/GraphQL/Queries/UserMangaList.graphql b/src/API/Anilist/GraphQL/Queries/UserMangaList.graphql index 39ddbb41..df0f039d 100644 --- a/src/API/Anilist/GraphQL/Queries/UserMangaList.graphql +++ b/src/API/Anilist/GraphQL/Queries/UserMangaList.graphql @@ -1,4 +1,4 @@ -{query ($name: String) { +query ($name: String) { MediaListCollection(userName: $name, type: MANGA) { lists { entries { diff --git a/src/API/Anilist/Transformer/AnimeListTransformer.php b/src/API/Anilist/Transformer/AnimeListTransformer.php index 18aece35..d4bc82d0 100644 --- a/src/API/Anilist/Transformer/AnimeListTransformer.php +++ b/src/API/Anilist/Transformer/AnimeListTransformer.php @@ -16,6 +16,7 @@ namespace Aviat\AnimeClient\API\Anilist\Transformer; +use Aviat\AnimeClient\Types\AnimeFormItem; use Aviat\Ion\Transformer\AbstractTransformer; class AnimeListTransformer extends AbstractTransformer { @@ -24,4 +25,9 @@ class AnimeListTransformer extends AbstractTransformer { { } + + public function untransform(array $item): AnimeFormItem + { + return new AnimeFormItem($item); + } } \ No newline at end of file diff --git a/src/API/Anilist/Transformer/MangaListTransformer.php b/src/API/Anilist/Transformer/MangaListTransformer.php index cd8a7f35..c14922d2 100644 --- a/src/API/Anilist/Transformer/MangaListTransformer.php +++ b/src/API/Anilist/Transformer/MangaListTransformer.php @@ -16,13 +16,18 @@ namespace Aviat\AnimeClient\API\Anilist\Transformer; +use Aviat\AnimeClient\Types\MangaFormItem; use Aviat\Ion\Transformer\AbstractTransformer; -class MangaListTransformer extends AbstractTransformer -{ +class MangaListTransformer extends AbstractTransformer { public function transform($item) { } + + public function untransform(array $item): MangaFormItem + { + return new MangaFormItem($item); + } } \ No newline at end of file diff --git a/src/API/MAL/Transformer/AnimeListTransformer.php b/src/API/MAL/Transformer/AnimeListTransformer.php index af38f8e7..5c32c0f6 100644 --- a/src/API/MAL/Transformer/AnimeListTransformer.php +++ b/src/API/MAL/Transformer/AnimeListTransformer.php @@ -17,7 +17,7 @@ namespace Aviat\AnimeClient\API\MAL\Transformer; use Aviat\AnimeClient\API\Mapping\AnimeWatchingStatus; -use Aviat\AnimeClient\Types\{AnimeFormItem, AnimeFormItemData}; +use Aviat\AnimeClient\Types\AnimeFormItem; use Aviat\Ion\Transformer\AbstractTransformer; /** @@ -43,10 +43,10 @@ final class AnimeListTransformer extends AbstractTransformer { */ public function untransform(array $item): AnimeFormItem { - $map = new AnimeFormItem([ + $map = [ 'id' => $item['mal_id'], - 'data' => new AnimeFormItemData([]), - ]); + 'data' => [], + ]; foreach($item['data'] as $key => $value) { @@ -81,6 +81,6 @@ final class AnimeListTransformer extends AbstractTransformer { } } - return $map; + return new AnimeFormItem($map); } } \ No newline at end of file