file_system/internal/api/validators/new_features_validators.go
2025-12-18 09:34:49 +08:00

51 lines
1.5 KiB
Go

package validators
import (
"file-system/internal/api/requests"
"file-system/internal/common"
)
type NewFeaturesValidator struct{}
func NewNewFeaturesValidator() *NewFeaturesValidator {
return &NewFeaturesValidator{}
}
func (v *NewFeaturesValidator) ValidateListFiles(req *requests.ListFilesRequest) error {
if req.BucketName == "" {
return common.NewBusinessException("Bucket name is required")
}
if req.MaxKeys <= 0 {
req.MaxKeys = 10 // default
}
return nil
}
func (v *NewFeaturesValidator) ValidatePreview(req *requests.GetFilePreviewRequest) error {
if req.BucketName == "" || req.ObjectKey == "" {
return common.NewBusinessException("Bucket name and Object key are required")
}
return nil
}
func (v *NewFeaturesValidator) ValidateInitMultipart(req *requests.InitMultipartRequest) error {
if req.BucketName == "" || req.ObjectKey == "" {
return common.NewBusinessException("Bucket name and Object key are required")
}
return nil
}
func (v *NewFeaturesValidator) ValidateUploadPart(req *requests.UploadPartRequest) error {
if req.BucketName == "" || req.ObjectKey == "" || req.UploadId == "" || req.PartNumber <= 0 || req.File == nil {
return common.NewBusinessException("Missing required fields for upload part")
}
return nil
}
func (v *NewFeaturesValidator) ValidateCompleteMultipart(req *requests.CompleteMultipartRequest) error {
if req.BucketName == "" || req.ObjectKey == "" || req.UploadId == "" || len(req.Parts) == 0 {
return common.NewBusinessException("Missing required fields for completion")
}
return nil
}