UNPKG

@valueflows/vf-graphql-holochain

Version:

GraphQL schema bindings for the Holochain implementation of ValueFlows

42 lines 8.86 kB
/** * 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, 'agreement', 'agreement', 'get_revision'); const queryCommitments = mapZomeFn(dnaConfig, conductorUri, 'planning', 'commitment_index', 'query_commitments'); const queryEvents = mapZomeFn(dnaConfig, conductorUri, 'observation', 'economic_event_index', 'query_economic_events'); const readAgent = mapZomeFn(dnaConfig, conductorUri, 'agent', '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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyZWVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vcmVzb2x2ZXJzL2FncmVlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFBaUIsa0JBQWtCLEVBQUUsUUFBUSxFQUErRCxNQUFNLGFBQWEsQ0FBQTtBQUN0SSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBZTFELE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxFQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFBO0FBRWhELGVBQWUsQ0FBQyxtQkFBK0Isa0JBQWtCLEVBQUUsU0FBd0IsRUFBRSxZQUFvQixFQUFFLEVBQUU7SUFDbkgsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNwRSxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzVFLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxLQUFLLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDMUUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUVoRSxNQUFNLFlBQVksR0FBRyxTQUFTLENBQWdDLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUNoSSxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBNkMsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTtJQUM1SixNQUFNLFdBQVcsR0FBRyxTQUFTLENBQW9ELFNBQVMsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixDQUFDLENBQUE7SUFDekssTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUE0QixTQUFTLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFFOUcsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUNsQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDZixXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQWlCLEVBQXlCLEVBQUU7WUFDOUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1lBQy9FLE9BQU8sWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ2xDLENBQUM7S0FDRixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDUCxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFpQixFQUE0QixFQUFFO1lBQ3BFLE1BQU0sY0FBYyxHQUFHLE1BQU0sV0FBVyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDbEYsT0FBTyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDckMsQ0FBQztRQUNELHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFpQixFQUE0QixFQUFFO1lBQzdFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtRQUMzQyxDQUFDO0tBQ0YsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQ1AsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ1YsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUEwQyxFQUFvQixFQUFFO1lBQ3JGLE9BQU8sQ0FBQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBQyxFQUFFLENBQUEsU0FBUyxDQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDbEgsQ0FBQztLQUNGLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUNQLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNaLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBaUIsRUFBRSxJQUEyQyxFQUFzQixFQUFFO1lBQ3JHLE9BQU8sQ0FBQyxNQUFNLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtRQUM3QyxDQUFDO0tBQ0YsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQ1IsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzb2x2ZXJzIGZvciBhZ3JlZW1lbnQgZmllbGRzXG4gKlxuICogQHBhY2thZ2U6IGhSRUFcbiAqIEBzaW5jZTogICAyMDIwLTA2LTE5XG4gKi9cblxuaW1wb3J0IHsgRE5BSWRNYXBwaW5ncywgREVGQVVMVF9WRl9NT0RVTEVTLCBWZk1vZHVsZSwgQWdlbnRBZGRyZXNzLCBSZWFkUGFyYW1zLCBCeVJldmlzaW9uLCBBZGRyZXNzYWJsZUlkZW50aWZpZXIgfSBmcm9tICcuLi90eXBlcy5qcydcbmltcG9ydCB7IGV4dHJhY3RFZGdlcywgbWFwWm9tZUZuIH0gZnJvbSAnLi4vY29ubmVjdGlvbi5qcydcblxuaW1wb3J0IHtcbiAgQWdlbnQsXG4gIEFnZW50Q29ubmVjdGlvbixcbiAgQWdyZWVtZW50LFxuICBBZ3JlZW1lbnRSZXNwb25zZSxcbiAgQ29tbWl0bWVudCxcbiAgQ29tbWl0bWVudENvbm5lY3Rpb24sXG4gIEVjb25vbWljRXZlbnQsXG4gIEVjb25vbWljRXZlbnRDb25uZWN0aW9uLFxufSBmcm9tICdAdmFsdWVmbG93cy92Zi1ncmFwaHFsJ1xuaW1wb3J0IHsgQ29tbWl0bWVudFNlYXJjaElucHV0LCBFY29ub21pY0V2ZW50U2VhcmNoSW5wdXQgfSBmcm9tICcuL3pvbWVTZWFyY2hJbnB1dFR5cGVzLmpzJ1xuaW1wb3J0IHsgQWdlbnRSZXNwb25zZSB9IGZyb20gJy4uL211dGF0aW9ucy9hZ2VudCdcblxuY29uc3QgZXh0cmFjdEFnZW50ID0gKGRhdGEpOiBBZ2VudCA9PiBkYXRhLmFnZW50XG5cbmV4cG9ydCBkZWZhdWx0IChlbmFibGVkVkZNb2R1bGVzOiBWZk1vZHVsZVtdID0gREVGQVVMVF9WRl9NT0RVTEVTLCBkbmFDb25maWc6IEROQUlkTWFwcGluZ3MsIGNvbmR1Y3RvclVyaTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGhhc0hpc3RvcnkgPSAtMSAhPT0gZW5hYmxlZFZGTW9kdWxlcy5pbmRleE9mKFZmTW9kdWxlLkhpc3RvcnkpXG4gIGNvbnN0IGhhc09ic2VydmF0aW9uID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5PYnNlcnZhdGlvbilcbiAgY29uc3QgaGFzQ29tbWl0bWVudCA9IC0xICE9PSBlbmFibGVkVkZNb2R1bGVzLmluZGV4T2YoVmZNb2R1bGUuQ29tbWl0bWVudClcbiAgY29uc3QgaGFzQWdlbnQgPSAtMSAhPT0gZW5hYmxlZFZGTW9kdWxlcy5pbmRleE9mKFZmTW9kdWxlLkFnZW50KVxuXG4gIGNvbnN0IHJlYWRSZXZpc2lvbiA9IG1hcFpvbWVGbjxCeVJldmlzaW9uLCBBZ3JlZW1lbnRSZXNwb25zZT4oZG5hQ29uZmlnLCBjb25kdWN0b3JVcmksICdhZ3JlZW1lbnQnLCAnYWdyZWVtZW50JywgJ2dldF9yZXZpc2lvbicpXG4gIGNvbnN0IHF1ZXJ5Q29tbWl0bWVudHMgPSBtYXBab21lRm48Q29tbWl0bWVudFNlYXJjaElucHV0LENvbW1pdG1lbnRDb25uZWN0aW9uPihkbmFDb25maWcsIGNvbmR1Y3RvclVyaSwgJ3BsYW5uaW5nJywgJ2NvbW1pdG1lbnRfaW5kZXgnLCAncXVlcnlfY29tbWl0bWVudHMnKVxuICBjb25zdCBxdWVyeUV2ZW50cyA9IG1hcFpvbWVGbjxFY29ub21pY0V2ZW50U2VhcmNoSW5wdXQsIEVjb25vbWljRXZlbnRDb25uZWN0aW9uPihkbmFDb25maWcsIGNvbmR1Y3RvclVyaSwgJ29ic2VydmF0aW9uJywgJ2Vjb25vbWljX2V2ZW50X2luZGV4JywgJ3F1ZXJ5X2Vjb25vbWljX2V2ZW50cycpXG4gIGNvbnN0IHJlYWRBZ2VudCA9IG1hcFpvbWVGbjxSZWFkUGFyYW1zLCBBZ2VudFJlc3BvbnNlPihkbmFDb25maWcsIGNvbmR1Y3RvclVyaSwgJ2FnZW50JywgJ2FnZW50JywgJ2dldF9hZ2VudCcpXG5cbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgKGhhc0NvbW1pdG1lbnQgPyB7XG4gICAgICBjb21taXRtZW50czogYXN5bmMgKHJlY29yZDogQWdyZWVtZW50KTogUHJvbWlzZTxDb21taXRtZW50W10+ID0+IHtcbiAgICAgICAgY29uc3QgY29tbWl0bWVudHMgPSBhd2FpdCBxdWVyeUNvbW1pdG1lbnRzKHsgcGFyYW1zOiB7IGNsYXVzZU9mOiByZWNvcmQuaWQgfSB9KVxuICAgICAgICByZXR1cm4gZXh0cmFjdEVkZ2VzKGNvbW1pdG1lbnRzKVxuICAgICAgfSxcbiAgICB9IDoge30pLFxuICAgIChoYXNPYnNlcnZhdGlvbiA/IHtcbiAgICAgIGVjb25vbWljRXZlbnRzOiBhc3luYyAocmVjb3JkOiBBZ3JlZW1lbnQpOiBQcm9taXNlPEVjb25vbWljRXZlbnRbXT4gPT4ge1xuICAgICAgICBjb25zdCBlY29ub21pY0V2ZW50cyA9IGF3YWl0IHF1ZXJ5RXZlbnRzKHsgcGFyYW1zOiB7IHJlYWxpemF0aW9uT2Y6IHJlY29yZC5pZCB9IH0pXG4gICAgICAgIHJldHVybiBleHRyYWN0RWRnZXMoZWNvbm9taWNFdmVudHMpXG4gICAgICB9LFxuICAgICAgdW5wbGFubmVkRWNvbm9taWNFdmVudHM6IGFzeW5jIChyZWNvcmQ6IEFncmVlbWVudCk6IFByb21pc2U8RWNvbm9taWNFdmVudFtdPiA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigncmVzb2x2ZXIgdW5pbXBsZW1lbnRlZCcpXG4gICAgICB9LFxuICAgIH0gOiB7fSksXG4gICAgKGhhc0FnZW50ID8ge1xuICAgICAgaW52b2x2ZWRBZ2VudHM6IGFzeW5jIChyZWNvcmQ6IHsgaW52b2x2ZWRBZ2VudHM6IEFnZW50QWRkcmVzc1tdIH0pOiBQcm9taXNlPEFnZW50W10+ID0+IHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCBQcm9taXNlLmFsbCgocmVjb3JkLmludm9sdmVkQWdlbnRzIHx8IFtdKS5tYXAoKGFkZHJlc3MpPT5yZWFkQWdlbnQoe2FkZHJlc3N9KSkpKS5tYXAoZXh0cmFjdEFnZW50KVxuICAgICAgfSxcbiAgICB9IDoge30pLFxuICAgIChoYXNIaXN0b3J5ID8ge1xuICAgICAgcmV2aXNpb246IGFzeW5jIChyZWNvcmQ6IEFncmVlbWVudCwgYXJnczogeyByZXZpc2lvbklkOiBBZGRyZXNzYWJsZUlkZW50aWZpZXIgfSk6IFByb21pc2U8QWdyZWVtZW50PiA9PiB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgcmVhZFJldmlzaW9uKGFyZ3MpKS5hZ3JlZW1lbnRcbiAgICAgIH0sXG4gICAgfSA6IHt9KSxcbiAgKVxufVxuIl19