lamassu-server/new-lamassu-admin/src/pages/Services/schemas/ciphertrace.js
2022-02-16 03:02:02 +00:00

55 lines
1.6 KiB
JavaScript

import * as Yup from 'yup'
import CheckboxFormik from 'src/components/inputs/formik/Checkbox'
import NumberInputFormik from 'src/components/inputs/formik/NumberInput'
import SecretInputFormik from 'src/components/inputs/formik/SecretInput'
import { secretTest, leadingZerosTest } from './helper'
export default {
code: 'ciphertrace',
name: 'CipherTrace',
title: 'CipherTrace (Scoring)',
elements: [
{
code: 'authorizationValue',
display: 'Authorization value',
component: SecretInputFormik
},
{
code: 'scoreThreshold',
display: 'Score threshold',
component: NumberInputFormik,
face: true,
long: true
},
{
code: 'enabled',
component: CheckboxFormik,
settings: {
enabled: true,
disabledMessage: 'This plugin is disabled',
label: 'Enabled',
requirement: null
},
face: true
}
],
getValidationSchema: account => {
return Yup.object().shape({
authorizationValue: Yup.string('The authorization value must be a string')
.max(100, 'Too long')
.test(secretTest(account?.authorizationValue)),
scoreThreshold: Yup.number('The score threshold must be a number')
.required('A score threshold is required')
.min(1, 'The score threshold must be between 1 and 10')
.max(10, 'The score threshold must be between 1 and 10')
.integer('The score threshold must be an integer')
.test(
'no-leading-zeros',
'The score threshold must not have leading zeros',
leadingZerosTest
)
})
}
}