Files
go-i2pcontrol/json.go

51 lines
1.0 KiB
Go
Raw Normal View History

2018-04-03 00:55:29 -04:00
package i2pcontrol
2018-04-03 02:16:33 -04:00
import (
"strings"
)
2018-04-03 00:55:29 -04:00
type jsonStructure struct {
echo string
}
func (j *jsonStructure) Id() string {
rstring := randomString(10)
return rstring
}
2018-04-03 02:39:50 -04:00
func (j *jsonStructure) Format(m, e string, s ...string) string {
2018-04-03 00:55:29 -04:00
rstring := "{\n"
2018-04-03 01:57:04 -04:00
rstring += " method: \"" + m +"\"\n"
rstring += " jsonrpc: \"2.0\"\n"
rstring += " id: \"" + j.Id() + "\"\n"
rstring += " params: \""
2018-04-03 02:16:33 -04:00
var params string
2018-04-03 02:33:19 -04:00
for index, value := range s {
if index != 0 && index%2 == 0 {
params += " " + s[index-1] + ": \"" + value + "\""
}
2018-04-03 00:55:29 -04:00
}
2018-04-03 02:16:33 -04:00
p := strings.TrimRight(params, " ")
rstring += p + "\"\n"
2018-04-03 00:55:29 -04:00
rstring += "}\n"
return rstring
}
2018-04-03 02:39:50 -04:00
func (j *jsonStructure) Authenticate(s ...string) string{
return j.Format("echo", "Authenticate", s...)
}
2018-04-03 00:55:29 -04:00
func (j *jsonStructure) Echo(s ...string) string{
2018-04-03 02:39:50 -04:00
return j.Format("echo", "Echo", s...)
2018-04-03 00:55:29 -04:00
}
func (j *jsonStructure) jsonStructure() jsonStructure {
return *j
}
func NewJsonStructure() *jsonStructure {
2018-04-03 00:55:29 -04:00
var j jsonStructure
return &j
}