summaryrefslogtreecommitdiffstatshomepage
path: root/src/hircine/api/mutation/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/hircine/api/mutation/__init__.py')
-rw-r--r--src/hircine/api/mutation/__init__.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/hircine/api/mutation/__init__.py b/src/hircine/api/mutation/__init__.py
new file mode 100644
index 0000000..93c2b4a
--- /dev/null
+++ b/src/hircine/api/mutation/__init__.py
@@ -0,0 +1,69 @@
+import strawberry
+
+from hircine.api.responses import (
+ AddComicResponse,
+ AddResponse,
+ DeleteResponse,
+ UpdateResponse,
+ UpsertResponse,
+)
+from hircine.db.models import (
+ Archive,
+ Artist,
+ Character,
+ Circle,
+ Comic,
+ Namespace,
+ Tag,
+ World,
+)
+
+from .resolvers import (
+ add,
+ delete,
+ post_add_comic,
+ post_delete_archive,
+ update,
+ upsert,
+)
+
+
+def mutate(resolver):
+ return strawberry.mutation(resolver=resolver)
+
+
+@strawberry.type
+class Mutation:
+ update_archives: UpdateResponse = mutate(update(Archive))
+ delete_archives: DeleteResponse = mutate(
+ delete(Archive, post_delete=post_delete_archive)
+ )
+
+ add_comic: AddComicResponse = mutate(add(Comic, post_add=post_add_comic))
+ delete_comics: DeleteResponse = mutate(delete(Comic))
+ update_comics: UpdateResponse = mutate(update(Comic))
+ upsert_comics: UpsertResponse = mutate(upsert(Comic))
+
+ add_namespace: AddResponse = mutate(add(Namespace))
+ delete_namespaces: DeleteResponse = mutate(delete(Namespace))
+ update_namespaces: UpdateResponse = mutate(update(Namespace))
+
+ add_tag: AddResponse = mutate(add(Tag))
+ delete_tags: DeleteResponse = mutate(delete(Tag))
+ update_tags: UpdateResponse = mutate(update(Tag))
+
+ add_circle: AddResponse = mutate(add(Circle))
+ delete_circles: DeleteResponse = mutate(delete(Circle))
+ update_circles: UpdateResponse = mutate(update(Circle))
+
+ add_artist: AddResponse = mutate(add(Artist))
+ delete_artists: DeleteResponse = mutate(delete(Artist))
+ update_artists: UpdateResponse = mutate(update(Artist))
+
+ add_character: AddResponse = mutate(add(Character))
+ delete_characters: DeleteResponse = mutate(delete(Character))
+ update_characters: UpdateResponse = mutate(update(Character))
+
+ add_world: AddResponse = mutate(add(World))
+ delete_worlds: DeleteResponse = mutate(delete(World))
+ update_worlds: UpdateResponse = mutate(update(World))