@valueflows/vf-graphql-holochain
Version:
GraphQL schema bindings for the Holochain implementation of ValueFlows
30 lines • 4.24 kB
JavaScript
import { getPaginatedCollection, pluralize, formatResItem, } from "../util.js";
import { addEntryToStore, updateLatestRevision, getLatestRevisionId } from "../store.js";
export async function getOne(cell, type, args) {
if (!args.id) {
return null;
}
// retrieve cached revision unless economic resource
if (type != "economic_resource") {
const cachedRevision = getLatestRevisionId(args.id, 10);
if (cachedRevision) {
return cachedRevision;
}
}
// const cached
const res = await cell.callZome({
zome_name: "hrea",
fn_name: "get_latest_rea_" + type,
payload: args.id,
});
const formatted = formatResItem(res, args.id);
if (formatted?.revisionId) {
addEntryToStore(formatted.revisionId, formatted);
updateLatestRevision(formatted.id, formatted);
}
return formatted;
}
export async function getAll(cell, type, args) {
return await getPaginatedCollection(cell, "get_all_" + pluralize(type), "get_latest_rea_" + type, args);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyaWVzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxhQUFhLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV6RixNQUFNLENBQUMsS0FBSyxVQUFVLE1BQU0sQ0FBQyxJQUFTLEVBQUUsSUFBWSxFQUFFLElBQVM7SUFDM0QsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNYLE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxJQUFJLElBQUksSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQzlCLE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDdkQsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNqQixPQUFPLGNBQWMsQ0FBQTtRQUN6QixDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7SUFDZixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDNUIsU0FBUyxFQUFFLE1BQU07UUFDakIsT0FBTyxFQUFFLGlCQUFpQixHQUFHLElBQUk7UUFDakMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFO0tBQ25CLENBQUMsQ0FBQTtJQUNGLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzdDLElBQUksU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQ3hCLGVBQWUsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFBO1FBQ2hELG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDakQsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFBO0FBQ3BCLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLE1BQU0sQ0FBQyxJQUFTLEVBQUUsSUFBWSxFQUFFLElBQVM7SUFDM0QsT0FBTyxNQUFNLHNCQUFzQixDQUMvQixJQUFJLEVBQ0osVUFBVSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDNUIsaUJBQWlCLEdBQUcsSUFBSSxFQUN4QixJQUFJLENBQ1AsQ0FBQTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRQYWdpbmF0ZWRDb2xsZWN0aW9uLCBwbHVyYWxpemUsIGZvcm1hdFJlc0l0ZW0sIH0gZnJvbSBcIi4uL3V0aWwuanNcIjtcbmltcG9ydCB7IGFkZEVudHJ5VG9TdG9yZSwgdXBkYXRlTGF0ZXN0UmV2aXNpb24sIGdldExhdGVzdFJldmlzaW9uSWQgfSBmcm9tIFwiLi4vc3RvcmUuanNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldE9uZShjZWxsOiBhbnksIHR5cGU6IHN0cmluZywgYXJnczogYW55KSB7XG4gICAgaWYgKCFhcmdzLmlkKSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgLy8gcmV0cmlldmUgY2FjaGVkIHJldmlzaW9uIHVubGVzcyBlY29ub21pYyByZXNvdXJjZVxuICAgIGlmICh0eXBlICE9IFwiZWNvbm9taWNfcmVzb3VyY2VcIikge1xuICAgICAgICBjb25zdCBjYWNoZWRSZXZpc2lvbiA9IGdldExhdGVzdFJldmlzaW9uSWQoYXJncy5pZCwgMTApXG4gICAgICAgIGlmIChjYWNoZWRSZXZpc2lvbikge1xuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFJldmlzaW9uXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBjb25zdCBjYWNoZWRcbiAgICBjb25zdCByZXMgPSBhd2FpdCBjZWxsLmNhbGxab21lKHtcbiAgICAgICAgem9tZV9uYW1lOiBcImhyZWFcIixcbiAgICAgICAgZm5fbmFtZTogXCJnZXRfbGF0ZXN0X3JlYV9cIiArIHR5cGUsXG4gICAgICAgIHBheWxvYWQ6IGFyZ3MuaWQsXG4gICAgfSlcbiAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXRSZXNJdGVtKHJlcywgYXJncy5pZClcbiAgICBpZiAoZm9ybWF0dGVkPy5yZXZpc2lvbklkKSB7XG4gICAgICAgIGFkZEVudHJ5VG9TdG9yZShmb3JtYXR0ZWQucmV2aXNpb25JZCwgZm9ybWF0dGVkKVxuICAgICAgICB1cGRhdGVMYXRlc3RSZXZpc2lvbihmb3JtYXR0ZWQuaWQsIGZvcm1hdHRlZClcbiAgICB9XG4gICAgcmV0dXJuIGZvcm1hdHRlZFxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QWxsKGNlbGw6IGFueSwgdHlwZTogc3RyaW5nLCBhcmdzOiBhbnkpIHtcbiAgICByZXR1cm4gYXdhaXQgZ2V0UGFnaW5hdGVkQ29sbGVjdGlvbihcbiAgICAgICAgY2VsbCwgXG4gICAgICAgIFwiZ2V0X2FsbF9cIiArIHBsdXJhbGl6ZSh0eXBlKSwgXG4gICAgICAgIFwiZ2V0X2xhdGVzdF9yZWFfXCIgKyB0eXBlLFxuICAgICAgICBhcmdzXG4gICAgKVxufSJdfQ==