ultisuite-backend/internal/api/mail/validate_unified_folders.go
2026-05-24 00:03:36 +02:00

48 lines
1.4 KiB
Go

package mail
import (
"strings"
"github.com/ultisuite/ulti-backend/internal/api/apivalidate"
)
const maxUnifiedFolderRequestBody = 8 << 10
type createUnifiedFolderRequest struct {
Name string `json:"name"`
Color string `json:"color"`
AccountID string `json:"account_id"`
ParentID string `json:"parent_id"`
SortOrder int `json:"sort_order"`
}
type updateUnifiedFolderRequest struct {
Name string `json:"name"`
Color string `json:"color"`
SortOrder int `json:"sort_order"`
ParentID *string `json:"parent_id"`
}
func validateCreateUnifiedFolder(req *createUnifiedFolderRequest) *apivalidate.ValidationError {
if req == nil {
return apivalidate.NewValidationError(apivalidate.FieldDetail{Field: "body", Message: "required"})
}
if strings.TrimSpace(req.Name) == "" {
return apivalidate.NewValidationError(apivalidate.FieldDetail{Field: "name", Message: "required"})
}
if len(req.Name) > maxFolderName {
return apivalidate.NewValidationError(apivalidate.FieldDetail{Field: "name", Message: "too long"})
}
return nil
}
func validateUpdateUnifiedFolder(req *updateUnifiedFolderRequest) *apivalidate.ValidationError {
if req == nil {
return apivalidate.NewValidationError(apivalidate.FieldDetail{Field: "body", Message: "required"})
}
if strings.TrimSpace(req.Name) == "" {
return apivalidate.NewValidationError(apivalidate.FieldDetail{Field: "name", Message: "required"})
}
return nil
}