57 lines
918 B
Go
Raw Permalink Normal View History

2024-07-26 17:59:02 +08:00
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
}