- Updated main.go to initialize email service and include it in the dependency injection container. - Refactored handlers to utilize context in service method calls, improving consistency and error handling. - Introduced new service options for upload, security, and captcha services, enhancing modularity and testability. - Removed unused repository implementations to streamline the codebase. This commit continues the effort to improve the architecture by ensuring all services are properly injected and utilized across the application.
38 lines
778 B
Go
38 lines
778 B
Go
package service
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
)
|
|
|
|
// 通用错误
|
|
var (
|
|
ErrProfileNotFound = errors.New("档案不存在")
|
|
ErrProfileNoPermission = errors.New("无权操作此档案")
|
|
ErrTextureNotFound = errors.New("材质不存在")
|
|
ErrTextureNoPermission = errors.New("无权操作此材质")
|
|
ErrUserNotFound = errors.New("用户不存在")
|
|
)
|
|
|
|
// NormalizePagination 规范化分页参数
|
|
func NormalizePagination(page, pageSize int) (int, int) {
|
|
if page < 1 {
|
|
page = 1
|
|
}
|
|
if pageSize < 1 {
|
|
pageSize = 20
|
|
}
|
|
if pageSize > 100 {
|
|
pageSize = 100
|
|
}
|
|
return page, pageSize
|
|
}
|
|
|
|
// WrapError 包装错误,添加上下文信息
|
|
func WrapError(err error, message string) error {
|
|
if err == nil {
|
|
return nil
|
|
}
|
|
return fmt.Errorf("%s: %w", message, err)
|
|
}
|