@leosprograms/vf-graphql-holochain
Version:
GraphQL schema bindings for the Holochain implementation of ValueFlows
42 lines • 8.81 kB
JavaScript
/**
* Resolvers for agreement fields
*
* @package: hREA
* @since: 2020-06-19
*/
import { DEFAULT_VF_MODULES, VfModule } from '../types.js';
import { extractEdges, mapZomeFn } from '../connection.js';
const extractAgent = (data) => data.agent;
export default (enabledVFModules = DEFAULT_VF_MODULES, dnaConfig, conductorUri) => {
const hasHistory = -1 !== enabledVFModules.indexOf(VfModule.History);
const hasObservation = -1 !== enabledVFModules.indexOf(VfModule.Observation);
const hasCommitment = -1 !== enabledVFModules.indexOf(VfModule.Commitment);
const hasAgent = -1 !== enabledVFModules.indexOf(VfModule.Agent);
const readRevision = mapZomeFn(dnaConfig, conductorUri, 'combined', 'agreement', 'get_revision');
const queryCommitments = mapZomeFn(dnaConfig, conductorUri, 'combined', 'indexing', 'query_commitments');
const queryEvents = mapZomeFn(dnaConfig, conductorUri, 'combined', 'indexing', 'query_economic_events');
const readAgent = mapZomeFn(dnaConfig, conductorUri, 'combined', 'agent', 'get_agent');
return Object.assign((hasCommitment ? {
commitments: async (record) => {
const commitments = await queryCommitments({ params: { clauseOf: record.id } });
return extractEdges(commitments);
},
} : {}), (hasObservation ? {
economicEvents: async (record) => {
const economicEvents = await queryEvents({ params: { realizationOf: record.id } });
return extractEdges(economicEvents);
},
unplannedEconomicEvents: async (record) => {
throw new Error('resolver unimplemented');
},
} : {}), (hasAgent ? {
involvedAgents: async (record) => {
return (await Promise.all((record.involvedAgents || []).map((address) => readAgent({ address })))).map(extractAgent);
},
} : {}), (hasHistory ? {
revision: async (record, args) => {
return (await readRevision(args)).agreement;
},
} : {}));
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyZWVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vcmVzb2x2ZXJzL2FncmVlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFBaUIsa0JBQWtCLEVBQUUsUUFBUSxFQUErRCxNQUFNLGFBQWEsQ0FBQTtBQUN0SSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBZTFELE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxFQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFBO0FBRWhELGVBQWUsQ0FBQyxtQkFBK0Isa0JBQWtCLEVBQUUsU0FBd0IsRUFBRSxZQUFvQixFQUFFLEVBQUU7SUFDbkgsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNwRSxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzVFLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxLQUFLLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDMUUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUVoRSxNQUFNLFlBQVksR0FBRyxTQUFTLENBQWdDLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUMvSCxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBNkMsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixDQUFDLENBQUE7SUFDcEosTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFvRCxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsdUJBQXVCLENBQUMsQ0FBQTtJQUMxSixNQUFNLFNBQVMsR0FBRyxTQUFTLENBQTRCLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUVqSCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNmLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBaUIsRUFBeUIsRUFBRTtZQUM5RCxNQUFNLFdBQVcsR0FBRyxNQUFNLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDL0UsT0FBTyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDbEMsQ0FBQztLQUNGLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUNQLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNoQixjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQWlCLEVBQTRCLEVBQUU7WUFDcEUsTUFBTSxjQUFjLEdBQUcsTUFBTSxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtZQUNsRixPQUFPLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUNyQyxDQUFDO1FBQ0QsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLE1BQWlCLEVBQTRCLEVBQUU7WUFDN0UsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO1FBQzNDLENBQUM7S0FDRixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDUCxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDVixjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQTBDLEVBQW9CLEVBQUU7WUFDckYsT0FBTyxDQUFDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFDLEVBQUUsQ0FBQSxTQUFTLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUNsSCxDQUFDO0tBQ0YsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQ1AsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ1osUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFpQixFQUFFLElBQTJDLEVBQXNCLEVBQUU7WUFDckcsT0FBTyxDQUFDLE1BQU0sWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO1FBQzdDLENBQUM7S0FDRixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FDUixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXNvbHZlcnMgZm9yIGFncmVlbWVudCBmaWVsZHNcbiAqXG4gKiBAcGFja2FnZTogaFJFQVxuICogQHNpbmNlOiAgIDIwMjAtMDYtMTlcbiAqL1xuXG5pbXBvcnQgeyBETkFJZE1hcHBpbmdzLCBERUZBVUxUX1ZGX01PRFVMRVMsIFZmTW9kdWxlLCBBZ2VudEFkZHJlc3MsIFJlYWRQYXJhbXMsIEJ5UmV2aXNpb24sIEFkZHJlc3NhYmxlSWRlbnRpZmllciB9IGZyb20gJy4uL3R5cGVzLmpzJ1xuaW1wb3J0IHsgZXh0cmFjdEVkZ2VzLCBtYXBab21lRm4gfSBmcm9tICcuLi9jb25uZWN0aW9uLmpzJ1xuXG5pbXBvcnQge1xuICBBZ2VudCxcbiAgQWdlbnRDb25uZWN0aW9uLFxuICBBZ3JlZW1lbnQsXG4gIEFncmVlbWVudFJlc3BvbnNlLFxuICBDb21taXRtZW50LFxuICBDb21taXRtZW50Q29ubmVjdGlvbixcbiAgRWNvbm9taWNFdmVudCxcbiAgRWNvbm9taWNFdmVudENvbm5lY3Rpb24sXG59IGZyb20gJ0BsZW9zcHJvZ3JhbXMvdmYtZ3JhcGhxbCdcbmltcG9ydCB7IENvbW1pdG1lbnRTZWFyY2hJbnB1dCwgRWNvbm9taWNFdmVudFNlYXJjaElucHV0IH0gZnJvbSAnLi96b21lU2VhcmNoSW5wdXRUeXBlcy5qcydcbmltcG9ydCB7IEFnZW50UmVzcG9uc2UgfSBmcm9tICcuLi9tdXRhdGlvbnMvYWdlbnQnXG5cbmNvbnN0IGV4dHJhY3RBZ2VudCA9IChkYXRhKTogQWdlbnQgPT4gZGF0YS5hZ2VudFxuXG5leHBvcnQgZGVmYXVsdCAoZW5hYmxlZFZGTW9kdWxlczogVmZNb2R1bGVbXSA9IERFRkFVTFRfVkZfTU9EVUxFUywgZG5hQ29uZmlnOiBETkFJZE1hcHBpbmdzLCBjb25kdWN0b3JVcmk6IHN0cmluZykgPT4ge1xuICBjb25zdCBoYXNIaXN0b3J5ID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5IaXN0b3J5KVxuICBjb25zdCBoYXNPYnNlcnZhdGlvbiA9IC0xICE9PSBlbmFibGVkVkZNb2R1bGVzLmluZGV4T2YoVmZNb2R1bGUuT2JzZXJ2YXRpb24pXG4gIGNvbnN0IGhhc0NvbW1pdG1lbnQgPSAtMSAhPT0gZW5hYmxlZFZGTW9kdWxlcy5pbmRleE9mKFZmTW9kdWxlLkNvbW1pdG1lbnQpXG4gIGNvbnN0IGhhc0FnZW50ID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5BZ2VudClcblxuICBjb25zdCByZWFkUmV2aXNpb24gPSBtYXBab21lRm48QnlSZXZpc2lvbiwgQWdyZWVtZW50UmVzcG9uc2U+KGRuYUNvbmZpZywgY29uZHVjdG9yVXJpLCAnY29tYmluZWQnLCAnYWdyZWVtZW50JywgJ2dldF9yZXZpc2lvbicpXG4gIGNvbnN0IHF1ZXJ5Q29tbWl0bWVudHMgPSBtYXBab21lRm48Q29tbWl0bWVudFNlYXJjaElucHV0LENvbW1pdG1lbnRDb25uZWN0aW9uPihkbmFDb25maWcsIGNvbmR1Y3RvclVyaSwgJ2NvbWJpbmVkJywgJ2luZGV4aW5nJywgJ3F1ZXJ5X2NvbW1pdG1lbnRzJylcbiAgY29uc3QgcXVlcnlFdmVudHMgPSBtYXBab21lRm48RWNvbm9taWNFdmVudFNlYXJjaElucHV0LCBFY29ub21pY0V2ZW50Q29ubmVjdGlvbj4oZG5hQ29uZmlnLCBjb25kdWN0b3JVcmksICdjb21iaW5lZCcsICdpbmRleGluZycsICdxdWVyeV9lY29ub21pY19ldmVudHMnKVxuICBjb25zdCByZWFkQWdlbnQgPSBtYXBab21lRm48UmVhZFBhcmFtcywgQWdlbnRSZXNwb25zZT4oZG5hQ29uZmlnLCBjb25kdWN0b3JVcmksICdjb21iaW5lZCcsICdhZ2VudCcsICdnZXRfYWdlbnQnKVxuXG4gIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgIChoYXNDb21taXRtZW50ID8ge1xuICAgICAgY29tbWl0bWVudHM6IGFzeW5jIChyZWNvcmQ6IEFncmVlbWVudCk6IFByb21pc2U8Q29tbWl0bWVudFtdPiA9PiB7XG4gICAgICAgIGNvbnN0IGNvbW1pdG1lbnRzID0gYXdhaXQgcXVlcnlDb21taXRtZW50cyh7IHBhcmFtczogeyBjbGF1c2VPZjogcmVjb3JkLmlkIH0gfSlcbiAgICAgICAgcmV0dXJuIGV4dHJhY3RFZGdlcyhjb21taXRtZW50cylcbiAgICAgIH0sXG4gICAgfSA6IHt9KSxcbiAgICAoaGFzT2JzZXJ2YXRpb24gPyB7XG4gICAgICBlY29ub21pY0V2ZW50czogYXN5bmMgKHJlY29yZDogQWdyZWVtZW50KTogUHJvbWlzZTxFY29ub21pY0V2ZW50W10+ID0+IHtcbiAgICAgICAgY29uc3QgZWNvbm9taWNFdmVudHMgPSBhd2FpdCBxdWVyeUV2ZW50cyh7IHBhcmFtczogeyByZWFsaXphdGlvbk9mOiByZWNvcmQuaWQgfSB9KVxuICAgICAgICByZXR1cm4gZXh0cmFjdEVkZ2VzKGVjb25vbWljRXZlbnRzKVxuICAgICAgfSxcbiAgICAgIHVucGxhbm5lZEVjb25vbWljRXZlbnRzOiBhc3luYyAocmVjb3JkOiBBZ3JlZW1lbnQpOiBQcm9taXNlPEVjb25vbWljRXZlbnRbXT4gPT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Jlc29sdmVyIHVuaW1wbGVtZW50ZWQnKVxuICAgICAgfSxcbiAgICB9IDoge30pLFxuICAgIChoYXNBZ2VudCA/IHtcbiAgICAgIGludm9sdmVkQWdlbnRzOiBhc3luYyAocmVjb3JkOiB7IGludm9sdmVkQWdlbnRzOiBBZ2VudEFkZHJlc3NbXSB9KTogUHJvbWlzZTxBZ2VudFtdPiA9PiB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwoKHJlY29yZC5pbnZvbHZlZEFnZW50cyB8fCBbXSkubWFwKChhZGRyZXNzKT0+cmVhZEFnZW50KHthZGRyZXNzfSkpKSkubWFwKGV4dHJhY3RBZ2VudClcbiAgICAgIH0sXG4gICAgfSA6IHt9KSxcbiAgICAoaGFzSGlzdG9yeSA/IHtcbiAgICAgIHJldmlzaW9uOiBhc3luYyAocmVjb3JkOiBBZ3JlZW1lbnQsIGFyZ3M6IHsgcmV2aXNpb25JZDogQWRkcmVzc2FibGVJZGVudGlmaWVyIH0pOiBQcm9taXNlPEFncmVlbWVudD4gPT4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHJlYWRSZXZpc2lvbihhcmdzKSkuYWdyZWVtZW50XG4gICAgICB9LFxuICAgIH0gOiB7fSksXG4gIClcbn1cbiJdfQ==