ci(backend): 添加 unused 配置
This commit is contained in:
@@ -549,7 +549,26 @@ linters:
|
|||||||
# Use 'fmt.Fprintf(x, ...)' instead of 'x.Write(fmt.Sprintf(...))'.
|
# Use 'fmt.Fprintf(x, ...)' instead of 'x.Write(fmt.Sprintf(...))'.
|
||||||
# https://staticcheck.dev/docs/checks/#QF1012
|
# https://staticcheck.dev/docs/checks/#QF1012
|
||||||
- QF1012
|
- QF1012
|
||||||
|
unused:
|
||||||
|
# Mark all struct fields that have been written to as used.
|
||||||
|
# Default: true
|
||||||
|
field-writes-are-uses: false
|
||||||
|
# Treat IncDec statement (e.g. `i++` or `i--`) as both read and write operation instead of just write.
|
||||||
|
# Default: false
|
||||||
|
post-statements-are-reads: true
|
||||||
|
# Mark all exported fields as used.
|
||||||
|
# default: true
|
||||||
|
exported-fields-are-used: false
|
||||||
|
# Mark all function parameters as used.
|
||||||
|
# default: true
|
||||||
|
parameters-are-used: true
|
||||||
|
# Mark all local variables as used.
|
||||||
|
# default: true
|
||||||
|
local-variables-are-used: false
|
||||||
|
# Mark all identifiers inside generated files as used.
|
||||||
|
# Default: true
|
||||||
|
generated-is-used: false
|
||||||
|
|
||||||
formatters:
|
formatters:
|
||||||
enable:
|
enable:
|
||||||
- gofmt
|
- gofmt
|
||||||
@@ -48,7 +48,7 @@ func initializeApplication(buildInfo handler.BuildInfo) (*Application, error) {
|
|||||||
emailQueueService := service.ProvideEmailQueueService(emailService)
|
emailQueueService := service.ProvideEmailQueueService(emailService)
|
||||||
authService := service.NewAuthService(userRepository, configConfig, settingService, emailService, turnstileService, emailQueueService)
|
authService := service.NewAuthService(userRepository, configConfig, settingService, emailService, turnstileService, emailQueueService)
|
||||||
authHandler := handler.NewAuthHandler(authService)
|
authHandler := handler.NewAuthHandler(authService)
|
||||||
userService := service.NewUserService(userRepository, configConfig)
|
userService := service.NewUserService(userRepository)
|
||||||
userHandler := handler.NewUserHandler(userService)
|
userHandler := handler.NewUserHandler(userService)
|
||||||
apiKeyRepository := repository.NewApiKeyRepository(db)
|
apiKeyRepository := repository.NewApiKeyRepository(db)
|
||||||
groupRepository := repository.NewGroupRepository(db)
|
groupRepository := repository.NewGroupRepository(db)
|
||||||
@@ -67,22 +67,22 @@ func initializeApplication(buildInfo handler.BuildInfo) (*Application, error) {
|
|||||||
redeemService := service.NewRedeemService(redeemCodeRepository, userRepository, subscriptionService, redeemCache, billingCacheService)
|
redeemService := service.NewRedeemService(redeemCodeRepository, userRepository, subscriptionService, redeemCache, billingCacheService)
|
||||||
redeemHandler := handler.NewRedeemHandler(redeemService)
|
redeemHandler := handler.NewRedeemHandler(redeemService)
|
||||||
subscriptionHandler := handler.NewSubscriptionHandler(subscriptionService)
|
subscriptionHandler := handler.NewSubscriptionHandler(subscriptionService)
|
||||||
|
dashboardHandler := admin.NewDashboardHandler(usageLogRepository)
|
||||||
accountRepository := repository.NewAccountRepository(db)
|
accountRepository := repository.NewAccountRepository(db)
|
||||||
proxyRepository := repository.NewProxyRepository(db)
|
proxyRepository := repository.NewProxyRepository(db)
|
||||||
proxyExitInfoProber := repository.NewProxyExitInfoProber()
|
proxyExitInfoProber := repository.NewProxyExitInfoProber()
|
||||||
adminService := service.NewAdminService(userRepository, groupRepository, accountRepository, proxyRepository, apiKeyRepository, redeemCodeRepository, usageLogRepository, userSubscriptionRepository, billingCacheService, proxyExitInfoProber)
|
adminService := service.NewAdminService(userRepository, groupRepository, accountRepository, proxyRepository, apiKeyRepository, redeemCodeRepository, billingCacheService, proxyExitInfoProber)
|
||||||
dashboardHandler := admin.NewDashboardHandler(adminService, usageLogRepository)
|
|
||||||
adminUserHandler := admin.NewUserHandler(adminService)
|
adminUserHandler := admin.NewUserHandler(adminService)
|
||||||
groupHandler := admin.NewGroupHandler(adminService)
|
groupHandler := admin.NewGroupHandler(adminService)
|
||||||
claudeOAuthClient := repository.NewClaudeOAuthClient()
|
claudeOAuthClient := repository.NewClaudeOAuthClient()
|
||||||
oAuthService := service.NewOAuthService(proxyRepository, claudeOAuthClient)
|
oAuthService := service.NewOAuthService(proxyRepository, claudeOAuthClient)
|
||||||
rateLimitService := service.NewRateLimitService(accountRepository, configConfig)
|
rateLimitService := service.NewRateLimitService(accountRepository, configConfig)
|
||||||
claudeUsageFetcher := repository.NewClaudeUsageFetcher()
|
claudeUsageFetcher := repository.NewClaudeUsageFetcher()
|
||||||
accountUsageService := service.NewAccountUsageService(accountRepository, usageLogRepository, oAuthService, claudeUsageFetcher)
|
accountUsageService := service.NewAccountUsageService(accountRepository, usageLogRepository, claudeUsageFetcher)
|
||||||
claudeUpstream := repository.NewClaudeUpstream(configConfig)
|
claudeUpstream := repository.NewClaudeUpstream(configConfig)
|
||||||
accountTestService := service.NewAccountTestService(accountRepository, oAuthService, claudeUpstream)
|
accountTestService := service.NewAccountTestService(accountRepository, oAuthService, claudeUpstream)
|
||||||
accountHandler := admin.NewAccountHandler(adminService, oAuthService, rateLimitService, accountUsageService, accountTestService)
|
accountHandler := admin.NewAccountHandler(adminService, oAuthService, rateLimitService, accountUsageService, accountTestService)
|
||||||
oAuthHandler := admin.NewOAuthHandler(oAuthService, adminService)
|
oAuthHandler := admin.NewOAuthHandler(oAuthService)
|
||||||
proxyHandler := admin.NewProxyHandler(adminService)
|
proxyHandler := admin.NewProxyHandler(adminService)
|
||||||
adminRedeemHandler := admin.NewRedeemHandler(adminService)
|
adminRedeemHandler := admin.NewRedeemHandler(adminService)
|
||||||
settingHandler := admin.NewSettingHandler(settingService, emailService)
|
settingHandler := admin.NewSettingHandler(settingService, emailService)
|
||||||
@@ -103,16 +103,16 @@ func initializeApplication(buildInfo handler.BuildInfo) (*Application, error) {
|
|||||||
billingService := service.NewBillingService(configConfig, pricingService)
|
billingService := service.NewBillingService(configConfig, pricingService)
|
||||||
identityCache := repository.NewIdentityCache(client)
|
identityCache := repository.NewIdentityCache(client)
|
||||||
identityService := service.NewIdentityService(identityCache)
|
identityService := service.NewIdentityService(identityCache)
|
||||||
gatewayService := service.NewGatewayService(accountRepository, usageLogRepository, userRepository, userSubscriptionRepository, gatewayCache, configConfig, oAuthService, billingService, rateLimitService, billingCacheService, identityService, claudeUpstream)
|
gatewayService := service.NewGatewayService(accountRepository, usageLogRepository, userRepository, userSubscriptionRepository, gatewayCache, configConfig, billingService, rateLimitService, billingCacheService, identityService, claudeUpstream)
|
||||||
concurrencyCache := repository.NewConcurrencyCache(client)
|
concurrencyCache := repository.NewConcurrencyCache(client)
|
||||||
concurrencyService := service.NewConcurrencyService(concurrencyCache)
|
concurrencyService := service.NewConcurrencyService(concurrencyCache)
|
||||||
tokenRefreshService := service.ProvideTokenRefreshService(accountRepository, oAuthService, configConfig)
|
|
||||||
gatewayHandler := handler.NewGatewayHandler(gatewayService, userService, concurrencyService, billingCacheService)
|
gatewayHandler := handler.NewGatewayHandler(gatewayService, userService, concurrencyService, billingCacheService)
|
||||||
handlerSettingHandler := handler.ProvideSettingHandler(settingService, buildInfo)
|
handlerSettingHandler := handler.ProvideSettingHandler(settingService, buildInfo)
|
||||||
handlers := handler.ProvideHandlers(authHandler, userHandler, apiKeyHandler, usageHandler, redeemHandler, subscriptionHandler, adminHandlers, gatewayHandler, handlerSettingHandler)
|
handlers := handler.ProvideHandlers(authHandler, userHandler, apiKeyHandler, usageHandler, redeemHandler, subscriptionHandler, adminHandlers, gatewayHandler, handlerSettingHandler)
|
||||||
groupService := service.NewGroupService(groupRepository)
|
groupService := service.NewGroupService(groupRepository)
|
||||||
accountService := service.NewAccountService(accountRepository, groupRepository)
|
accountService := service.NewAccountService(accountRepository, groupRepository)
|
||||||
proxyService := service.NewProxyService(proxyRepository)
|
proxyService := service.NewProxyService(proxyRepository)
|
||||||
|
tokenRefreshService := service.ProvideTokenRefreshService(accountRepository, oAuthService, configConfig)
|
||||||
services := &service.Services{
|
services := &service.Services{
|
||||||
Auth: authService,
|
Auth: authService,
|
||||||
User: userService,
|
User: userService,
|
||||||
|
|||||||
@@ -13,14 +13,12 @@ import (
|
|||||||
// OAuthHandler handles OAuth-related operations for accounts
|
// OAuthHandler handles OAuth-related operations for accounts
|
||||||
type OAuthHandler struct {
|
type OAuthHandler struct {
|
||||||
oauthService *service.OAuthService
|
oauthService *service.OAuthService
|
||||||
adminService service.AdminService
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewOAuthHandler creates a new OAuth handler
|
// NewOAuthHandler creates a new OAuth handler
|
||||||
func NewOAuthHandler(oauthService *service.OAuthService, adminService service.AdminService) *OAuthHandler {
|
func NewOAuthHandler(oauthService *service.OAuthService) *OAuthHandler {
|
||||||
return &OAuthHandler{
|
return &OAuthHandler{
|
||||||
oauthService: oauthService,
|
oauthService: oauthService,
|
||||||
adminService: adminService,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import (
|
|||||||
"sub2api/internal/pkg/response"
|
"sub2api/internal/pkg/response"
|
||||||
"sub2api/internal/pkg/timezone"
|
"sub2api/internal/pkg/timezone"
|
||||||
"sub2api/internal/repository"
|
"sub2api/internal/repository"
|
||||||
"sub2api/internal/service"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
@@ -13,17 +12,15 @@ import (
|
|||||||
|
|
||||||
// DashboardHandler handles admin dashboard statistics
|
// DashboardHandler handles admin dashboard statistics
|
||||||
type DashboardHandler struct {
|
type DashboardHandler struct {
|
||||||
adminService service.AdminService
|
usageRepo *repository.UsageLogRepository
|
||||||
usageRepo *repository.UsageLogRepository
|
startTime time.Time // Server start time for uptime calculation
|
||||||
startTime time.Time // Server start time for uptime calculation
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewDashboardHandler creates a new admin dashboard handler
|
// NewDashboardHandler creates a new admin dashboard handler
|
||||||
func NewDashboardHandler(adminService service.AdminService, usageRepo *repository.UsageLogRepository) *DashboardHandler {
|
func NewDashboardHandler(usageRepo *repository.UsageLogRepository) *DashboardHandler {
|
||||||
return &DashboardHandler{
|
return &DashboardHandler{
|
||||||
adminService: adminService,
|
usageRepo: usageRepo,
|
||||||
usageRepo: usageRepo,
|
startTime: time.Now(),
|
||||||
startTime: time.Now(),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -70,16 +70,14 @@ type ClaudeUsageFetcher interface {
|
|||||||
type AccountUsageService struct {
|
type AccountUsageService struct {
|
||||||
accountRepo ports.AccountRepository
|
accountRepo ports.AccountRepository
|
||||||
usageLogRepo ports.UsageLogRepository
|
usageLogRepo ports.UsageLogRepository
|
||||||
oauthService *OAuthService
|
|
||||||
usageFetcher ClaudeUsageFetcher
|
usageFetcher ClaudeUsageFetcher
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewAccountUsageService 创建AccountUsageService实例
|
// NewAccountUsageService 创建AccountUsageService实例
|
||||||
func NewAccountUsageService(accountRepo ports.AccountRepository, usageLogRepo ports.UsageLogRepository, oauthService *OAuthService, usageFetcher ClaudeUsageFetcher) *AccountUsageService {
|
func NewAccountUsageService(accountRepo ports.AccountRepository, usageLogRepo ports.UsageLogRepository, usageFetcher ClaudeUsageFetcher) *AccountUsageService {
|
||||||
return &AccountUsageService{
|
return &AccountUsageService{
|
||||||
accountRepo: accountRepo,
|
accountRepo: accountRepo,
|
||||||
usageLogRepo: usageLogRepo,
|
usageLogRepo: usageLogRepo,
|
||||||
oauthService: oauthService,
|
|
||||||
usageFetcher: usageFetcher,
|
usageFetcher: usageFetcher,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -193,8 +193,6 @@ type adminServiceImpl struct {
|
|||||||
proxyRepo ports.ProxyRepository
|
proxyRepo ports.ProxyRepository
|
||||||
apiKeyRepo ports.ApiKeyRepository
|
apiKeyRepo ports.ApiKeyRepository
|
||||||
redeemCodeRepo ports.RedeemCodeRepository
|
redeemCodeRepo ports.RedeemCodeRepository
|
||||||
usageLogRepo ports.UsageLogRepository
|
|
||||||
userSubRepo ports.UserSubscriptionRepository
|
|
||||||
billingCacheService *BillingCacheService
|
billingCacheService *BillingCacheService
|
||||||
proxyProber ProxyExitInfoProber
|
proxyProber ProxyExitInfoProber
|
||||||
}
|
}
|
||||||
@@ -207,8 +205,6 @@ func NewAdminService(
|
|||||||
proxyRepo ports.ProxyRepository,
|
proxyRepo ports.ProxyRepository,
|
||||||
apiKeyRepo ports.ApiKeyRepository,
|
apiKeyRepo ports.ApiKeyRepository,
|
||||||
redeemCodeRepo ports.RedeemCodeRepository,
|
redeemCodeRepo ports.RedeemCodeRepository,
|
||||||
usageLogRepo ports.UsageLogRepository,
|
|
||||||
userSubRepo ports.UserSubscriptionRepository,
|
|
||||||
billingCacheService *BillingCacheService,
|
billingCacheService *BillingCacheService,
|
||||||
proxyProber ProxyExitInfoProber,
|
proxyProber ProxyExitInfoProber,
|
||||||
) AdminService {
|
) AdminService {
|
||||||
@@ -219,8 +215,6 @@ func NewAdminService(
|
|||||||
proxyRepo: proxyRepo,
|
proxyRepo: proxyRepo,
|
||||||
apiKeyRepo: apiKeyRepo,
|
apiKeyRepo: apiKeyRepo,
|
||||||
redeemCodeRepo: redeemCodeRepo,
|
redeemCodeRepo: redeemCodeRepo,
|
||||||
usageLogRepo: usageLogRepo,
|
|
||||||
userSubRepo: userSubRepo,
|
|
||||||
billingCacheService: billingCacheService,
|
billingCacheService: billingCacheService,
|
||||||
proxyProber: proxyProber,
|
proxyProber: proxyProber,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,7 +84,6 @@ type GatewayService struct {
|
|||||||
userSubRepo ports.UserSubscriptionRepository
|
userSubRepo ports.UserSubscriptionRepository
|
||||||
cache ports.GatewayCache
|
cache ports.GatewayCache
|
||||||
cfg *config.Config
|
cfg *config.Config
|
||||||
oauthService *OAuthService
|
|
||||||
billingService *BillingService
|
billingService *BillingService
|
||||||
rateLimitService *RateLimitService
|
rateLimitService *RateLimitService
|
||||||
billingCacheService *BillingCacheService
|
billingCacheService *BillingCacheService
|
||||||
@@ -100,7 +99,6 @@ func NewGatewayService(
|
|||||||
userSubRepo ports.UserSubscriptionRepository,
|
userSubRepo ports.UserSubscriptionRepository,
|
||||||
cache ports.GatewayCache,
|
cache ports.GatewayCache,
|
||||||
cfg *config.Config,
|
cfg *config.Config,
|
||||||
oauthService *OAuthService,
|
|
||||||
billingService *BillingService,
|
billingService *BillingService,
|
||||||
rateLimitService *RateLimitService,
|
rateLimitService *RateLimitService,
|
||||||
billingCacheService *BillingCacheService,
|
billingCacheService *BillingCacheService,
|
||||||
@@ -114,7 +112,6 @@ func NewGatewayService(
|
|||||||
userSubRepo: userSubRepo,
|
userSubRepo: userSubRepo,
|
||||||
cache: cache,
|
cache: cache,
|
||||||
cfg: cfg,
|
cfg: cfg,
|
||||||
oauthService: oauthService,
|
|
||||||
billingService: billingService,
|
billingService: billingService,
|
||||||
rateLimitService: rateLimitService,
|
rateLimitService: rateLimitService,
|
||||||
billingCacheService: billingCacheService,
|
billingCacheService: billingCacheService,
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"sub2api/internal/config"
|
|
||||||
"sub2api/internal/model"
|
"sub2api/internal/model"
|
||||||
"sub2api/internal/pkg/pagination"
|
"sub2api/internal/pkg/pagination"
|
||||||
"sub2api/internal/service/ports"
|
"sub2api/internal/service/ports"
|
||||||
@@ -34,14 +33,12 @@ type ChangePasswordRequest struct {
|
|||||||
// UserService 用户服务
|
// UserService 用户服务
|
||||||
type UserService struct {
|
type UserService struct {
|
||||||
userRepo ports.UserRepository
|
userRepo ports.UserRepository
|
||||||
cfg *config.Config
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewUserService 创建用户服务实例
|
// NewUserService 创建用户服务实例
|
||||||
func NewUserService(userRepo ports.UserRepository, cfg *config.Config) *UserService {
|
func NewUserService(userRepo ports.UserRepository) *UserService {
|
||||||
return &UserService{
|
return &UserService{
|
||||||
userRepo: userRepo,
|
userRepo: userRepo,
|
||||||
cfg: cfg,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user