aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/graphql/user/resolvers.ts17
-rw-r--r--src/graphql/user/schema.graphql1
-rw-r--r--src/routes/user/[user]/+page.gql5
-rw-r--r--src/routes/user/[user]/+page.svelte4
4 files changed, 16 insertions, 11 deletions
diff --git a/src/graphql/user/resolvers.ts b/src/graphql/user/resolvers.ts
index ebdba2a6..9bccbd6b 100644
--- a/src/graphql/user/resolvers.ts
+++ b/src/graphql/user/resolvers.ts
@@ -43,10 +43,13 @@ const authenticatedBadgesOperation = async (
await operation(identity, authorised);
+ const badges = await getUserBadges(identity.id)
+
return {
id: identity.id,
- badges: await getUserBadges(identity.id),
- preferences: {}
+ badges,
+ preferences: {},
+ badgesCount: badges.length
}
};
@@ -63,7 +66,8 @@ const authenticatedPreferencesOperation = async (
return {
id: identity.id,
badges: [] as Badge[],
- preferences: await operation(identity, authorised)
+ preferences: await operation(identity, authorised),
+ badgesCount: 0
}
};
@@ -72,10 +76,13 @@ export const resolvers: WithIndex<Resolvers> = {
User: async (_, args) => {
if (!args.id) return null;
+ const badges = (await getUserBadges(args.id))
+
return {
id: args.id,
- badges: (await getUserBadges(args.id)) as Badge[],
- preferences: await getUserPreferences(args.id)
+ badges,
+ preferences: await getUserPreferences(args.id),
+ badgesCount: badges.length
};
}
},
diff --git a/src/graphql/user/schema.graphql b/src/graphql/user/schema.graphql
index b8217b5a..f0ac3081 100644
--- a/src/graphql/user/schema.graphql
+++ b/src/graphql/user/schema.graphql
@@ -32,6 +32,7 @@ type User {
id: Int!
badges: [Badge!]!
preferences: Preferences
+ badgesCount: Int!
}
type Badge {
diff --git a/src/routes/user/[user]/+page.gql b/src/routes/user/[user]/+page.gql
index 91759675..fd31248b 100644
--- a/src/routes/user/[user]/+page.gql
+++ b/src/routes/user/[user]/+page.gql
@@ -1,10 +1,7 @@
query Profile($id: Int!) {
User(id: $id) {
id
-
- badges {
- id
- }
+ badgesCount
preferences {
created_at
diff --git a/src/routes/user/[user]/+page.svelte b/src/routes/user/[user]/+page.svelte
index 03e13f11..84f121ea 100644
--- a/src/routes/user/[user]/+page.svelte
+++ b/src/routes/user/[user]/+page.svelte
@@ -307,8 +307,8 @@
{#if $Profile.fetching}
{displayBadges(userData.name, '...')}
- {:else if $Profile.data}
- {@const badges = $Profile.data.User.badges.length}
+ {:else if $Profile.data && $Profile.data.User}
+ {@const badges = $Profile.data.User.badgesCount}
{#if badges}
{displayBadges(userData.name, badges)}