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
+3 -1
View File
@@ -415,6 +415,7 @@ export const registerRoutes = async (
const folderService = secretFolderServiceFactory({ const folderService = secretFolderServiceFactory({
permissionService, permissionService,
folderDAL, folderDAL,
secretImportDAL,
folderVersionDAL, folderVersionDAL,
projectEnvDAL, projectEnvDAL,
snapshotService snapshotService
@@ -471,7 +472,8 @@ export const registerRoutes = async (
snapshotService, snapshotService,
secretQueueService, secretQueueService,
secretImportDAL, secretImportDAL,
projectBotService projectBotService,
projectEnvDAL
}); });
const sarService = secretApprovalRequestServiceFactory({ const sarService = secretApprovalRequestServiceFactory({
permissionService, permissionService,
@@ -200,14 +200,15 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) =>
}), }),
response: { response: {
200: z.object({ 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]), onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]),
handler: async (req) => { handler: async (req) => {
const path = req.query.path || req.query.directory; 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, actorId: req.permission.id,
actor: req.permission.type, actor: req.permission.type,
actorAuthMethod: req.permission.authMethod, actorAuthMethod: req.permission.authMethod,
@@ -216,7 +217,7 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) =>
projectId: req.query.workspaceId, projectId: req.query.workspaceId,
path path
}); });
return { folders }; return { folders, importedFolders };
} }
}); });
}; };
@@ -9,6 +9,7 @@ import { TSecretSnapshotServiceFactory } from "@app/ee/services/secret-snapshot/
import { BadRequestError } from "@app/lib/errors"; import { BadRequestError } from "@app/lib/errors";
import { TProjectEnvDALFactory } from "../project-env/project-env-dal"; import { TProjectEnvDALFactory } from "../project-env/project-env-dal";
import { TSecretImportDALFactory } from "../secret-import/secret-import-dal";
import { TSecretFolderDALFactory } from "./secret-folder-dal"; import { TSecretFolderDALFactory } from "./secret-folder-dal";
import { TCreateFolderDTO, TDeleteFolderDTO, TGetFolderDTO, TUpdateFolderDTO } from "./secret-folder-types"; import { TCreateFolderDTO, TDeleteFolderDTO, TGetFolderDTO, TUpdateFolderDTO } from "./secret-folder-types";
import { TSecretFolderVersionDALFactory } from "./secret-folder-version-dal"; import { TSecretFolderVersionDALFactory } from "./secret-folder-version-dal";
@@ -17,6 +18,7 @@ type TSecretFolderServiceFactoryDep = {
permissionService: Pick<TPermissionServiceFactory, "getProjectPermission">; permissionService: Pick<TPermissionServiceFactory, "getProjectPermission">;
snapshotService: Pick<TSecretSnapshotServiceFactory, "performSnapshot">; snapshotService: Pick<TSecretSnapshotServiceFactory, "performSnapshot">;
folderDAL: TSecretFolderDALFactory; folderDAL: TSecretFolderDALFactory;
secretImportDAL: TSecretImportDALFactory;
projectEnvDAL: Pick<TProjectEnvDALFactory, "findOne">; projectEnvDAL: Pick<TProjectEnvDALFactory, "findOne">;
folderVersionDAL: TSecretFolderVersionDALFactory; folderVersionDAL: TSecretFolderVersionDALFactory;
}; };
@@ -26,6 +28,7 @@ export type TSecretFolderServiceFactory = ReturnType<typeof secretFolderServiceF
export const secretFolderServiceFactory = ({ export const secretFolderServiceFactory = ({
folderDAL, folderDAL,
snapshotService, snapshotService,
secretImportDAL,
permissionService, permissionService,
projectEnvDAL, projectEnvDAL,
folderVersionDAL folderVersionDAL
@@ -229,10 +232,13 @@ export const secretFolderServiceFactory = ({
if (!env) throw new BadRequestError({ message: "Environment not found", name: "get folders" }); if (!env) throw new BadRequestError({ message: "Environment not found", name: "get folders" });
const parentFolder = await folderDAL.findBySecretPath(projectId, environment, secretPath); 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 }); 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 { return {