diff --git a/backend/src/routes/v2/secret.ts b/backend/src/routes/v2/secret.ts index 65a926783..5691dda49 100644 --- a/backend/src/routes/v2/secret.ts +++ b/backend/src/routes/v2/secret.ts @@ -4,7 +4,7 @@ import { ISecret, Secret } from '../../models'; import { body, param, query, check } from 'express-validator'; import { BadRequestError, InternalServerError, UnauthorizedRequestError, ValidationError as RouteValidationError } from '../../utils/errors'; import { ADMIN, MEMBER, COMPLETED, GRANTED } from '../../variables'; -import { SanitizedSecretModify, SecretUserInput, SanitizedSecretForCreate } from '../../types/secret/types'; +import { SanitizedSecretModify, CreateSecretRequestBody, SanitizedSecretForCreate, ModifySecretRequestBody } from '../../types/secret/types'; import to from 'await-to-js'; import mongoose, { Types } from 'mongoose'; import { AnyBulkWriteOperation } from 'mongodb'; @@ -27,7 +27,7 @@ router.post( body('secrets').exists().isArray().custom((value) => value.every((item: ISecret) => typeof item === 'object')), validateRequest, async (req: Request, res: Response) => { - const secretsToCreate: SecretUserInput[] = req.body.secrets; + const secretsToCreate: CreateSecretRequestBody[] = req.body.secrets; const { workspaceId, environmentName } = req.params const sanitizedSecretesToCreate: SanitizedSecretForCreate[] = [] @@ -144,7 +144,7 @@ router.patch( }), validateRequest, async (req: Request, res: Response) => { const { workspaceId, environmentName } = req.params - const secretsModificationsRequested: SecretUserInput[] = req.body.secrets; + const secretsModificationsRequested: ModifySecretRequestBody[] = req.body.secrets; const [secretIdsUserCanModifyError, secretIdsUserCanModify] = await to(Secret.find({ workspace: workspaceId, environment: environmentName }, { _id: 1 }).then()) if (secretIdsUserCanModifyError) { diff --git a/backend/src/types/secret/types.ts b/backend/src/types/secret/types.ts index a773d778c..177df8c0f 100644 --- a/backend/src/types/secret/types.ts +++ b/backend/src/types/secret/types.ts @@ -1,11 +1,14 @@ -import { Omit } from 'utility-types'; +import { Assign, Omit } from 'utility-types'; import { ISecret } from '../../models'; -// User input for CRUD operations on secrets routes -export type SecretUserInput = Omit; +// Everything is required, except the omitted types +export type CreateSecretRequestBody = Omit; + +// Omit the listed properties, then make everything optional and then make _id required +export type ModifySecretRequestBody = Assign>, { _id: string }>; // Used for modeling sanitized secrets before uplaod. To be used for converting user input for uploading export type SanitizedSecretModify = Partial>; -// Used for modeling sanitized secrets before create. To be used for converting user input for creating new secrets +// Everything is required, except the omitted types export type SanitizedSecretForCreate = Omit;