88 lines
1.7 KiB
Go
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()
|
|
}
|