From c1021e638ca8fec37f2409487c3797fbef8842da Mon Sep 17 00:00:00 2001 From: Yoganandan Pandiyan Date: Tue, 28 Jan 2025 17:09:43 +0100 Subject: [PATCH] feat: experiment workflow implementation --- package-lock.json | 2 +- .../{ProposalStatuses => Statuses}/index.ts | 7 ++-- .../{ProposalWorkflow => Workflow}/index.ts | 35 +++++++++---------- packages/validation/src/index.ts | 4 +-- 4 files changed, 24 insertions(+), 24 deletions(-) rename packages/validation/src/{ProposalStatuses => Statuses}/index.ts (76%) rename packages/validation/src/{ProposalWorkflow => Workflow}/index.ts (68%) diff --git a/package-lock.json b/package-lock.json index 3354562..7cf73fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20574,7 +20574,7 @@ }, "packages/validation": { "name": "@user-office-software/duo-validation", - "version": "3.4.9", + "version": "3.4.10", "license": "ISC", "dependencies": { "luxon": "^2.5.0", 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 68% rename from packages/validation/src/ProposalWorkflow/index.ts rename to packages/validation/src/Workflow/index.ts index 4eadd29..4cbc958 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[] ) => Yup.object().shape({ connectionId: Yup.number().required(), @@ -53,9 +54,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 984f25a..73c41e9 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 './SEP'; export * from './PredefinedMessage';