added min select relation field option
This commit is contained in:
@@ -362,6 +362,10 @@ func (validator *RecordDataValidator) checkRelationValue(field *schema.SchemaFie
|
||||
|
||||
options, _ := field.Options.(*schema.RelationOptions)
|
||||
|
||||
if options.MinSelect != nil && len(ids) < *options.MinSelect {
|
||||
return validation.NewError("validation_not_enough_values", fmt.Sprintf("Select at least %d", *options.MinSelect))
|
||||
}
|
||||
|
||||
if options.MaxSelect != nil && len(ids) > *options.MaxSelect {
|
||||
return validation.NewError("validation_too_many_values", fmt.Sprintf("Select no more than %d", *options.MaxSelect))
|
||||
}
|
||||
|
||||
@@ -1212,6 +1212,7 @@ func TestRecordDataValidatorValidateRelation(t *testing.T) {
|
||||
Unique: true,
|
||||
Type: schema.FieldTypeRelation,
|
||||
Options: &schema.RelationOptions{
|
||||
MinSelect: types.Pointer(2),
|
||||
CollectionId: demo.Id,
|
||||
},
|
||||
},
|
||||
@@ -1258,6 +1259,15 @@ func TestRecordDataValidatorValidateRelation(t *testing.T) {
|
||||
nil,
|
||||
[]string{"field2"},
|
||||
},
|
||||
{
|
||||
"check min constraint",
|
||||
map[string]any{
|
||||
"field2": relId2,
|
||||
"field3": []string{relId1},
|
||||
},
|
||||
nil,
|
||||
[]string{"field3"},
|
||||
},
|
||||
{
|
||||
"check unique constraint",
|
||||
map[string]any{
|
||||
|
||||
Reference in New Issue
Block a user