File tree Expand file tree Collapse file tree 2 files changed +31
-23
lines changed
Expand file tree Collapse file tree 2 files changed +31
-23
lines changed Original file line number Diff line number Diff line change 44 "fmt"
55 "strings"
66
7+ "dyn-https/models"
78 "dyn-https/util"
89)
910
@@ -46,6 +47,30 @@ func NewRequest(cmd string) (*RPCRequest, error) {
4647 return & req , nil
4748}
4849
50+ // GetNewRequest returns a new JSON-RPC 1.0 request object given the raw command.
51+ func GetNewRequest (jsonRPC models.JSONRPC ) (* RPCRequest , error ) {
52+ var req RPCRequest
53+ req .Method = jsonRPC .Method
54+ if len (jsonRPC .Params ) > 0 {
55+ req .Params = make ([]interface {}, len (jsonRPC .Params ))
56+ }
57+ for i , param := range jsonRPC .Params {
58+ switch param .(type ) {
59+ case int :
60+ req .Params [i ] = param
61+ case float64 :
62+ req .Params [i ] = param
63+ case bool :
64+ req .Params [i ] = param
65+ case string :
66+ req .Params [i ] = param
67+ }
68+ }
69+ req .JSONRPC = "1.0"
70+ req .ID , _ = util .RandomHashString (9 )
71+ return & req , nil
72+ }
73+
4974func (req * RPCRequest ) parseCmd (cmd string ) error {
5075 // Split cmd string
5176 r := NewCmdReader (strings .NewReader (cmd ))
Original file line number Diff line number Diff line change @@ -18,30 +18,13 @@ func (w *WebProxy) handleJSONRPC(c *gin.Context) {
1818 c .JSON (http .StatusBadRequest , gin.H {"error" : err })
1919 return
2020 }
21- strRequest := "dynamic-cli " + reqInput .Method
22- for _ , param := range reqInput .Params {
23- switch param .(type ) {
24- case int :
25- val , ok := param .(int )
26- if ok {
27- strRequest += ` ` + fmt .Sprintf ("%v" , val )
28- }
29- case float64 :
30- val , ok := param .(float64 )
31- if ok {
32- strRequest += ` ` + fmt .Sprintf ("%v" , val )
33- }
34- case bool :
35- val , ok := param .(bool )
36- if ok {
37- strRequest += ` ` + fmt .Sprintf ("%v" , val )
38- }
39- case string :
40- strRequest += ` "` + fmt .Sprintf ("%v" , param ) + `"`
41- }
21+ req , err := dynamic .GetNewRequest (reqInput )
22+ if err != nil {
23+ strErrMsg := fmt .Sprintf ("GetNewRequest error %v" , err )
24+ c .JSON (http .StatusBadRequest , gin.H {"error" : strErrMsg })
25+ return
4226 }
43- reqOutput , _ := dynamic .NewRequest (strRequest )
44- response , _ := <- w .dynamicd .ExecCmdRequest (reqOutput )
27+ response , _ := <- w .dynamicd .ExecCmdRequest (req )
4528 var result interface {}
4629 err = json .Unmarshal ([]byte (response ), & result )
4730 if err != nil {
You can’t perform that action at this time.
0 commit comments