func (h *handler) readDocument() (db.Body, error) { contentType, attrs, _ := mime.ParseMediaType(h.rq.Header.Get("Content-Type")) switch contentType { case "", "application/json": return h.readJSON() case "multipart/related": if DebugMultipart { raw, err := ioutil.ReadAll(h.rq.Body) if err != nil { return nil, err } reader := multipart.NewReader(bytes.NewReader(raw), attrs["boundary"]) body, err := db.ReadMultipartDocument(reader) if err != nil { ioutil.WriteFile("GatewayPUT.mime", raw, 0600) base.Warn("Error reading MIME data: copied to file GatewayPUT.mime") } return body, err } else { reader := multipart.NewReader(h.rq.Body, attrs["boundary"]) return db.ReadMultipartDocument(reader) } } return nil, &base.HTTPError{http.StatusUnsupportedMediaType, "Invalid content type " + contentType} }
func (h *handler) readDocument() (db.Body, error) { contentType, attrs, _ := mime.ParseMediaType(h.rq.Header.Get("Content-Type")) switch contentType { case "", "application/json": return h.readJSON() case "multipart/related": reader := multipart.NewReader(h.rq.Body, attrs["boundary"]) return db.ReadMultipartDocument(reader) } return nil, &base.HTTPError{http.StatusUnsupportedMediaType, "Invalid content type " + contentType} }