mirror of
https://github.com/go-i2p/go-i2pcontrol.git
synced 2025-07-13 01:59:43 -04:00
51 lines
1.0 KiB
Go
51 lines
1.0 KiB
Go
package i2pcontrol
|
|
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
type jsonStructure struct {
|
|
echo string
|
|
}
|
|
|
|
func (j *jsonStructure) Id() string {
|
|
rstring := randomString(10)
|
|
return rstring
|
|
}
|
|
|
|
func (j *jsonStructure) Format(m, e string, s ...string) string {
|
|
rstring := "{\n"
|
|
rstring += " method: \"" + m +"\"\n"
|
|
rstring += " jsonrpc: \"2.0\"\n"
|
|
rstring += " id: \"" + j.Id() + "\"\n"
|
|
rstring += " params: \""
|
|
var params string
|
|
for index, value := range s {
|
|
if index != 0 && index%2 == 0 {
|
|
params += " " + s[index-1] + ": \"" + value + "\""
|
|
}
|
|
}
|
|
p := strings.TrimRight(params, " ")
|
|
rstring += p + "\"\n"
|
|
rstring += "}\n"
|
|
return rstring
|
|
}
|
|
|
|
func (j *jsonStructure) Authenticate(s ...string) string{
|
|
return j.Format("echo", "Authenticate", s...)
|
|
}
|
|
|
|
func (j *jsonStructure) Echo(s ...string) string{
|
|
return j.Format("echo", "Echo", s...)
|
|
}
|
|
|
|
func (j *jsonStructure) jsonStructure() jsonStructure {
|
|
return *j
|
|
}
|
|
|
|
func NewJsonStructure() *jsonStructure {
|
|
var j jsonStructure
|
|
return &j
|
|
}
|