@leosprograms/vf-graphql-holochain
Version:
GraphQL schema bindings for the Holochain implementation of ValueFlows
30 lines (25 loc) • 1.06 kB
text/typescript
/**
* Top-level queries relating to Commitments
*
* @package: HoloREA
* @since: 2019-08-28
*/
import { DNAIdMappings, injectTypename, ReadParams } from '../types.js'
import { mapZomeFn } from '../connection.js'
import {
Commitment, CommitmentConnection, CommitmentResponse,
} from '@leosprograms/vf-graphql'
import { PagingParams } from '../resolvers/zomeSearchInputTypes.js'
export default (dnaConfig: DNAIdMappings, conductorUri: string) => {
const readOne = mapZomeFn<ReadParams, CommitmentResponse>(dnaConfig, conductorUri, 'combined', 'commitment', 'get_commitment')
const readAll = mapZomeFn<PagingParams, CommitmentConnection>(dnaConfig, conductorUri, 'combined', 'indexing', 'read_all_commitments')
return {
commitment: injectTypename('Commitment', async (root, args): Promise<Commitment> => {
const { id } = args
return (await (await readOne)({ address: id })).commitment
}),
commitments: async (root, args: PagingParams): Promise<CommitmentConnection> => {
return await readAll(args)
},
}
}