1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package ami
- import (
- "fmt"
- "git.ali33.ru/fcg-xvii/go-tools/json"
- )
- func InitRequest(action string) Request {
- return Request{
- ActionData: ActionData{
- "Action": action,
- },
- }
- }
- type Request struct {
- ActionData
- Variables json.Map
- chanResponse chan Response
- sended bool
- }
- func (s *Request) SetParam(key, value string) {
- if len(value) > 0 {
- s.ActionData[key] = value
- }
- }
- func (s *Request) SetVariable(key, value string) {
- if s.Variables == nil {
- s.Variables = json.NewMap()
- }
- s.Variables[key] = value
- }
- func (s *Request) SetVariables(m json.Map) {
- if s.Variables == nil {
- s.Variables = json.NewMap()
- }
- for key, val := range m {
- s.Variables[key] = val
- }
- }
- func (s *Request) raw() []byte {
- if len(s.Variables) > 0 {
- vars, count := "", 0
- for key, val := range s.Variables {
- vars += fmt.Sprintf("%v=%v", key, val)
- if count < len(s.Variables)-1 {
- vars += "," // todo 1.5 or lower splitter is '|'
- }
- count++
- }
- s.ActionData["Variable"] = vars
- }
- return s.ActionData.raw()
- }
|