Files
ssq-desk/internal/api/auth_api.go
2026-01-14 14:17:38 +08:00

88 lines
1.7 KiB
Go

package api
import (
"ssq-desk/internal/service"
"ssq-desk/internal/storage/repository"
)
// AuthAPI 授权码 API
type AuthAPI struct {
authService *service.AuthService
}
// NewAuthAPI 创建授权码 API
func NewAuthAPI() (*AuthAPI, error) {
repo, err := repository.NewSQLiteAuthRepository()
if err != nil {
return nil, err
}
authService := service.NewAuthService(repo)
return &AuthAPI{
authService: authService,
}, nil
}
// ActivateLicense 激活授权码
func (api *AuthAPI) ActivateLicense(licenseCode string) (map[string]interface{}, error) {
if api.authService == nil {
newAPI, err := NewAuthAPI()
if err != nil {
return nil, err
}
api.authService = newAPI.authService
}
err := api.authService.ValidateLicense(licenseCode)
if err != nil {
return map[string]interface{}{
"success": false,
"message": err.Error(),
}, nil
}
status, err := api.authService.CheckAuthStatus()
if err != nil {
return map[string]interface{}{
"success": false,
"message": err.Error(),
}, nil
}
return map[string]interface{}{
"success": true,
"message": "激活成功",
"data": status,
}, nil
}
// GetAuthStatus 获取授权状态
func (api *AuthAPI) GetAuthStatus() (map[string]interface{}, error) {
if api.authService == nil {
newAPI, err := NewAuthAPI()
if err != nil {
return nil, err
}
api.authService = newAPI.authService
}
status, err := api.authService.CheckAuthStatus()
if err != nil {
return map[string]interface{}{
"success": false,
"message": err.Error(),
}, nil
}
return map[string]interface{}{
"success": true,
"data": status,
}, nil
}
// GetDeviceID 获取设备ID
func (api *AuthAPI) GetDeviceID() (string, error) {
return service.GetDeviceID()
}