|
@@ -24,6 +24,7 @@ type Rest struct {
|
|
|
app rest.IApplication
|
|
|
core any
|
|
|
responseHeaders map[string]string
|
|
|
+ Debug bool
|
|
|
}
|
|
|
|
|
|
func (s *Rest) App() rest.IApplication {
|
|
@@ -84,6 +85,9 @@ func (s *Rest) handle(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
|
// Если это многокомпонентный запрос, обрабатываем файлы
|
|
|
if strings.Index(r.Header.Get("Content-Type"), "multipart/form-data") == 0 {
|
|
|
+ if s.Debug {
|
|
|
+ log.Println("request multipart")
|
|
|
+ }
|
|
|
err := r.ParseMultipartForm(32 << 20) // max memory 32MB, после этого файлы будут сохранены во временных файлах
|
|
|
log.Println(err)
|
|
|
if err != nil {
|
|
@@ -94,12 +98,18 @@ func (s *Rest) handle(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
|
data, check := multiPartForm.Value["data"]
|
|
|
if check {
|
|
|
+ if s.Debug {
|
|
|
+ log.Println("data accepted")
|
|
|
+ }
|
|
|
rData := rr.RData()
|
|
|
err := json.NewDecoder(bytes.NewBuffer([]byte(data[0]))).Decode(&rData)
|
|
|
if err != nil {
|
|
|
responseError(w, rest.ErrorMessage("ErrMultipartDataParse", err.Error()), 500)
|
|
|
return
|
|
|
}
|
|
|
+ if s.Debug {
|
|
|
+ rData.LogPretty()
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
files := rr.RFiles()
|
|
@@ -125,12 +135,18 @@ func (s *Rest) handle(w http.ResponseWriter, r *http.Request) {
|
|
|
}
|
|
|
defer rr.RClose()
|
|
|
} else {
|
|
|
+ if s.Debug {
|
|
|
+ log.Println("request json")
|
|
|
+ }
|
|
|
data := rr.RData()
|
|
|
err := json.NewDecoder(r.Body).Decode(&data)
|
|
|
if err != nil {
|
|
|
responseError(w, rest.ErrorMessage("ErrDataParse", err.Error()), 500)
|
|
|
return
|
|
|
}
|
|
|
+ if s.Debug {
|
|
|
+ data.LogPretty()
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// get command
|