@leosprograms/vf-graphql-holochain
Version:
GraphQL schema bindings for the Holochain implementation of ValueFlows
30 lines (25 loc) • 958 B
text/typescript
/**
* Top-level Intent queries
*
* @package: HoloREA
* @since: 2019-08-31
*/
import { DNAIdMappings, ReadParams } from '../types.js'
import { mapZomeFn } from '../connection.js'
import {
Intent, IntentConnection, IntentResponse,
} from '@leosprograms/vf-graphql'
import { PagingParams } from '../resolvers/zomeSearchInputTypes.js'
// :TODO: how to inject DNA identifier?
export default (dnaConfig: DNAIdMappings, conductorUri: string) => {
const readRecord = mapZomeFn<ReadParams, IntentResponse>(dnaConfig, conductorUri, 'combined', 'intent', 'get_intent')
const readAll = mapZomeFn<PagingParams, IntentConnection>(dnaConfig, conductorUri, 'combined', 'indexing', 'read_all_intents')
return {
intent: async (root, args): Promise<Intent> => {
return (await readRecord({ address: args.id })).intent
},
intents: async (root, args: PagingParams): Promise<IntentConnection> => {
return await readAll(args)
},
}
}