added saving tags to the file itself

This commit is contained in:
Martina 2021-10-02 14:38:54 -07:00
parent 467a8304af
commit a194fe4046
6 changed files with 60 additions and 4 deletions

View File

@ -30,6 +30,7 @@ import deleteFilesByUserId from "~/node_common/data/methods/delete-files-by-user
import updateFileById from "~/node_common/data/methods/update-file-by-id";
import incrementFileSavecount from "~/node_common/data/methods/increment-file-savecount";
import recalcFilePrivacy from "~/node_common/data/methods/recalc-file-privacy";
import updateFileTags from "~/node_common/data/methods/update-file-tags";
//NOTE(martina):
// Slate file postgres queries
@ -129,6 +130,7 @@ export {
updateFileById,
incrementFileSavecount,
recalcFilePrivacy,
updateFileTags,
// NOTE(martina): Slate file operations
createSlateFiles,
deleteSlateFiles,

View File

@ -45,6 +45,10 @@ export default async ({ owner, slate, files }) => {
const activityQuery = await DB.insert(activityItems).into("activity");
}
for (let file of files) {
await Data.updateFileTags({ fileId: file.id });
}
await Data.recalcSlateFilecount({ slateId: slate.id });
if (!query) {

View File

@ -8,7 +8,11 @@ export default async ({ id }) => {
queryFn: async (DB) => {
const subscriptions = await DB("subscriptions").where({ slateId: id }).del();
const slateFiles = await DB("slate_files").where({ slateId: id }).del();
const slateFiles = await DB("slate_files").where({ slateId: id }).del().returning("*");
for (let slateFile of slateFiles) {
await Data.updateFileTags({ fileId: slateFile.fileId });
}
const activity = await DB("activity").where({ slateId: id }).del();

View File

@ -12,6 +12,10 @@ export default async ({ slateId, ids }) => {
.del()
.returning("*");
for (let id of ids) {
await Data.updateFileTags({ fileId: id });
}
const activityQuery = await DB("activity")
.where({ slateId, type: "CREATE_SLATE_OBJECT" })
.whereIn("fileId", ids)

View File

@ -0,0 +1,33 @@
import * as Serializers from "~/node_common/serializers";
import { runQuery } from "~/node_common/data/utilities";
export default async ({ fileId }) => {
return await runQuery({
label: "UPDATE_FILE_TAGS",
queryFn: async (DB) => {
let tags = await DB.select("id", "slatename", "name")
.from("slates")
.whereExists(function () {
this.select("id")
.from("slate_files")
.whereRaw('"slate_files"."slateId" = "slates"."id"')
.where({ "slate_files.fileId": fileId });
});
const response = await DB("files")
.where({ id: fileId })
.update({ tags: JSON.stringify(tags) })
.returning("*");
const index = response ? response.pop() : null;
return JSON.parse(JSON.stringify(index));
},
errorFn: async (e) => {
return {
error: true,
decorator: "UPDATE_FILE_TAGS",
};
},
});
};

View File

@ -287,10 +287,19 @@ const migrateFileTable = async () => {
// console.log({ newCoverImage });
}
let tags = await DB.select("slates.id", "slates.slatename", "slates.name")
// let tags = await DB.select("slates.id", "slates.slatename", "slates.name")
// .from("slates")
// .join("slate_files", "slate_files.slateId", "=", "slates.id")
// .where("slate_files.fileId", file.id);
let tags = await DB.select("id", "slatename", "name")
.from("slates")
.join("slate_files", "slate_files.slateId", "=", "slates.id")
.where("slate_files.fileId", file.id);
.whereExists(function () {
this.select("id")
.from("slate_files")
.whereRaw('"slate_files"."slateId" = "slates"."id"')
.where({ "slate_files.fileId": fileId });
});
if (tags?.length) {
newFile.tags = JSON.stringify(tags);