57 lines
918 B
Go
57 lines
918 B
Go
package unix
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"time"
|
|
"ultone/internal/log"
|
|
"ultone/internal/opt"
|
|
)
|
|
|
|
type Handler struct {
|
|
Ctx context.Context
|
|
}
|
|
|
|
type AvailableReq struct{}
|
|
type AvailableResp struct {
|
|
OK bool
|
|
Now time.Time
|
|
Start time.Time
|
|
Duration string
|
|
}
|
|
|
|
func (*Handler) Available(_ *AvailableReq, out *AvailableResp) error {
|
|
now := time.Now()
|
|
out.OK, out.Now = opt.OK, now
|
|
out.Start = opt.Start
|
|
out.Duration = fmt.Sprint(now.Sub(opt.Start))
|
|
return nil
|
|
}
|
|
|
|
type SettingReq struct {
|
|
Debug bool
|
|
}
|
|
type Resp[T any] struct {
|
|
Status uint32
|
|
Msg string
|
|
Data T
|
|
}
|
|
|
|
func (h *Handler) Setting(in *SettingReq, out *Resp[bool]) error {
|
|
opt.Locker.Lock()
|
|
defer opt.Locker.Unlock()
|
|
|
|
if in.Debug {
|
|
opt.Debug = true
|
|
log.Info(h.Ctx, "set global debug[true]")
|
|
} else {
|
|
opt.Debug = false
|
|
log.Info(h.Ctx, "set global debug[false]")
|
|
}
|
|
|
|
out.Status = 200
|
|
out.Msg = "操作成功"
|
|
|
|
return nil
|
|
}
|