85 lines
2.3 KiB
Go
85 lines
2.3 KiB
Go
package models
|
|
|
|
// Response model
|
|
type Response struct {
|
|
Id string `json:"id,omitempty"` // identification for requesting client
|
|
Error bool `json:"error,omitempty"` // indicated response is a error
|
|
Message string `json:"message,omitempty"` // response message
|
|
Get []Get `json:"get,omitempty"` // collection of requested Gets
|
|
Set []Set `json:"set,omitempty"` // collection of requested Sets
|
|
Subscribe []Subscription `json:"subscribe,omitempty"` // collection of requested Subscriptions
|
|
Unsubscribe []Subscription `json:"unsubscribe,omitempty"` // collection of requested Unscubscriptions
|
|
Publish []Publish `json:"publish,omitempty"` // collection of published data
|
|
}
|
|
|
|
// Returns a new json_data Response model
|
|
func NewResponse() *Response {
|
|
return &Response{}
|
|
}
|
|
|
|
// Set response as error
|
|
func (r *Response) SetError() {
|
|
r.Error = true
|
|
}
|
|
|
|
// Set response message
|
|
func (r *Response) SetMessage(msg string) {
|
|
r.Message = msg
|
|
}
|
|
|
|
// Add new get to response collection
|
|
func (r *Response) AddGet(get Get) {
|
|
get.Query = nil
|
|
r.Get = append(r.Get, get)
|
|
}
|
|
|
|
// Add new set to response collection
|
|
func (r *Response) AddSet(set Set) {
|
|
r.Set = append(r.Set, set)
|
|
}
|
|
|
|
// Add new subscription to response collection
|
|
func (r *Response) AddSubscription(sub Subscription) {
|
|
r.Subscribe = append(r.Subscribe, sub)
|
|
}
|
|
|
|
// Add new unsubscribe to response collection
|
|
func (r *Response) AddUnsubscription(sub Subscription) {
|
|
r.Unsubscribe = append(r.Unsubscribe, sub)
|
|
}
|
|
|
|
// Add new data publish to response
|
|
func (r *Response) AddPublish(pub Publish) {
|
|
r.Publish = append(r.Publish, pub)
|
|
}
|
|
|
|
// Check if response has a error
|
|
func (r *Response) IsValid() bool {
|
|
return !r.Error
|
|
}
|
|
|
|
// Returns slice of get collection
|
|
func (r *Response) FetchGets() []Get {
|
|
return r.Get
|
|
}
|
|
|
|
// Returns slice of set collection
|
|
func (r *Response) FetchSets() []Set {
|
|
return r.Set
|
|
}
|
|
|
|
// Returns slice of subscriptions collection
|
|
func (r *Response) FetchSubscribes() []Subscription {
|
|
return r.Subscribe
|
|
}
|
|
|
|
// Returns slice of unsubscriptions collection
|
|
func (r *Response) FetchUnubscribes() []Subscription {
|
|
return r.Unsubscribe
|
|
}
|
|
|
|
// Returns slice of published data
|
|
func (r *Response) FetchPublish() []Publish {
|
|
return r.Publish
|
|
}
|