func handlePkgsCreate(db datastore.Datastore) httprouter.Handle { return func(rw http.ResponseWriter, r *http.Request, _ httprouter.Params) { accept := acceptHeader(r) // process the multipart form filename, file, err := processFileUpload(r) if err != nil { respondError(rw, http.StatusBadRequest, accept, err) return } // save to datastore if err = db.AddPkg(filename, file); err != nil { respondError(rw, errStatus(err), accept, fmt.Errorf("Failed to save file: %v", err)) return } } }