Files
tecamino-json_data/models/response.go
Adrian Zürcher 9d4d417856 fix typo
2025-06-19 18:49:35 +02:00

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
}