diff --git a/src/AnimeClient/API/Kitsu/GraphQL/Mutations/UpdateLibraryItem.graphql b/src/AnimeClient/API/Kitsu/GraphQL/Mutations/UpdateLibraryItem.graphql new file mode 100644 index 00000000..e5b14a56 --- /dev/null +++ b/src/AnimeClient/API/Kitsu/GraphQL/Mutations/UpdateLibraryItem.graphql @@ -0,0 +1,32 @@ +mutation( + $id: ID!, + $notes: String, + $private: Boolean, + $progress: Int, + $ratingTwenty: Int, + $reconsumeCount: Int!, + $reconsuming: Boolean, + $status: LibraryEntryStatus!, +) { + updateLibraryEntry(input: { + id: $id, + notes: $notes + private: $private + progress: $progress + rating: $ratingTwenty + reconsumeCount: $reconsumeCount + reconsuming: $reconsuming + status: $status + }) { + libraryEntry { + id + notes + private + progress + rating + reconsumeCount + reconsuming + status + } + } +} diff --git a/src/AnimeClient/API/Kitsu/ListItem.php b/src/AnimeClient/API/Kitsu/ListItem.php index 27931b3c..768aa8d7 100644 --- a/src/AnimeClient/API/Kitsu/ListItem.php +++ b/src/AnimeClient/API/Kitsu/ListItem.php @@ -151,29 +151,16 @@ final class ListItem extends AbstractListItem { */ public function update(string $id, FormItemData $data): Request { - $authHeader = $this->getAuthHeader(); - $requestData = [ - 'data' => [ - 'id' => $id, - 'type' => 'libraryEntries', - 'attributes' => $data - ] - ]; - - if (((int) $data->progress) === 0) - { - $data->progress = 0; - } - - $request = $this->requestBuilder->newRequest('PATCH', "library-entries/{$id}") - ->setJsonBody($requestData); - - if ($authHeader !== NULL) - { - $request = $request->setHeader('Authorization', $authHeader); - } - - return $request->getFullRequest(); + return $this->requestBuilder->mutateRequest('UpdateLibraryItem', [ + 'id' => $id, + 'notes' => $data['notes'], + 'private' => (bool)$data['private'], + 'progress' => (int)$data['progress'], + 'ratingTwenty' => (int)$data['ratingTwenty'], + 'reconsumeCount' => (int)$data['reconsumeCount'], + 'reconsuming' => (bool)$data['reconsuming'], + 'status' => strtoupper($data['status']), + ]); } /** diff --git a/src/AnimeClient/Model/Anime.php b/src/AnimeClient/Model/Anime.php index cdaeb93b..eff30786 100644 --- a/src/AnimeClient/Model/Anime.php +++ b/src/AnimeClient/Model/Anime.php @@ -255,7 +255,7 @@ class Anime extends API { $results = $requester->makeRequests(); $body = Json::decode($results['kitsu']); - $statusCode = array_key_exists('error', $body) ? 400: 200; + $statusCode = array_key_exists('errors', $body) ? 400: 200; return [ 'body' => Json::decode($results['kitsu']), diff --git a/src/AnimeClient/Model/Manga.php b/src/AnimeClient/Model/Manga.php index b6947184..7ae853ca 100644 --- a/src/AnimeClient/Model/Manga.php +++ b/src/AnimeClient/Model/Manga.php @@ -171,7 +171,7 @@ class Manga extends API { $results = $requester->makeRequests(); $body = Json::decode($results['kitsu']); - $statusCode = array_key_exists('error', $body) ? 400: 200; + $statusCode = array_key_exists('errors', $body) ? 400: 200; return [ 'body' => Json::decode($results['kitsu']),