@valueflows/vf-graphql-holochain
Version:
GraphQL schema bindings for the Holochain implementation of ValueFlows
60 lines • 10.3 kB
JavaScript
import { camelToSnake, snakeToCamel, snakeToCamelString, reverseFormatDates, extractIds } from "../util.js";
import { decode } from "@msgpack/msgpack";
import { encodeHashToBase64 } from "@holochain/client";
import { addEntryToStore, updateLatestRevision } from '../store.js';
export async function createEntry(cell, entryType, payload) {
const camelCaseEntryType = snakeToCamelString(entryType);
// console.log('createEntry', entryType, camelCaseEntryType, reverseFormatDates(camelToSnake(payload[camelCaseEntryType])))
const result = await cell.callZome({
zome_name: 'hrea',
fn_name: 'create_rea_' + entryType,
payload: camelToSnake(reverseFormatDates(payload[camelCaseEntryType])),
});
const decoded = decode(result.entry.Present.entry);
const entry = {
[camelCaseEntryType]: {
...snakeToCamel(decoded),
id: encodeHashToBase64(result.signed_action.hashed.hash),
revisionId: encodeHashToBase64(result.signed_action.hashed.hash),
},
__typename: entryType.charAt(0).toUpperCase() + entryType.slice(1) + 'Response',
};
console.log('createEntry result', entryType, entry[camelCaseEntryType]);
addEntryToStore(entry[camelCaseEntryType].revisionId, entry[camelCaseEntryType]);
updateLatestRevision(entry[camelCaseEntryType].id, entry[camelCaseEntryType]);
return entry;
}
export async function updateEntry(cell, entryType, payload) {
const camelCaseEntryType = snakeToCamelString(entryType);
const updatePayload = extractIds(payload[camelCaseEntryType]);
const result = await cell.callZome({
zome_name: 'hrea',
fn_name: 'update_rea_' + entryType,
payload: camelToSnake(reverseFormatDates(updatePayload)),
});
const decoded = decode(result.entry.Present.entry);
const entry = {
[camelCaseEntryType]: {
...snakeToCamel(decoded),
revisionId: encodeHashToBase64(result.signed_action.hashed.hash),
// @ts-ignore
id: encodeHashToBase64(decoded?.id) || encodeHashToBase64(result.signed_action.hashed.hash),
},
__typename: entryType.charAt(0).toUpperCase() + entryType.slice(1) + 'Response',
};
addEntryToStore(entry[camelCaseEntryType].revisionId, entry[camelCaseEntryType]);
updateLatestRevision(entry[camelCaseEntryType].id, entry[camelCaseEntryType]);
return entry;
}
export async function deleteEntry(cell, typeName, args) {
const result = await cell.callZome({
zome_name: 'hrea',
fn_name: 'delete_rea_' + typeName,
payload: args.revisionId,
});
if (result === undefined) {
throw new Error('Failed to delete ' + typeName);
}
return true;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tdXRhdGlvbnMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDM0csT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEUsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBQUMsSUFBUyxFQUFFLFNBQWlCLEVBQUUsT0FBWTtJQUN4RSxNQUFNLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3hELDJIQUEySDtJQUMzSCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0IsU0FBUyxFQUFFLE1BQU07UUFDakIsT0FBTyxFQUFFLGFBQWEsR0FBRyxTQUFTO1FBQ2xDLE9BQU8sRUFBRSxZQUFZLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztLQUN6RSxDQUFDLENBQUE7SUFDRixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDbEQsTUFBTSxLQUFLLEdBQUc7UUFDVixDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDbEIsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDO1lBQ3hCLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDeEQsVUFBVSxFQUFFLGtCQUFrQixD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c0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBjYW1lbFRvU25ha2UsIHNuYWtlVG9DYW1lbCwgc25ha2VUb0NhbWVsU3RyaW5nLCByZXZlcnNlRm9ybWF0RGF0ZXMsIGV4dHJhY3RJZHMgfSBmcm9tIFwiLi4vdXRpbC5qc1wiXG5pbXBvcnQgeyBkZWNvZGUgfSBmcm9tIFwiQG1zZ3BhY2svbXNncGFja1wiXG5pbXBvcnQgeyBlbmNvZGVIYXNoVG9CYXNlNjQgfSBmcm9tIFwiQGhvbG9jaGFpbi9jbGllbnRcIlxuaW1wb3J0IHsgYWRkRW50cnlUb1N0b3JlLCB1cGRhdGVMYXRlc3RSZXZpc2lvbiB9IGZyb20gJy4uL3N0b3JlLmpzJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUVudHJ5KGNlbGw6IGFueSwgZW50cnlUeXBlOiBzdHJpbmcsIHBheWxvYWQ6IGFueSkge1xuICAgIGNvbnN0IGNhbWVsQ2FzZUVudHJ5VHlwZSA9IHNuYWtlVG9DYW1lbFN0cmluZyhlbnRyeVR5cGUpXG4gICAgLy8gY29uc29sZS5sb2coJ2NyZWF0ZUVudHJ5JywgZW50cnlUeXBlLCBjYW1lbENhc2VFbnRyeVR5cGUsIHJldmVyc2VGb3JtYXREYXRlcyhjYW1lbFRvU25ha2UocGF5bG9hZFtjYW1lbENhc2VFbnRyeVR5cGVdKSkpXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2VsbC5jYWxsWm9tZSh7XG4gICAgICAgIHpvbWVfbmFtZTogJ2hyZWEnLFxuICAgICAgICBmbl9uYW1lOiAnY3JlYXRlX3JlYV8nICsgZW50cnlUeXBlLFxuICAgICAgICBwYXlsb2FkOiBjYW1lbFRvU25ha2UocmV2ZXJzZUZvcm1hdERhdGVzKHBheWxvYWRbY2FtZWxDYXNlRW50cnlUeXBlXSkpLFxuICAgIH0pXG4gICAgY29uc3QgZGVjb2RlZCA9IGRlY29kZShyZXN1bHQuZW50cnkuUHJlc2VudC5lbnRyeSlcbiAgICBjb25zdCBlbnRyeSA9IHtcbiAgICAgICAgW2NhbWVsQ2FzZUVudHJ5VHlwZV06IHtcbiAgICAgICAgICAgIC4uLnNuYWtlVG9DYW1lbChkZWNvZGVkKSxcbiAgICAgICAgICAgIGlkOiBlbmNvZGVIYXNoVG9CYXNlNjQocmVzdWx0LnNpZ25lZF9hY3Rpb24uaGFzaGVkLmhhc2gpLFxuICAgICAgICAgICAgcmV2aXNpb25JZDogZW5jb2RlSGFzaFRvQmFzZTY0KHJlc3VsdC5zaWduZWRfYWN0aW9uLmhhc2hlZC5oYXNoKSxcbiAgICAgICAgfSxcbiAgICAgICAgX190eXBlbmFtZTogZW50cnlUeXBlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgZW50cnlUeXBlLnNsaWNlKDEpICsgJ1Jlc3BvbnNlJyxcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZygnY3JlYXRlRW50cnkgcmVzdWx0JywgZW50cnlUeXBlLCBlbnRyeVtjYW1lbENhc2VFbnRyeVR5cGVdKVxuICAgIFxuICAgIGFkZEVudHJ5VG9TdG9yZShlbnRyeVtjYW1lbENhc2VFbnRyeVR5cGVdLnJldmlzaW9uSWQsIGVudHJ5W2NhbWVsQ2FzZUVudHJ5VHlwZV0pXG4gICAgdXBkYXRlTGF0ZXN0UmV2aXNpb24oXG4gICAgICAgIGVudHJ5W2NhbWVsQ2FzZUVudHJ5VHlwZV0uaWQsXG4gICAgICAgIGVudHJ5W2NhbWVsQ2FzZUVudHJ5VHlwZV1cbiAgICApXG4gICAgcmV0dXJuIGVudHJ5XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGRhdGVFbnRyeShjZWxsOiBhbnksIGVudHJ5VHlwZTogc3RyaW5nLCBwYXlsb2FkOiBhbnkpIHtcbiAgICBjb25zdCBjYW1lbENhc2VFbnRyeVR5cGUgPSBzbmFrZVRvQ2FtZWxTdHJpbmcoZW50cnlUeXBlKVxuICAgIGNvbnN0IHVwZGF0ZVBheWxvYWQgPSBleHRyYWN0SWRzKHBheWxvYWRbY2FtZWxDYXNlRW50cnlUeXBlXSlcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjZWxsLmNhbGxab21lKHtcbiAgICAgICAgem9tZV9uYW1lOiAnaHJlYScsXG4gICAgICAgIGZuX25hbWU6ICd1cGRhdGVfcmVhXycgKyBlbnRyeVR5cGUsXG4gICAgICAgIHBheWxvYWQ6IGNhbWVsVG9TbmFrZShyZXZlcnNlRm9ybWF0RGF0ZXModXBkYXRlUGF5bG9hZCkpLFxuICAgIH0pXG4gICAgY29uc3QgZGVjb2RlZCA9IGRlY29kZShyZXN1bHQuZW50cnkuUHJlc2VudC5lbnRyeSlcbiAgICBjb25zdCBlbnRyeSA9IHtcbiAgICAgICAgW2NhbWVsQ2FzZUVudHJ5VHlwZV06IHtcbiAgICAgICAgICAgIC4uLnNuYWtlVG9DYW1lbChkZWNvZGVkKSxcbiAgICAgICAgICAgIHJldmlzaW9uSWQ6IGVuY29kZUhhc2hUb0Jhc2U2NChyZXN1bHQuc2lnbmVkX2FjdGlvbi5oYXNoZWQuaGFzaCksXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBpZDogZW5jb2RlSGFzaFRvQmFzZTY0KGRlY29kZWQ/LmlkKSB8fCBlbmNvZGVIYXNoVG9CYXNlNjQocmVzdWx0LnNpZ25lZF9hY3Rpb24uaGFzaGVkLmhhc2gpLFxuICAgICAgICB9LFxuICAgICAgICBfX3R5cGVuYW1lOiBlbnRyeVR5cGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBlbnRyeVR5cGUuc2xpY2UoMSkgKyAnUmVzcG9uc2UnLFxuICAgIH1cbiAgICBhZGRFbnRyeVRvU3RvcmUoZW50cnlbY2FtZWxDYXNlRW50cnlUeXBlXS5yZXZpc2lvbklkLCBlbnRyeVtjYW1lbENhc2VFbnRyeVR5cGVdKVxuICAgIHVwZGF0ZUxhdGVzdFJldmlzaW9uKFxuICAgICAgICBlbnRyeVtjYW1lbENhc2VFbnRyeVR5cGVdLmlkLFxuICAgICAgICBlbnRyeVtjYW1lbENhc2VFbnRyeVR5cGVdXG4gICAgKVxuICAgIHJldHVybiBlbnRyeVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlRW50cnkoY2VsbDogYW55LCB0eXBlTmFtZTogc3RyaW5nLCBhcmdzOiBhbnkpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjZWxsLmNhbGxab21lKHtcbiAgICAgICAgem9tZV9uYW1lOiAnaHJlYScsXG4gICAgICAgIGZuX25hbWU6ICdkZWxldGVfcmVhXycgKyB0eXBlTmFtZSxcbiAgICAgICAgcGF5bG9hZDogYXJncy5yZXZpc2lvbklkLFxuICAgIH0pO1xuICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBkZWxldGUgJyArIHR5cGVOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59Il19