diff --git a/src/controller/meta.ts b/src/controller/meta.ts index 4ab39d2..26100e0 100644 --- a/src/controller/meta.ts +++ b/src/controller/meta.ts @@ -11,6 +11,18 @@ export const isValidMetaType = (type: string, value: string) => { return false; } +export const convertIdsToMetaData = async (projectId: string, publicAccess: boolean, meta: { [key: string]: string }) => { + const metaItems = await MetaData.find({ projectId: encryptClearField(projectId), + ...(publicAccess && { public: true }), _id: { $in: Object.keys(meta) } }); + + let result: { [key: string]: string } = {}; + metaItems.forEach(metaItem => { + result[metaItem.name] = Object.keys(meta).includes(metaItem.id) ? meta[metaItem.id] : (metaItem.defaultValue || ""); + }); + + return result; +} + export const listMetaData = async (userId: string, projectId: string) => { const access = await checkProjectAccess(IKeyRole.VIEW)(userId, projectId); if ("code" in access) return access;