48 lines
1.4 KiB
Go
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
|
|
}
|