@valueflows/vf-graphql-holochain
Version:
GraphQL schema bindings for the Holochain implementation of ValueFlows
33 lines • 7.08 kB
JavaScript
/**
* Resolvers for Fulfillment fields
*
* @package: HoloREA
* @since: 2019-08-27
*/
import { injectTypename, DEFAULT_VF_MODULES, VfModule } from '../types.js';
import { mapZomeFn, remapCellId } from '../connection.js';
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 readRevision = mapZomeFn(dnaConfig, conductorUri, 'planning', 'fulfillment', 'get_revision');
const readEvents = mapZomeFn(dnaConfig, conductorUri, 'observation', 'economic_event_index', 'query_economic_events');
const readCommitments = mapZomeFn(dnaConfig, conductorUri, 'planning', 'commitment_index', 'query_commitments');
return Object.assign((hasCommitment ? {
fulfills: injectTypename('Commitment', async (record) => {
const results = await readCommitments({ params: { fulfilledBy: record.id } });
return results.edges.pop()['node'];
}),
} : {}), (hasObservation ? {
fulfilledBy: injectTypename('EconomicEvent', async (record) => {
const associatedId = remapCellId(record.id, record.fulfilledBy);
const results = await readEvents({ params: { fulfills: associatedId } });
return results.edges.pop()['node'];
}),
} : {}), (hasHistory ? {
revision: async (record, args) => {
return (await readRevision(args)).fulfillment;
},
} : {}));
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsZmlsbG1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9yZXNvbHZlcnMvZnVsZmlsbG1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQWlCLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQTJELE1BQU0sYUFBYSxDQUFBO0FBQ2xKLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFZekQsZUFBZSxDQUFDLG1CQUErQixrQkFBa0IsRUFBRSxTQUF3QixFQUFFLFlBQW9CLEVBQUUsRUFBRTtJQUNuSCxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3BFLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQyxLQUFLLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDNUUsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUUxRSxNQUFNLFlBQVksR0FBRyxTQUFTLENBQWtDLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUNuSSxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQW9ELFNBQVMsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixDQUFDLENBQUE7SUFDeEssTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUE4QyxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFBO0lBRTVKLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FDbEIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ2YsUUFBUSxFQUFFLGNBQWMsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQW1CLEVBQXVCLEVBQUU7WUFDeEYsTUFBTSxPQUFPLEdBQUcsTUFBTSxlQUFlLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtZQUM3RSxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDckMsQ0FBQyxDQUFDO0tBQ0gsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQ1AsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLFdBQVcsRUFBRSxjQUFjLENBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxNQUFtQixFQUEwQixFQUFFO1lBQ2pHLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUMvRCxNQUFNLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDeEUsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3JDLENBQUMsQ0FBQztLQUNILENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUNQLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNaLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBbUIsRUFBRSxJQUEyQyxFQUF3QixFQUFFO1lBQ3pHLE9BQU8sQ0FBQyxNQUFNLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQTtRQUMvQyxDQUFDO0tBQ0YsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQ1IsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzb2x2ZXJzIGZvciBGdWxmaWxsbWVudCBmaWVsZHNcbiAqXG4gKiBAcGFja2FnZTogSG9sb1JFQVxuICogQHNpbmNlOiAgIDIwMTktMDgtMjdcbiAqL1xuXG5pbXBvcnQgeyBETkFJZE1hcHBpbmdzLCBpbmplY3RUeXBlbmFtZSwgREVGQVVMVF9WRl9NT0RVTEVTLCBWZk1vZHVsZSwgRWNvbm9taWNFdmVudEFkZHJlc3MsIEJ5UmV2aXNpb24sIEFkZHJlc3NhYmxlSWRlbnRpZmllciB9IGZyb20gJy4uL3R5cGVzLmpzJ1xuaW1wb3J0IHsgbWFwWm9tZUZuLCByZW1hcENlbGxJZCB9IGZyb20gJy4uL2Nvbm5lY3Rpb24uanMnXG5cbmltcG9ydCB7XG4gIEZ1bGZpbGxtZW50LFxuICBGdWxmaWxsbWVudFJlc3BvbnNlLFxuICBFY29ub21pY0V2ZW50LFxuICBDb21taXRtZW50LFxuICBFY29ub21pY0V2ZW50Q29ubmVjdGlvbixcbiAgQ29tbWl0bWVudENvbm5lY3Rpb24sXG59IGZyb20gJ0B2YWx1ZWZsb3dzL3ZmLWdyYXBocWwnXG5pbXBvcnQgeyBDb21taXRtZW50U2VhcmNoSW5wdXQsIEVjb25vbWljRXZlbnRTZWFyY2hJbnB1dCB9IGZyb20gJy4vem9tZVNlYXJjaElucHV0VHlwZXMuanMnXG5cbmV4cG9ydCBkZWZhdWx0IChlbmFibGVkVkZNb2R1bGVzOiBWZk1vZHVsZVtdID0gREVGQVVMVF9WRl9NT0RVTEVTLCBkbmFDb25maWc6IEROQUlkTWFwcGluZ3MsIGNvbmR1Y3RvclVyaTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGhhc0hpc3RvcnkgPSAtMSAhPT0gZW5hYmxlZFZGTW9kdWxlcy5pbmRleE9mKFZmTW9kdWxlLkhpc3RvcnkpXG4gIGNvbnN0IGhhc09ic2VydmF0aW9uID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5PYnNlcnZhdGlvbilcbiAgY29uc3QgaGFzQ29tbWl0bWVudCA9IC0xICE9PSBlbmFibGVkVkZNb2R1bGVzLmluZGV4T2YoVmZNb2R1bGUuQ29tbWl0bWVudClcblxuICBjb25zdCByZWFkUmV2aXNpb24gPSBtYXBab21lRm48QnlSZXZpc2lvbiwgRnVsZmlsbG1lbnRSZXNwb25zZT4oZG5hQ29uZmlnLCBjb25kdWN0b3JVcmksICdwbGFubmluZycsICdmdWxmaWxsbWVudCcsICdnZXRfcmV2aXNpb24nKVxuICBjb25zdCByZWFkRXZlbnRzID0gbWFwWm9tZUZuPEVjb25vbWljRXZlbnRTZWFyY2hJbnB1dCwgRWNvbm9taWNFdmVudENvbm5lY3Rpb24+KGRuYUNvbmZpZywgY29uZHVjdG9yVXJpLCAnb2JzZXJ2YXRpb24nLCAnZWNvbm9taWNfZXZlbnRfaW5kZXgnLCAncXVlcnlfZWNvbm9taWNfZXZlbnRzJylcbiAgY29uc3QgcmVhZENvbW1pdG1lbnRzID0gbWFwWm9tZUZuPENvbW1pdG1lbnRTZWFyY2hJbnB1dCwgQ29tbWl0bWVudENvbm5lY3Rpb24+KGRuYUNvbmZpZywgY29uZHVjdG9yVXJpLCAncGxhbm5pbmcnLCAnY29tbWl0bWVudF9pbmRleCcsICdxdWVyeV9jb21taXRtZW50cycpXG5cbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgKGhhc0NvbW1pdG1lbnQgPyB7XG4gICAgICBmdWxmaWxsczogaW5qZWN0VHlwZW5hbWUoJ0NvbW1pdG1lbnQnLCBhc3luYyAocmVjb3JkOiBGdWxmaWxsbWVudCk6IFByb21pc2U8Q29tbWl0bWVudD4gPT4ge1xuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgcmVhZENvbW1pdG1lbnRzKHsgcGFyYW1zOiB7IGZ1bGZpbGxlZEJ5OiByZWNvcmQuaWQgfSB9KVxuICAgICAgICByZXR1cm4gcmVzdWx0cy5lZGdlcy5wb3AoKSFbJ25vZGUnXVxuICAgICAgfSksXG4gICAgfSA6IHt9KSxcbiAgICAoaGFzT2JzZXJ2YXRpb24gPyB7XG4gICAgICBmdWxmaWxsZWRCeTogaW5qZWN0VHlwZW5hbWUoJ0Vjb25vbWljRXZlbnQnLCBhc3luYyAocmVjb3JkOiBGdWxmaWxsbWVudCk6IFByb21pc2U8RWNvbm9taWNFdmVudD4gPT4ge1xuICAgICAgICBjb25zdCBhc3NvY2lhdGVkSWQgPSByZW1hcENlbGxJZChyZWNvcmQuaWQsIHJlY29yZC5mdWxmaWxsZWRCeSlcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHJlYWRFdmVudHMoeyBwYXJhbXM6IHsgZnVsZmlsbHM6IGFzc29jaWF0ZWRJZCB9IH0pXG4gICAgICAgIHJldHVybiByZXN1bHRzLmVkZ2VzLnBvcCgpIVsnbm9kZSddXG4gICAgICB9KSxcbiAgICB9IDoge30pLFxuICAgIChoYXNIaXN0b3J5ID8ge1xuICAgICAgcmV2aXNpb246IGFzeW5jIChyZWNvcmQ6IEZ1bGZpbGxtZW50LCBhcmdzOiB7IHJldmlzaW9uSWQ6IEFkZHJlc3NhYmxlSWRlbnRpZmllciB9KTogUHJvbWlzZTxGdWxmaWxsbWVudD4gPT4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHJlYWRSZXZpc2lvbihhcmdzKSkuZnVsZmlsbG1lbnRcbiAgICAgIH0sXG4gICAgfSA6IHt9KSxcbiAgKVxufVxuIl19