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:54:50 -04:00
|
|
|
func (j *jsonStructure) Format(m string, s ...string) string {
|
2018-04-03 00:55:29 -04:00
|
|
|
rstring := "{\n"
|
2018-04-03 03:09:23 -04:00
|
|
|
rstring += " \"method\": \"" + m +"\",\n"
|
|
|
|
rstring += " \"jsonrpc\": \"2.0\",\n"
|
|
|
|
rstring += " \"id\": \"" + j.Id() + "\",\n"
|
2018-04-03 03:04:31 -04:00
|
|
|
rstring += " \"params\": { \n"
|
2018-04-03 02:16:33 -04:00
|
|
|
var params string
|
2018-04-03 02:33:19 -04:00
|
|
|
for index, value := range s {
|
2018-04-03 02:58:22 -04:00
|
|
|
if index != 0 && (index + 1)%2 == 0 {
|
2018-04-03 03:09:23 -04:00
|
|
|
params += strings.TrimRight(" \"" + s[index-1] + "\": \"" + value + "\"", " ") + ",\n"
|
2018-04-03 02:33:19 -04:00
|
|
|
}
|
2018-04-03 00:55:29 -04:00
|
|
|
}
|
2018-04-03 03:12:35 -04:00
|
|
|
rstring += strings.TrimRight(params, ",\n") + "\n }\n"
|
2018-04-03 03:05:47 -04:00
|
|
|
rstring += "}"
|
2018-04-03 00:55:29 -04:00
|
|
|
return rstring
|
|
|
|
}
|
|
|
|
|
2018-04-03 02:39:50 -04:00
|
|
|
func (j *jsonStructure) Authenticate(s ...string) string{
|
2018-04-03 03:09:23 -04:00
|
|
|
return j.Format("Authenticate", s...)
|
2018-04-03 02:39:50 -04:00
|
|
|
}
|
|
|
|
|
2018-04-03 00:55:29 -04:00
|
|
|
func (j *jsonStructure) Echo(s ...string) string{
|
2018-04-03 03:09:23 -04:00
|
|
|
return j.Format("Echo", s...)
|
2018-04-03 00:55:29 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func (j *jsonStructure) jsonStructure() jsonStructure {
|
|
|
|
return *j
|
|
|
|
}
|
|
|
|
|
2018-04-03 01:07:08 -04:00
|
|
|
func NewJsonStructure() *jsonStructure {
|
2018-04-03 00:55:29 -04:00
|
|
|
var j jsonStructure
|
|
|
|
return &j
|
|
|
|
}
|