diff --git a/hasura/metadata/tables.yaml b/hasura/metadata/tables.yaml index 3b7c2614..2ad82a76 100644 --- a/hasura/metadata/tables.yaml +++ b/hasura/metadata/tables.yaml @@ -271,13 +271,13 @@ name: brightid_status - definition: remote_field: - getTokenBalance: + getTokenBalances: arguments: address: $ethereum_address hasura_fields: - ethereum_address remote_schema: backend - name: token_balance + name: token_balances select_permissions: - role: player permission: diff --git a/packages/backend/codegen.yml b/packages/backend/codegen.yml index ed6bf62a..e71f324d 100644 --- a/packages/backend/codegen.yml +++ b/packages/backend/codegen.yml @@ -42,7 +42,7 @@ generates: ./src/lib/autogen/seedgraph-sdk.ts: schema: 'https://api.thegraph.com/subgraphs/name/dan13ram/seed-graph' documents: - - ./src/handlers/remote-schemas/resolvers/getTokenBalance/**/(!(*.d)).ts + - ./src/handlers/remote-schemas/resolvers/seedGraph/**/(!(*.d)).ts plugins: - typescript - typescript-operations diff --git a/packages/backend/src/handlers/remote-schemas/resolvers/getTokenBalance/queries.ts b/packages/backend/src/handlers/remote-schemas/resolvers/getTokenBalance/queries.ts deleted file mode 100644 index 92c0fa76..00000000 --- a/packages/backend/src/handlers/remote-schemas/resolvers/getTokenBalance/queries.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { gql } from 'graphql-request/dist'; - -export const GetTokenBalance = gql` - query GetTokenBalance($address: String!) { - userTokens(where: { address: $address }) { - id - seedBalance - pSeedBalance - } - } -`; diff --git a/packages/backend/src/handlers/remote-schemas/resolvers/getTokenBalance/resolver.ts b/packages/backend/src/handlers/remote-schemas/resolvers/getTokenBalance/resolver.ts deleted file mode 100644 index c73733a6..00000000 --- a/packages/backend/src/handlers/remote-schemas/resolvers/getTokenBalance/resolver.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { seedGraphClient } from '../../../../lib/seedGraphClient'; -import { QueryResolvers } from '../../autogen/types'; - -export const getTokenBalance: QueryResolvers['getTokenBalance'] = async ( - _, - { address }, -) => { - if (!address) return null; - const res = await seedGraphClient.GetTokenBalance({ - address: address.toLowerCase(), - }); - - if (res && res.userTokens && res.userTokens.length > 0) { - return res.userTokens[0]; - } - return null; -}; diff --git a/packages/backend/src/handlers/remote-schemas/resolvers/seedGraph/queries.ts b/packages/backend/src/handlers/remote-schemas/resolvers/seedGraph/queries.ts new file mode 100644 index 00000000..32bca85b --- /dev/null +++ b/packages/backend/src/handlers/remote-schemas/resolvers/seedGraph/queries.ts @@ -0,0 +1,11 @@ +import { gql } from 'graphql-request/dist'; + +export const GetTokenBalances = gql` + query GetTokenBalances($address: ID!) { + userToken(id: $address) { + id + seedBalance + pSeedBalance + } + } +`; diff --git a/packages/backend/src/handlers/remote-schemas/resolvers/seedGraph/resolver.ts b/packages/backend/src/handlers/remote-schemas/resolvers/seedGraph/resolver.ts new file mode 100644 index 00000000..2e09dda9 --- /dev/null +++ b/packages/backend/src/handlers/remote-schemas/resolvers/seedGraph/resolver.ts @@ -0,0 +1,14 @@ +import { seedGraphClient } from '../../../../lib/seedGraphClient'; +import { QueryResolvers } from '../../autogen/types'; + +export const getTokenBalances: QueryResolvers['getTokenBalances'] = async ( + _, + { address }, +) => { + if (!address) return null; + const res = await seedGraphClient.GetTokenBalances({ + address: address.toLowerCase(), + }); + + return res.userToken; +}; diff --git a/packages/backend/src/handlers/remote-schemas/schema.ts b/packages/backend/src/handlers/remote-schemas/schema.ts index b5e159b5..f63ef772 100644 --- a/packages/backend/src/handlers/remote-schemas/schema.ts +++ b/packages/backend/src/handlers/remote-schemas/schema.ts @@ -3,7 +3,7 @@ import { makeExecutableSchema } from 'graphql-tools'; import { getBrightIdStatus } from './resolvers/brightId/resolver'; import { getDaoHausMemberships } from './resolvers/daohaus/resolver'; import { getBoxProfile } from './resolvers/getBoxProfile/resolver'; -import { getTokenBalance } from './resolvers/getTokenBalance/resolver'; +import { getTokenBalances } from './resolvers/seedGraph/resolver'; import { typeDefs } from './typeDefs'; import { uuid } from './types/uuid'; @@ -12,7 +12,7 @@ const resolvers = { getBoxProfile, getDaoHausMemberships, getBrightIdStatus, - getTokenBalance, + getTokenBalances, }, uuid, }; diff --git a/packages/backend/src/handlers/remote-schemas/typeDefs.ts b/packages/backend/src/handlers/remote-schemas/typeDefs.ts index c173b5fb..5c44a0e0 100644 --- a/packages/backend/src/handlers/remote-schemas/typeDefs.ts +++ b/packages/backend/src/handlers/remote-schemas/typeDefs.ts @@ -7,7 +7,7 @@ export const typeDefs = gql` getBoxProfile(address: String): BoxProfile getDaoHausMemberships(memberAddress: String): [Member!]! getBrightIdStatus(contextId: uuid): BrightIdStatus - getTokenBalance(address: String): UserToken + getTokenBalances(address: String): UserToken } type BrightIdStatus { diff --git a/schema.graphql b/schema.graphql index a0767aa0..6ee9baf2 100644 --- a/schema.graphql +++ b/schema.graphql @@ -3003,6 +3003,9 @@ type player { role: String sc_identity_id: String timezone: String + + """Remote relationship field""" + token_balances: UserToken total_xp: numeric updated_at: timestamptz username: String! @@ -4354,6 +4357,7 @@ type Query { getBoxProfile(address: String): BoxProfile getBrightIdStatus(contextId: uuid): BrightIdStatus getDaoHausMemberships(memberAddress: String): [Member!]! + getTokenBalances(address: String): UserToken } """query root""" @@ -4706,6 +4710,7 @@ type query_root { getBoxProfile(address: String): BoxProfile getBrightIdStatus(contextId: uuid): BrightIdStatus getDaoHausMemberships(memberAddress: String): [Member!]! + getTokenBalances(address: String): UserToken """ fetch data from the table: "guild" @@ -8149,6 +8154,12 @@ type UpdateQuestCompletionOutput { success: Boolean! } +type UserToken { + id: ID! + pSeedBalance: String! + seedBalance: String! +} + scalar uuid """