Create and delete media items via GraphQL, see #28
All checks were successful
timw4mail/HummingBirdAnimeClient/pipeline/head This commit looks good
All checks were successful
timw4mail/HummingBirdAnimeClient/pipeline/head This commit looks good
This commit is contained in:
parent
3965f137e1
commit
f328420869
@ -43,6 +43,16 @@ final class ListItem extends AbstractListItem {
|
||||
* @throws Throwable
|
||||
*/
|
||||
public function create(array $data): Request
|
||||
{
|
||||
return $this->requestBuilder->mutateRequest('CreateLibraryItem', [
|
||||
'id' => $data['id'],
|
||||
'status' => strtoupper($data['status']),
|
||||
'type' => strtoupper($data['type']),
|
||||
'userId' => $data['user_id'],
|
||||
]);
|
||||
}
|
||||
|
||||
public function createFull(array $data): Request
|
||||
{
|
||||
$body = [
|
||||
'data' => [
|
||||
@ -93,15 +103,9 @@ final class ListItem extends AbstractListItem {
|
||||
*/
|
||||
public function delete(string $id): Request
|
||||
{
|
||||
$authHeader = $this->getAuthHeader();
|
||||
$request = $this->requestBuilder->newRequest('DELETE', "library-entries/{$id}");
|
||||
|
||||
if ($authHeader !== NULL)
|
||||
{
|
||||
$request = $request->setHeader('Authorization', $authHeader);
|
||||
}
|
||||
|
||||
return $request->getFullRequest();
|
||||
return $this->requestBuilder->mutateRequest('DeleteLibraryItem', [
|
||||
'id' => $id
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -0,0 +1,19 @@
|
||||
# Create full library item
|
||||
# Flesh out a library item with data - most commonly used for syncing lists
|
||||
# between APIs
|
||||
mutation (
|
||||
$userId: ID!
|
||||
$id: ID!,
|
||||
$mediaType: media_type!,
|
||||
$status: MediaListStatus,
|
||||
) {
|
||||
createLibraryEntry (input: {
|
||||
userId: $userId
|
||||
mediaId: $id
|
||||
mediaType: $mediaType
|
||||
status: $status
|
||||
}) {
|
||||
mediaId
|
||||
status
|
||||
}
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
# Create minimal library item
|
||||
# This is the more common use case, when adding an anime or manga to
|
||||
# the user's library.
|
||||
mutation (
|
||||
$userId: ID!
|
||||
$id: ID!,
|
||||
$type: media_type!,
|
||||
$status: LibraryEntryStatus!,
|
||||
) {
|
||||
createLibraryEntry (input: {
|
||||
userId: $userId
|
||||
mediaId: $id
|
||||
mediaType: $type
|
||||
status: $status
|
||||
}) {
|
||||
libraryEntry {
|
||||
id
|
||||
media {
|
||||
type
|
||||
}
|
||||
user {
|
||||
id
|
||||
}
|
||||
status
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
mutation ($id: ID!) {
|
||||
deleteLibraryEntry(input: {id: $id}) {
|
||||
libraryEntry {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
@ -27,8 +27,9 @@ query ($slug: String!) {
|
||||
character {
|
||||
id
|
||||
names {
|
||||
canonical
|
||||
alternatives
|
||||
canonical
|
||||
localized
|
||||
}
|
||||
image {
|
||||
original {
|
||||
@ -96,7 +97,9 @@ query ($slug: String!) {
|
||||
subtype
|
||||
synopsis
|
||||
titles {
|
||||
alternatives
|
||||
canonical
|
||||
canonicalLocale
|
||||
localized
|
||||
}
|
||||
totalLength
|
||||
|
@ -27,8 +27,9 @@ query ($id: ID!) {
|
||||
character {
|
||||
id
|
||||
names {
|
||||
canonical
|
||||
alternatives
|
||||
canonical
|
||||
localized
|
||||
}
|
||||
image {
|
||||
original {
|
||||
@ -54,20 +55,6 @@ query ($id: ID!) {
|
||||
episodeCount
|
||||
episodeLength
|
||||
totalLength
|
||||
posterImage {
|
||||
original {
|
||||
height
|
||||
name
|
||||
url
|
||||
width
|
||||
}
|
||||
views {
|
||||
height
|
||||
name
|
||||
url
|
||||
width
|
||||
}
|
||||
}
|
||||
season
|
||||
sfw
|
||||
slug
|
||||
@ -110,7 +97,9 @@ query ($id: ID!) {
|
||||
subtype
|
||||
synopsis
|
||||
titles {
|
||||
alternatives
|
||||
canonical
|
||||
canonicalLocale
|
||||
localized
|
||||
}
|
||||
totalLength
|
||||
|
Loading…
Reference in New Issue
Block a user