You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
srap/src/mutation-api/database.js

58 lines
1.3 KiB
JavaScript

"use strict";
const defaultValue = require("default-value");
module.exports = function (state) {
const queries = require("../queries")(state);
return function createDatabaseMutationAPI({ tx, item, taskVersion }) {
return {
createItem: function (options) {
console.log(`[new] ${options.id}`);
return queries.createItem(tx, {
...options,
parentID: item.id
});
},
renameItem: function (options) {
return queries.renameItem(tx, options);
},
mergeItem: function (options) {
return queries.mergeItem(tx, {
...options,
from: defaultValue(options.from, item.id)
});
},
deleteItem: function (options) {
return queries.deleteItem(tx, {
id: defaultValue(options.id, item.id)
});
},
createAlias: function (options) {
return queries.createAlias(tx, {
...options,
to: defaultValue(options.to, item.id)
});
},
deleteAlias: function (from) {
return queries.deleteAlias(tx, {
from: from
});
},
updateData: function (options) {
return queries.updateData(tx, options);
},
updateMetadata: function (options) {
return queries.updateMetadata(tx, {
... options,
taskVersion: taskVersion
});
},
expire: function (options) {
return queries.expire(tx, options);
}
};
};
};