Isaiah Grey
04/21/2018, 2:58 AMnilan
04/21/2018, 1:12 PMIsaiah Grey
04/21/2018, 4:43 PMconst { id, values, read, write, name } = args;
const current = await ctx.db.query.field(
{ where: { id } },
"{ id read { type } write { type } }"
);
const connect = {
read: difference(read, current.read.map(r => r.type)).map(type => ({ type })),
write: difference(write, current.write.map(r => r.type)).map(type => ({ type }))
};
const disconnect = {
read: difference(current.read.map(r => r.type), read).map(type => ({ type })),
write: difference(current.write.map(r => r.type), write).map(type => ({ type }))
};
const field = await ctx.db.mutation.updateField({
where: {
id
},
data: {
name,
values: { set: values },
read: {
connect: connect.read,
disconnect: disconnect.read
},
write: {
connect: connect.write,
disconnect: disconnect.write
}
}
});
A little heavier than I’d like, but I understand that support for lots of nested mutation types are incoming in the future and this will work in the time being.