Skip to content

Commit b44c749

Browse files
committed
fix: lots of little cleanups here & there
1 parent c8e5a57 commit b44c749

File tree

5 files changed

+57
-21
lines changed

5 files changed

+57
-21
lines changed

api/handlers/datasets.go

Lines changed: 42 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,17 @@ func (h *DatasetHandlers) DatasetHandler(w http.ResponseWriter, r *http.Request)
6161
}
6262
}
6363

64+
func (h *DatasetHandlers) InitDatasetHandler(w http.ResponseWriter, r *http.Request) {
65+
switch r.Method {
66+
case "OPTIONS":
67+
util.EmptyOkHandler(w, r)
68+
case "POST":
69+
h.initDatasetHandler(w, r)
70+
default:
71+
util.NotFoundHandler(w, r)
72+
}
73+
}
74+
6475
func (h *DatasetHandlers) StructuredDataHandler(w http.ResponseWriter, r *http.Request) {
6576
switch r.Method {
6677
case "OPTIONS":
@@ -134,7 +145,7 @@ func (h *DatasetHandlers) saveDatasetHandler(w http.ResponseWriter, r *http.Requ
134145
case "application/json":
135146
h.saveStructureHandler(w, r)
136147
default:
137-
h.initDatasetFileHandler(w, r)
148+
h.initDatasetHandler(w, r)
138149
}
139150
}
140151

@@ -178,21 +189,28 @@ func (h *DatasetHandlers) saveStructureHandler(w http.ResponseWriter, r *http.Re
178189
util.WriteResponse(w, res)
179190
}
180191

181-
func (h *DatasetHandlers) initDatasetFileHandler(w http.ResponseWriter, r *http.Request) {
182-
var f cafs.File
183-
infile, header, err := r.FormFile("file")
184-
if err != nil && err != http.ErrMissingFile {
185-
util.WriteErrResponse(w, http.StatusBadRequest, err)
186-
return
192+
func (h *DatasetHandlers) initDatasetHandler(w http.ResponseWriter, r *http.Request) {
193+
p := &core.InitDatasetParams{}
194+
if r.Header.Get("Content-Type") == "application/json" {
195+
json.NewDecoder(r.Body).Decode(p)
187196
} else {
188-
f = memfs.NewMemfileReader(header.Filename, infile)
189-
}
197+
var f cafs.File
198+
infile, header, err := r.FormFile("file")
199+
if err != nil && err != http.ErrMissingFile {
200+
util.WriteErrResponse(w, http.StatusBadRequest, err)
201+
return
202+
} else {
203+
f = memfs.NewMemfileReader(header.Filename, infile)
204+
}
190205

191-
p := &core.InitDatasetParams{
192-
Url: r.FormValue("url"),
193-
Name: r.FormValue("name"),
194-
Data: f,
206+
p = &core.InitDatasetParams{
207+
Url: r.FormValue("url"),
208+
Name: r.FormValue("name"),
209+
DataFilename: header.Filename,
210+
Data: f,
211+
}
195212
}
213+
196214
res := &repo.DatasetRef{}
197215
if err := h.InitDataset(p, res); err != nil {
198216
h.log.Infof("error initializing dataset: %s", err.Error())
@@ -254,9 +272,17 @@ func (h *DatasetHandlers) getStructuredDataHandler(w http.ResponseWriter, r *htt
254272
}
255273

256274
func (h *DatasetHandlers) addDatasetHandler(w http.ResponseWriter, r *http.Request) {
257-
p := &core.AddParams{
258-
Name: r.URL.Query().Get("name"),
259-
Hash: r.URL.Path[len("/add/"):],
275+
p := &core.AddParams{}
276+
if r.Header.Get("Content-Type") == "application/json" {
277+
if err := json.NewDecoder(r.Body).Decode(p); err != nil {
278+
util.WriteErrResponse(w, http.StatusBadRequest, err)
279+
return
280+
}
281+
} else {
282+
p = &core.AddParams{
283+
Name: r.URL.Query().Get("name"),
284+
Hash: r.URL.Path[len("/add/"):],
285+
}
260286
}
261287

262288
res := &repo.DatasetRef{}

api/server.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ func NewServerRoutes(s *Server) *http.ServeMux {
138138
m.Handle("/datasets", s.middleware(dsh.DatasetsHandler))
139139
m.Handle("/datasets/", s.middleware(dsh.DatasetHandler))
140140
m.Handle("/add/", s.middleware(dsh.AddDatasetHandler))
141+
m.Handle("/init/", s.middleware(dsh.InitDatasetHandler))
141142
m.Handle("/data/ipfs/", s.middleware(dsh.StructuredDataHandler))
142143
m.Handle("/download/", s.middleware(dsh.ZipDatasetHandler))
143144

cmd/export.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ package cmd
22

33
import (
44
"fmt"
5-
"github.com/ipfs/go-datastore"
65
"io"
76
"os"
87

8+
"github.com/ipfs/go-datastore"
99
"github.com/qri-io/dataset/dsfs"
1010
"github.com/qri-io/dataset/dsutil"
1111
"github.com/qri-io/qri/core"
@@ -31,7 +31,6 @@ var exportCmd = &cobra.Command{
3131

3232
r := GetRepo(false)
3333
store := GetIpfsFilestore(false)
34-
3534
req := core.NewDatasetRequests(store, r)
3635

3736
p := &core.GetDatasetParams{
@@ -44,8 +43,6 @@ var exportCmd = &cobra.Command{
4443

4544
ds := res.Dataset
4645

47-
// ds, err := FindDataset(r, store, args[0])
48-
4946
if cmd.Flag("data-only").Value.String() == "true" {
5047
src, err := dsfs.LoadData(store, ds)
5148
ExitIfErr(err)

core/dataset_update.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,20 @@ func (r *DatasetRequests) Update(commit *Commit, ref *repo.DatasetRef) error {
7171
return fmt.Errorf("error saving dataset: %s", err.Error())
7272
}
7373

74+
name, err := r.repo.GetName(commit.Prev)
75+
if err != nil {
76+
return err
77+
}
78+
79+
if err := r.repo.DeleteName(name); err != nil {
80+
return err
81+
}
82+
if err := r.repo.PutName(name, dspath); err != nil {
83+
return err
84+
}
85+
7486
*ref = repo.DatasetRef{
87+
Name: name,
7588
Path: dspath,
7689
Dataset: ds,
7790
}

repo/fs/namestore.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ func (n Namestore) Namespace(limit, offset int) ([]*repo.DatasetRef, error) {
110110

111111
i := -1
112112
added := 0
113-
limit = len(names)
114113
res := make([]*repo.DatasetRef, limit)
115114
for name, path := range names {
116115
i++

0 commit comments

Comments
 (0)