This commit is contained in:
Proddy
2023-03-04 19:14:25 +01:00
parent dd200f6d34
commit a41dc71965
12 changed files with 373 additions and 136 deletions

View File

@@ -87,14 +87,13 @@ export const createSettingsValidator = (settings: Settings) =>
export const schedulerItemValidation = (schedule: ScheduleItem[], o_id: string) =>
new Schema({
id: [
{ required: true, message: 'Name is required' },
name: [
{
type: 'string',
pattern: /^[a-zA-Z0-9_\\.]{1,15}$/,
message: "Must be 1-15 characters: alpha numeric, '_' or '.'"
},
...[uniqueIDValidator(schedule, o_id)]
...[uniqueNameValidator(schedule, o_id)]
],
cmd: [
{ required: true, message: 'Command is required' },
@@ -102,9 +101,9 @@ export const schedulerItemValidation = (schedule: ScheduleItem[], o_id: string)
]
});
export const uniqueIDValidator = (schedule: ScheduleItem[], o_id: string) => ({
validator(rule: InternalRuleItem, id: string, callback: (error?: string) => void) {
if (id && o_id !== id && schedule.find((si) => si.id === id)) {
export const uniqueNameValidator = (schedule: ScheduleItem[], o_name: string) => ({
validator(rule: InternalRuleItem, name: string, callback: (error?: string) => void) {
if (name && o_name !== name && schedule.find((si) => si.name === name)) {
callback('Name already in use');
} else {
callback();