Files
nbi_alarm/omc/omc_pack.go
2023-08-21 11:02:58 +08:00

46 lines
836 B
Go

package omc
import (
"errors"
"fmt"
"strings"
)
type MsgBody struct {
UID string
RawData []byte
MsgName string
Msg map[string]string
}
// Decode
//reqLoginAlarm;user=yiy;key=qw#$@;type=msg
func (o *MsgBody) Decode() error {
multi := strings.Split(string(o.RawData), ";")
if len(multi) < 1 {
return errors.New("invalid msg body")
}
for i := 1; i < len(multi); i++ {
m := strings.Split(multi[i], "=")
if len(m) != 2 {
return errors.New("invalid msg body")
}
o.Msg[m[0]] = m[1]
}
return nil
}
// Pack
//reqLoginAlarm;user=yiy;key=qw#$@;type=msg
func (o *MsgBody) Pack() error {
var multi []string
multi = append(multi, o.MsgName)
for i, v := range o.Msg {
item := fmt.Sprintf("%s=%s", i, v)
multi = append(multi, item)
}
raw := strings.Join(multi, ";")
o.RawData = []byte(raw)
return nil
}