58 lines
1.8 KiB
Go
58 lines
1.8 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
|
|
}
|
|
|
|
func (v *NewFeaturesValidator) ValidateDeleteFile(req *requests.DeleteFileRequest) error {
|
|
if req.BucketName == "" || req.ObjectKey == "" {
|
|
return common.NewBusinessException("Bucket name and Object key are required")
|
|
}
|
|
return nil
|
|
}
|