UNPKG

@leosprograms/vf-graphql-holochain

Version:

GraphQL schema bindings for the Holochain implementation of ValueFlows

39 lines (32 loc) 1.18 kB
/** * Resolvers for Proposal fields * * @package: HoloREA * @since: 2019-08-27 */ import { DNAIdMappings, DEFAULT_VF_MODULES, VfModule, ReadParams, ProposalAddress, AgentAddress } from '../types.js' import { mapZomeFn } from '../connection.js' import { Proposal, ProposedTo, Agent, ProposalResponse, } from '@leosprograms/vf-graphql' import agentQueries from '../queries/agent.js' export default (enabledVFModules: VfModule[] = DEFAULT_VF_MODULES, dnaConfig: DNAIdMappings, conductorUri: string) => { const hasAgent = -1 !== enabledVFModules.indexOf(VfModule.Agent) const readProposal = mapZomeFn<ReadParams, ProposalResponse>(dnaConfig, conductorUri, 'combined', 'proposal', 'get_proposal') const readAgent = agentQueries(dnaConfig, conductorUri)['agent'] return Object.assign( { proposed: async (record: { proposed: ProposalAddress }): Promise<Proposal> => { return (await readProposal({address:record.proposed})).proposal }, }, (hasAgent ? { proposedTo: async (record: { proposedTo: AgentAddress}): Promise<Agent> => { return readAgent(record, { id: record.proposedTo }) }, } : {}), ) }