// This package parse a http request from datatables (jQuery plugin) to a friendly structure // More details in https://github.com/saulortega/datatables // import "github.com/saulortega/datatables" package datatables import ( "encoding/json" "errors" "net/http" ) type Response struct { Draw int `json:"draw"` RecordsTotal int `json:"recordsTotal"` RecordsFiltered int `json:"recordsFiltered"` Data interface{} `json:"data"` Error error `json:"error,omitempty"` } func (r *Response) Check() error { var err error if r.Data == nil || r.RecordsFiltered == 0 { r.Data = []string{} //VacĂ­o, no nulo } if r.RecordsFiltered > r.RecordsTotal { err = errors.New("wrong filtered or total records") } return err } func (r *Response) WriteResponseOnSuccess(w http.ResponseWriter) error { err := r.Check() if err != nil { return err } RJSON, err := json.Marshal(r) if err != nil { return err } w.WriteHeader(http.StatusOK) w.Write(RJSON) return nil } func (r *Response) WriteResponse(w http.ResponseWriter) error { err := r.WriteResponseOnSuccess(w) if err != nil { w.WriteHeader(http.StatusInternalServerError) } return err }