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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package controllers
import (
"encoding/json"
"example.com/m/conf"
"example.com/m/models"
"example.com/m/nm"
"example.com/m/operate"
nodeManagerV1 "github.com/odysseus/odysseus-protocol/gen/proto/go/nodemanager/v1"
"io"
)
type NodeController struct {
BaseController
}
func (c *NodeController) SetNmSeed() {
bodyReq, err := io.ReadAll(c.Ctx.Request.Body)
if err != nil || bodyReq == nil {
c.ResponseInfo(500, "param error", "")
return
}
req := &models.SeedUrl{}
err = json.Unmarshal(bodyReq, req)
if err != nil {
c.ResponseInfo(500, "param error", "")
return
}
serviceClient := operate.ConnNmGrpc(req.Seed)
if serviceClient == nil {
c.ResponseInfo(500, "seed is not connected", "")
}
conf.GetConfig().SetNmSeed(req.Seed)
c.ResponseInfo(200, "set seed successful", "")
}
func (c *NodeController) SetRewardAddress() {
bodyReq, err := io.ReadAll(c.Ctx.Request.Body)
if err != nil || bodyReq == nil {
c.ResponseInfo(500, "param error", "")
return
}
req := &models.RewardAddress{}
err = json.Unmarshal(bodyReq, req)
if err != nil {
c.ResponseInfo(500, "param error", "")
return
}
if !conf.GetConfig().SetRewardAddress(req.Address) {
c.ResponseInfo(500, "param is not address", "")
}
c.ResponseInfo(200, "sign successful", "")
}
func (c *NodeController) AddNodeManager() {
bodyReq, err := io.ReadAll(c.Ctx.Request.Body)
if err != nil || bodyReq == nil {
c.ResponseInfo(500, "param error", "")
return
}
req := &models.NodeManagerReq{}
err = json.Unmarshal(bodyReq, req)
if err != nil || req.PublicKey == "" || req.EndPoint == "" {
c.ResponseInfo(500, "param error", "")
return
}
nodeManager := &nodeManagerV1.NodeManagerInfo{
Publickey: req.PublicKey,
Endpoint: req.EndPoint,
}
nm.AddNodeManager(nodeManager)
c.ResponseInfo(200, "sign successful", "")
}
func (c *NodeController) GetNodeManagers() {
manager := nm.GetNodeManagers()
res := make([]*nm.NodeManager, 0)
for _, nodeManager := range manager {
if !nodeManager.IsExist {
continue
}
if nodeManager.IsUsed {
res = append(res, nodeManager)
}
}
c.ResponseInfo(200, "Get used node manager successful", res)
}