aboutsummaryrefslogtreecommitdiff
path: root/src/graphql/user
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-09-28 16:58:15 -0700
committerFuwn <[email protected]>2024-09-28 16:58:15 -0700
commit22b87a179af5ca7b148453c1a1a84c85d29f4c4a (patch)
tree01f754c6c18cad902fd3820494065d403ca8a565 /src/graphql/user
parentfeat(api): set up graphql api (diff)
downloaddue.moe-22b87a179af5ca7b148453c1a1a84c85d29f4c4a.tar.xz
due.moe-22b87a179af5ca7b148453c1a1a84c85d29f4c4a.zip
feat(graphl): set up user module
Diffstat (limited to 'src/graphql/user')
-rw-r--r--src/graphql/user/index.ts4
-rw-r--r--src/graphql/user/resolvers.ts14
-rw-r--r--src/graphql/user/schema.graphql22
3 files changed, 40 insertions, 0 deletions
diff --git a/src/graphql/user/index.ts b/src/graphql/user/index.ts
new file mode 100644
index 00000000..925a7ece
--- /dev/null
+++ b/src/graphql/user/index.ts
@@ -0,0 +1,4 @@
+import typeDefs from './schema.graphql?raw';
+import { resolvers } from './resolvers';
+
+export default { typeDefs, resolvers };
diff --git a/src/graphql/user/resolvers.ts b/src/graphql/user/resolvers.ts
new file mode 100644
index 00000000..a18358be
--- /dev/null
+++ b/src/graphql/user/resolvers.ts
@@ -0,0 +1,14 @@
+import { getUserBadges } from '$lib/Database/SB/User/badges';
+import type { WithIndex } from '../$types';
+import type { Resolvers, Badge } from './$types';
+
+export const resolvers: WithIndex<Resolvers> = {
+ Query: {
+ User: async (_, args /* , _context */) => {
+ return {
+ id: args.id,
+ badges: await getUserBadges(args.id) as Badge[]
+ }
+ }
+ }
+};
diff --git a/src/graphql/user/schema.graphql b/src/graphql/user/schema.graphql
new file mode 100644
index 00000000..d4360a39
--- /dev/null
+++ b/src/graphql/user/schema.graphql
@@ -0,0 +1,22 @@
+type Query {
+ User(id: Int!): User
+}
+
+type User {
+ id: Int!
+ badges: [Badge]
+}
+
+type Badge {
+ post: String
+ image: String
+ description: String
+ id: Int
+ time: String
+ category: String
+ hidden: Boolean
+ source: String
+ designer: String
+ shadow_hidden: Boolean
+ click_count: Int
+}