2022-04-06 11:36:13 +02:00
|
|
|
'use strict';
|
|
|
|
|
2022-05-13 16:10:18 +02:00
|
|
|
const { FOLDER_MODEL_UID, FILE_MODEL_UID } = require('../constants');
|
2022-04-26 11:23:07 +02:00
|
|
|
|
2022-05-13 16:10:18 +02:00
|
|
|
const { getService } = require('../utils');
|
2022-04-06 11:36:13 +02:00
|
|
|
|
2022-08-08 23:33:39 +02:00
|
|
|
const getFolderPath = async (folderId) => {
|
2022-04-06 11:36:13 +02:00
|
|
|
if (!folderId) return '/';
|
|
|
|
|
2022-05-13 16:10:18 +02:00
|
|
|
const parentFolder = await strapi.entityService.findOne(FOLDER_MODEL_UID, folderId);
|
2022-04-06 11:36:13 +02:00
|
|
|
|
2022-04-12 16:32:05 +02:00
|
|
|
return parentFolder.path;
|
2022-04-06 11:36:13 +02:00
|
|
|
};
|
|
|
|
|
2022-04-26 11:23:07 +02:00
|
|
|
const deleteByIds = async (ids = []) => {
|
2022-05-13 16:10:18 +02:00
|
|
|
const filesToDelete = await strapi.db
|
|
|
|
.query(FILE_MODEL_UID)
|
|
|
|
.findMany({ where: { id: { $in: ids } } });
|
2022-04-26 11:23:07 +02:00
|
|
|
|
2022-08-08 23:33:39 +02:00
|
|
|
await Promise.all(filesToDelete.map((file) => getService('upload').remove(file)));
|
2022-04-26 11:23:07 +02:00
|
|
|
|
|
|
|
return filesToDelete;
|
|
|
|
};
|
|
|
|
|
2022-04-06 11:36:13 +02:00
|
|
|
module.exports = {
|
2022-04-12 16:32:05 +02:00
|
|
|
getFolderPath,
|
2022-04-26 11:23:07 +02:00
|
|
|
deleteByIds,
|
2022-04-06 11:36:13 +02:00
|
|
|
};
|