opera-proxy/seclient/messages.go
Vladislav Yarmak 67206a164c WIP
2021-03-25 19:58:30 +02:00

41 lines
597 B
Go

package seclient
import (
"encoding/json"
"errors"
"strconv"
)
type SEStatusPair struct {
StatusCode int64
Status string
}
func (p *SEStatusPair) UnmarshalJSON(b []byte) error {
var tmp map[string]string
err := json.Unmarshal(b, &tmp)
if err != nil {
return err
}
if len(tmp) != 1 {
return errors.New("ambiguous status")
}
var strCode, strStatus string
for k, v := range tmp {
strCode = k
strStatus = v
}
code, err := strconv.ParseInt(strCode, 10, 64)
if err != nil {
return err
}
*p = SEStatusPair{
StatusCode: code,
Status: strStatus,
}
return nil
}