IO-2049 Document delete&move on server side
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
const path = require("path");
|
||||
const _ = require("lodash");
|
||||
const logger = require("../utils/logger");
|
||||
const client = require("../graphql-client/graphql-client").client;
|
||||
const queries = require("../graphql-client/queries");
|
||||
|
||||
require("dotenv").config({
|
||||
path: path.resolve(
|
||||
@@ -69,11 +71,38 @@ exports.deleteFiles = async (req, res) => {
|
||||
);
|
||||
}
|
||||
|
||||
res.send(returns);
|
||||
// Delete it on apollo.
|
||||
const successfulDeletes = [];
|
||||
returns.forEach((resType) => {
|
||||
Object.keys(resType.deleted).forEach((key) => {
|
||||
if (
|
||||
resType.deleted[key] === "deleted" ||
|
||||
resType.deleted[key] === "not_found"
|
||||
) {
|
||||
successfulDeletes.push(key.replace(/\.[^/.]+$/, ""));
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
try {
|
||||
const result = await client.request(queries.DELETE_MEDIA_DOCUMENTS, {
|
||||
ids: ids
|
||||
.filter((i) => successfulDeletes.includes(i.key))
|
||||
.map((i) => i.id),
|
||||
});
|
||||
|
||||
res.send({ returns, result });
|
||||
} catch (error) {
|
||||
logger.log("media-delete-error", "ERROR", req.user.email, null, [
|
||||
{ ids, error: error.message || JSON.stringify(error) },
|
||||
]);
|
||||
|
||||
res.json({ error });
|
||||
}
|
||||
};
|
||||
|
||||
exports.renameKeys = async (req, res) => {
|
||||
const { documents } = req.body;
|
||||
const { documents, tojobid } = req.body;
|
||||
logger.log("media-bulk-rename", "DEBUG", req.user.email, null, documents);
|
||||
|
||||
const proms = [];
|
||||
@@ -98,8 +127,37 @@ exports.renameKeys = async (req, res) => {
|
||||
let result;
|
||||
|
||||
result = await Promise.all(proms);
|
||||
const errors = [];
|
||||
result
|
||||
.filter((d) => d.error)
|
||||
.forEach((d) => {
|
||||
errors.push(d);
|
||||
});
|
||||
|
||||
res.send(result);
|
||||
let mutations = "";
|
||||
|
||||
result
|
||||
.filter((d) => !d.error)
|
||||
.forEach((d, idx) => {
|
||||
//Create mutation text
|
||||
|
||||
mutations =
|
||||
mutations +
|
||||
`
|
||||
update_doc${idx}:update_documents_by_pk(pk_columns: { id: "${d.id}" }, _set: {key: "${d.public_id}", jobid: "${tojobid}"}){
|
||||
id
|
||||
}
|
||||
`;
|
||||
});
|
||||
|
||||
if (mutations !== "") {
|
||||
const mutationResult = await client.request(`mutation {
|
||||
${mutations}
|
||||
}`);
|
||||
res.json({ errors, mutationResult });
|
||||
} else {
|
||||
res.json({ errors: "No images were succesfully moved on remote server. " });
|
||||
}
|
||||
};
|
||||
|
||||
//Also needs to be updated in upload utility and mobile app.
|
||||
|
||||
Reference in New Issue
Block a user