diff --git a/packages/backend/src/handlers/remote-schemas/resolvers/daohaus/resolver.ts b/packages/backend/src/handlers/remote-schemas/resolvers/daohaus/resolver.ts index f45d3f95..295802e0 100644 --- a/packages/backend/src/handlers/remote-schemas/resolvers/daohaus/resolver.ts +++ b/packages/backend/src/handlers/remote-schemas/resolvers/daohaus/resolver.ts @@ -26,16 +26,20 @@ export const getDaoHausMemberships: QueryResolvers['getDaoHausMemberships'] = as const membershipsOn = addChain(memberAddress); - const memberships = await Promise.all([ + const memberships = await Promise.allSettled([ membershipsOn('ethereum'), membershipsOn('polygon'), membershipsOn('xdai'), ]); - const members: Member[] = memberships.reduce( - (allMembers, chainMembers) => [...allMembers, ...chainMembers], - [], - ); + const members: Member[] = memberships.reduce((allMembers, chainMembers) => { + if (chainMembers.status === 'rejected') { + console.error('Pulling memberships failed:', chainMembers.reason); + return allMembers; + } + + return [...allMembers, ...chainMembers.value]; + }, []); return members; }; diff --git a/packages/backend/src/lib/daoHausClient.ts b/packages/backend/src/lib/daoHausClient.ts index 8ebd1b8a..e48e6ba3 100644 --- a/packages/backend/src/lib/daoHausClient.ts +++ b/packages/backend/src/lib/daoHausClient.ts @@ -3,13 +3,18 @@ import { GraphQLClient } from 'graphql-request'; import { CONFIG } from '../config'; import { getSdk, Sdk } from './autogen/daohaus-sdk'; -const defaultGqlClient = new GraphQLClient(CONFIG.daoHausGraphqlURL); const clients = new Map([ ['polygon', new GraphQLClient(CONFIG.daoHausPolygonGraphqlURL)], ['xdai', new GraphQLClient(CONFIG.daoHausXdaiGraphqlURL)], - ['ethereum', defaultGqlClient], + ['ethereum', new GraphQLClient(CONFIG.daoHausGraphqlURL)], ]); export function getClient(chain: string): Sdk { - return getSdk(clients.get(chain) || defaultGqlClient); + const gqlClient = clients.get(chain); + if (!gqlClient) + throw new Error( + `The '${chain}' chain is unrecognized, unable to create GQL Client`, + ); + + return getSdk(gqlClient); }