added min select relation field option

This commit is contained in:
Gani Georgiev
2023-02-24 16:33:57 +02:00
parent f1a6a82bd3
commit 4778fc7a46
36 changed files with 239 additions and 150 deletions
+4
View File
@@ -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))
}
+10
View File
@@ -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{