Skip to content

Commit

Permalink
add validation to custom docker image fields
Browse files Browse the repository at this point in the history
  • Loading branch information
bogdanfazakas committed Oct 13, 2023
1 parent 031f6eb commit 903faa2
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { MetadataAlgorithmContainer } from '@components/Publish/_types'
import * as Yup from 'yup'
import { SchemaLike } from 'yup/lib/types'

export const validationAlgorithmContianerParameters: {
[key in keyof MetadataAlgorithmContainer]: SchemaLike
} = {
entrypoint: Yup.string().required(),
image: Yup.string().required(),
tag: Yup.string().required(),
checksum: Yup.string().required()
}
10 changes: 10 additions & 0 deletions src/components/Publish/_validation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { getMaxDecimalsValidation } from '@utils/numbers'
import * as Yup from 'yup'
import { testLinks } from '@utils/yup'
import { validationConsumerParameters } from '@components/@shared/FormInput/InputElement/ConsumerParameters/_validation'
import { validationAlgorithmContianerParameters } from '@components/@shared/FormInput/InputElement/ContainerInput/_validation'

// TODO: conditional validation
// e.g. when algo is selected, Docker image is required
Expand All @@ -25,6 +26,15 @@ const validationMetadata = {
.required('Required'),
author: Yup.string().required('Required'),
tags: Yup.array<string[]>().nullable(),
dockerImage: Yup.string().when('type', {
is: 'algorithm',
then: Yup.array()
.of(Yup.object().shape(validationAlgorithmContianerParameters))
.required('Required'),
otherwise: Yup.array()
.nullable()
.transform((value) => value || null)
}),
termsAndConditions: Yup.boolean()
.required('Required')
.isTrue('Please agree to the Terms and Conditions.'),
Expand Down

0 comments on commit 903faa2

Please sign in to comment.