diff --git a/package-lock.json b/package-lock.json index 1cff958..241684f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18683,7 +18683,7 @@ }, "packages/validation": { "name": "@user-office-software/duo-validation", - "version": "5.1.10", + "version": "5.1.12", "license": "ISC", "dependencies": { "luxon": "^2.5.0", diff --git a/packages/validation/package.json b/packages/validation/package.json index 7efc215..75cd345 100644 --- a/packages/validation/package.json +++ b/packages/validation/package.json @@ -1,6 +1,6 @@ { "name": "@user-office-software/duo-validation", - "version": "5.1.11", + "version": "5.1.12", "description": "Duo frontend and backend validation in one place.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -42,4 +42,4 @@ "npm": ">=8.5.0", "node": ">=16.14.0" } -} +} \ No newline at end of file diff --git a/packages/validation/src/Invite/index.ts b/packages/validation/src/Invite/index.ts index d06ecd2..2da7163 100644 --- a/packages/validation/src/Invite/index.ts +++ b/packages/validation/src/Invite/index.ts @@ -19,5 +19,3 @@ export const updateInviteValidationSchema = Yup.object().shape({ coProposerProposalPk: Yup.number().optional(), }), }); - - diff --git a/packages/validation/src/ProposalStatuses/index.ts b/packages/validation/src/Statuses/index.ts similarity index 76% rename from packages/validation/src/ProposalStatuses/index.ts rename to packages/validation/src/Statuses/index.ts index 5726660..78c4a93 100644 --- a/packages/validation/src/ProposalStatuses/index.ts +++ b/packages/validation/src/Statuses/index.ts @@ -1,6 +1,6 @@ import * as Yup from 'yup'; -export const createProposalStatusValidationSchema = Yup.object() +export const createStatusValidationSchema = Yup.object() .shape({ shortCode: Yup.string() .max(50) @@ -14,10 +14,11 @@ export const createProposalStatusValidationSchema = Yup.object() .required(), name: Yup.string().max(100).required(), description: Yup.string().max(200).required(), + entityType: Yup.string().oneOf(['proposal', 'experiment']).required(), }) .strict(true); -export const updateProposalStatusValidationSchema = Yup.object() +export const updateStatusValidationSchema = Yup.object() .shape({ id: Yup.number().required(), shortCode: Yup.string() @@ -35,6 +36,6 @@ export const updateProposalStatusValidationSchema = Yup.object() }) .strict(true); -export const deleteProposalStatusValidationSchema = Yup.object().shape({ +export const deleteStatusValidationSchema = Yup.object().shape({ id: Yup.number().required(), }); diff --git a/packages/validation/src/ProposalWorkflow/index.ts b/packages/validation/src/Workflow/index.ts similarity index 74% rename from packages/validation/src/ProposalWorkflow/index.ts rename to packages/validation/src/Workflow/index.ts index 1e01fa9..e9a6bf6 100644 --- a/packages/validation/src/ProposalWorkflow/index.ts +++ b/packages/validation/src/Workflow/index.ts @@ -1,50 +1,51 @@ import * as Yup from 'yup'; -export const createProposalWorkflowValidationSchema = Yup.object().shape({ +export const createWorkflowValidationSchema = Yup.object().shape({ name: Yup.string().max(50).required(), description: Yup.string().max(200).required(), + entityType: Yup.string().oneOf(['proposal', 'experiment']).required(), }); -export const updateProposalWorkflowValidationSchema = Yup.object().shape({ +export const updateWorkflowValidationSchema = Yup.object().shape({ id: Yup.number().required(), name: Yup.string().max(50).required(), description: Yup.string().max(200).required(), }); -export const deleteProposalWorkflowValidationSchema = Yup.object().shape({ +export const deleteWorkflowValidationSchema = Yup.object().shape({ id: Yup.number().required(), }); -export const addProposalWorkflowStatusValidationSchema = Yup.object().shape({ - proposalWorkflowId: Yup.number().required(), +export const addWorkflowStatusValidationSchema = Yup.object().shape({ + workflowId: Yup.number().required(), sortOrder: Yup.number().required(), droppableGroupId: Yup.string().required(), parentDroppableGroupId: Yup.string().nullable().notRequired(), - proposalStatusId: Yup.number().required(), - nextProposalStatusId: Yup.number().nullable().notRequired(), - prevProposalStatusId: Yup.number().nullable().notRequired(), + statusId: Yup.number().required(), + nextStatusId: Yup.number().nullable().notRequired(), + prevStatusId: Yup.number().nullable().notRequired(), }); -export const moveProposalWorkflowStatusValidationSchema = Yup.object().shape({ +export const moveWorkflowStatusValidationSchema = Yup.object().shape({ from: Yup.number().required(), to: Yup.number().required(), - proposalWorkflowId: Yup.number().required(), + workflowId: Yup.number().required(), }); -export const deleteProposalWorkflowStatusValidationSchema = Yup.object().shape({ - proposalStatusId: Yup.number().required(), - proposalWorkflowId: Yup.number().required(), +export const deleteWorkflowStatusValidationSchema = Yup.object().shape({ + statusId: Yup.number().required(), + workflowId: Yup.number().required(), }); export const addNextStatusEventsValidationSchema = Yup.object().shape({ - proposalWorkflowConnectionId: Yup.number().required(), + workflowConnectionId: Yup.number().required(), nextStatusEvents: Yup.array().of(Yup.string()).required(), }); export const addStatusActionsToConnectionValidationSchema = ( emailStatusActionType: T, rabbitMQStatusActionType: T, - proposalStatusActionTypes: T[], + statusActionTypes: T[], otherEmailActionRecipients: U ) => Yup.object().shape({ @@ -54,9 +55,7 @@ export const addStatusActionsToConnectionValidationSchema = ( .of( Yup.object().shape({ actionId: Yup.number().required(), - actionType: Yup.mixed() - .oneOf(proposalStatusActionTypes) - .required(), + actionType: Yup.mixed().oneOf(statusActionTypes).required(), config: Yup.object().test( 'RecipientWithTemplate', 'Invalid values provided for action config', diff --git a/packages/validation/src/index.ts b/packages/validation/src/index.ts index 056397f..119cb3c 100644 --- a/packages/validation/src/index.ts +++ b/packages/validation/src/index.ts @@ -1,8 +1,8 @@ export * from './Admin'; export * from './Call'; export * from './Proposal'; -export * from './ProposalStatuses'; -export * from './ProposalWorkflow'; +export * from './Statuses'; +export * from './Workflow'; export * from './Review'; export * from './fap'; export * from './PredefinedMessage';