feat: support removing watch status when null

A user can choose to remove a show from being in their media list completely, by setting the watch status to null
This commit is contained in:
2024-07-04 18:18:57 -04:00
parent ad84175d6b
commit 2becf1aa3b
8 changed files with 222 additions and 11 deletions

View File

@@ -0,0 +1,15 @@
import { HttpResponse, graphql } from "msw";
export function deleteAnilistMediaListEntry() {
return graphql.mutation(
"DeleteMediaListEntry",
({ variables: { entryId } }) =>
HttpResponse.json({
data: {
DeleteMediaListEntry: {
deleted: entryId > 0,
},
},
}),
);
}

View File

@@ -0,0 +1,35 @@
import { HttpResponse, graphql } from "msw";
export function getAnilistMediaListEntry() {
return graphql.query("GetMediaListEntry", ({ variables: { titleId } }) => {
if (titleId === 10) {
return HttpResponse.json({
data: {
Media: {
mediaListEntry: {
id: 123456,
},
},
},
});
} else if (titleId === 139518) {
return HttpResponse.json({
data: {
Media: {
mediaListEntry: {
id: 123457,
},
},
},
});
}
return HttpResponse.json({
data: {
Media: {
mediaListEntry: null,
},
},
});
});
}

View File

@@ -5,12 +5,16 @@ import { getAmvstrmTitle } from "./amvstrm/title";
import { getAnifyEpisodes } from "./anify/episodes";
import { getAnifySources } from "./anify/sources";
import { getAnifyTitle } from "./anify/title";
import { deleteAnilistMediaListEntry } from "./anilist/deleteMediaListEntry";
import { getAnilistMediaListEntry } from "./anilist/mediaListEntry";
import { getAnilistSearchResults } from "./anilist/search";
import { getAnilistTitle } from "./anilist/title";
import { updateAnilistWatchStatus } from "./anilist/updateWatchStatus";
import { mockFcmMessageResponse } from "./fcm";
export const handlers = [
deleteAnilistMediaListEntry(),
getAnilistMediaListEntry(),
getAnilistSearchResults(),
getAnilistTitle(),
updateAnilistWatchStatus(),