mirror of
https://github.com/tuna/tunasync.git
synced 2025-04-21 04:42:46 +00:00
Use string for command verb in json, so it is easier to read
This commit is contained in:
parent
2a8fa5636e
commit
cd73602988
@ -1,6 +1,8 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
@ -60,21 +62,45 @@ const (
|
||||
)
|
||||
|
||||
func (c CmdVerb) String() string {
|
||||
switch c {
|
||||
case CmdStart:
|
||||
return "start"
|
||||
case CmdStop:
|
||||
return "stop"
|
||||
case CmdDisable:
|
||||
return "disable"
|
||||
case CmdRestart:
|
||||
return "restart"
|
||||
case CmdPing:
|
||||
return "ping"
|
||||
case CmdReload:
|
||||
return "reload"
|
||||
mapping := map[CmdVerb]string{
|
||||
CmdStart: "start",
|
||||
CmdStop: "stop",
|
||||
CmdDisable: "disable",
|
||||
CmdRestart: "restart",
|
||||
CmdPing: "ping",
|
||||
CmdReload: "reload",
|
||||
}
|
||||
return "unknown"
|
||||
return mapping[c]
|
||||
}
|
||||
|
||||
func NewCmdVerbFromString(s string) CmdVerb {
|
||||
mapping := map[string]CmdVerb{
|
||||
"start": CmdStart,
|
||||
"stop": CmdStop,
|
||||
"disable": CmdDisable,
|
||||
"restart": CmdRestart,
|
||||
"ping": CmdPing,
|
||||
"reload": CmdReload,
|
||||
}
|
||||
return mapping[s]
|
||||
}
|
||||
|
||||
// Marshal and Unmarshal for CmdVerb
|
||||
func (s CmdVerb) MarshalJSON() ([]byte, error) {
|
||||
buffer := bytes.NewBufferString(`"`)
|
||||
buffer.WriteString(s.String())
|
||||
buffer.WriteString(`"`)
|
||||
return buffer.Bytes(), nil
|
||||
}
|
||||
|
||||
func (s *CmdVerb) UnmarshalJSON(b []byte) error {
|
||||
var j string
|
||||
err := json.Unmarshal(b, &j)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
*s = NewCmdVerbFromString(j)
|
||||
return nil
|
||||
}
|
||||
|
||||
// A WorkerCmd is the command message send from the
|
||||
|
Loading…
x
Reference in New Issue
Block a user