register.go 980 字节
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
package cmd

import (
	"encoding/json"
	"github.com/eolinker/goku-api-gateway/config"
)

type RegisterResult struct {
	Code   int
	Error  string
	Config *config.GokuConfig
}

func DecodeRegisterResult(data []byte) (*RegisterResult, error) {
	r := new(RegisterResult)
	err := json.Unmarshal(data, r)
	if err != nil {
		return nil, err
	}
	return r, nil
}
func EncodeRegisterResultConfig(c *config.GokuConfig) ([]byte, error) {
	r := RegisterResult{
		Code:   0,
		Error:  "",
		Config: c,
	}
	return json.Marshal(r)
}
func EncodeRegisterResultError(err string) ([]byte, error) {
	r := RegisterResult{
		Code:   -1,
		Error:  err,
		Config: nil,
	}
	return json.Marshal(r)
}

func DecodeRegister(data []byte) (string, error) {
	if len(data) == 32 {
		return string(data), nil
	}
	return "", ErrorInvalidNodeInstance
}

func EncodeRegister(nodeKey string) ([]byte, error) {
	data := []byte(nodeKey)
	if len(data) == 32 {
		return data, nil
	}
	return nil, ErrorInvalidNodeInstance
}