Feat: Visualize imported folders in overview page (include imported folders in response)

This commit is contained in:
Daniel Hougaard
2024-03-20 12:56:11 +01:00
parent 88e609cb66
commit 348fdf6429
3 changed files with 15 additions and 6 deletions

View File

@ -415,6 +415,7 @@ export const registerRoutes = async (
const folderService = secretFolderServiceFactory({
permissionService,
folderDAL,
secretImportDAL,
folderVersionDAL,
projectEnvDAL,
snapshotService
@ -471,7 +472,8 @@ export const registerRoutes = async (
snapshotService,
secretQueueService,
secretImportDAL,
projectBotService
projectBotService,
projectEnvDAL
});
const sarService = secretApprovalRequestServiceFactory({
permissionService,

View File

@ -200,14 +200,15 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) =>
}),
response: {
200: z.object({
folders: SecretFoldersSchema.array()
folders: SecretFoldersSchema.array(),
importedFolders: z.any().array()
})
}
},
onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]),
handler: async (req) => {
const path = req.query.path || req.query.directory;
const folders = await server.services.folder.getFolders({
const { folders, importedFolders } = await server.services.folder.getFolders({
actorId: req.permission.id,
actor: req.permission.type,
actorAuthMethod: req.permission.authMethod,
@ -216,7 +217,7 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) =>
projectId: req.query.workspaceId,
path
});
return { folders };
return { folders, importedFolders };
}
});
};

View File

@ -9,6 +9,7 @@ import { TSecretSnapshotServiceFactory } from "@app/ee/services/secret-snapshot/
import { BadRequestError } from "@app/lib/errors";
import { TProjectEnvDALFactory } from "../project-env/project-env-dal";
import { TSecretImportDALFactory } from "../secret-import/secret-import-dal";
import { TSecretFolderDALFactory } from "./secret-folder-dal";
import { TCreateFolderDTO, TDeleteFolderDTO, TGetFolderDTO, TUpdateFolderDTO } from "./secret-folder-types";
import { TSecretFolderVersionDALFactory } from "./secret-folder-version-dal";
@ -17,6 +18,7 @@ type TSecretFolderServiceFactoryDep = {
permissionService: Pick<TPermissionServiceFactory, "getProjectPermission">;
snapshotService: Pick<TSecretSnapshotServiceFactory, "performSnapshot">;
folderDAL: TSecretFolderDALFactory;
secretImportDAL: TSecretImportDALFactory;
projectEnvDAL: Pick<TProjectEnvDALFactory, "findOne">;
folderVersionDAL: TSecretFolderVersionDALFactory;
};
@ -26,6 +28,7 @@ export type TSecretFolderServiceFactory = ReturnType<typeof secretFolderServiceF
export const secretFolderServiceFactory = ({
folderDAL,
snapshotService,
secretImportDAL,
permissionService,
projectEnvDAL,
folderVersionDAL
@ -229,10 +232,13 @@ export const secretFolderServiceFactory = ({
if (!env) throw new BadRequestError({ message: "Environment not found", name: "get folders" });
const parentFolder = await folderDAL.findBySecretPath(projectId, environment, secretPath);
if (!parentFolder) return [];
if (!parentFolder) return { folders: [], importedFolders: [] };
const folders = await folderDAL.find({ envId: env.id, parentId: parentFolder.id });
return folders;
const importedFolders = await secretImportDAL.find({ folderId: parentFolder.id });
return { folders, importedFolders };
};
return {