From dc447640089616e46e57a38464375b2759d42ae8 Mon Sep 17 00:00:00 2001 From: keyan Date: Thu, 28 Apr 2022 17:00:09 -0500 Subject: [PATCH] limit related queries in me query for SSR --- api/resolvers/user.js | 9 +++++---- api/ssrApollo.js | 4 ++-- fragments/users.js | 22 ++++++++++++++++++++++ pages/api/graphql.js | 2 +- 4 files changed, 30 insertions(+), 7 deletions(-) diff --git a/api/resolvers/user.js b/api/resolvers/user.js index 7a53c4d9..c48be874 100644 --- a/api/resolvers/user.js +++ b/api/resolvers/user.js @@ -167,10 +167,11 @@ export default { return getItem(user, { id: user.bioId }, { models }) }, hasInvites: async (user, args, { models }) => { - const invite = await models.invite.findFirst({ - where: { userId: user.id } - }) - return !!invite + const invites = await models.user.findUnique({ + where: { id: user.id } + }).invites({ take: 1 }) + + return invites.length > 0 }, hasNewNotes: async (user, args, { me, models }) => { const lastChecked = user.checkedNotesAt || new Date(0) diff --git a/api/ssrApollo.js b/api/ssrApollo.js index 8e7581fb..5093201d 100644 --- a/api/ssrApollo.js +++ b/api/ssrApollo.js @@ -8,7 +8,7 @@ import models from './models' import { print } from 'graphql' import lnd from './lnd' import search from './search' -import { ME } from '../fragments/users' +import { ME_SSR } from '../fragments/users' import { getPrice } from '../components/price' export default async function getSSRApolloClient (req, me = null) { @@ -66,7 +66,7 @@ export function getGetServerSideProps (query, variables = null, notFoundFunc, re } const { data: { me } } = await client.query({ - query: ME + query: ME_SSR }) const price = await getPrice() diff --git a/fragments/users.js b/fragments/users.js index d41371ba..fae6ca29 100644 --- a/fragments/users.js +++ b/fragments/users.js @@ -26,6 +26,28 @@ export const ME = gql` } }` +export const ME_SSR = gql` + { + me { + id + name + sats + stacked + freePosts + freeComments + tipDefault + bioId + upvotePopover + tipPopover + noteItemSats + noteEarning + noteAllDescendants + noteMentions + noteDeposits + noteInvites + } + }` + export const NAME_QUERY = gql` query nameAvailable($name: String!) { diff --git a/pages/api/graphql.js b/pages/api/graphql.js index eb88478a..7329d7dc 100644 --- a/pages/api/graphql.js +++ b/pages/api/graphql.js @@ -19,7 +19,7 @@ const apolloServer = new ApolloServer({ return (error, result) => { const end = process.hrtime.bigint() const ms = (end - start) / 1000000n - if (ms > 20) { + if (ms > 20 && info.parentType.name !== 'User') { console.log(`Field ${info.parentType.name}.${info.fieldName} took ${ms}ms`) } if (error) {