From 27479df8c7ae45ab7f046df0e1fdfb5fecb26501 Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Mon, 8 Oct 2018 15:34:12 -0600 Subject: [PATCH] Rename FetchProcessSave and wrap all func in process --- fetch/fetch.go | 23 ++++--------------- fetch/fetch_test.go | 55 +++++---------------------------------------- 2 files changed, 10 insertions(+), 68 deletions(-) diff --git a/fetch/fetch.go b/fetch/fetch.go index 0272d6b..e0df643 100644 --- a/fetch/fetch.go +++ b/fetch/fetch.go @@ -5,27 +5,19 @@ import ( "net/http" ) -type Savable interface { - Namespace() string - Key() string - Value() []byte -} - type Fetch struct { - process func([]byte) ([]Savable, error) - save func(string, string, []byte) error + process func(string, []byte) error client *http.Client } -func New(process func([]byte) ([]Savable, error), save func(string, string, []byte) error) (*Fetch, error) { +func New(process func(string, []byte) error) (*Fetch, error) { return &Fetch{ - save: save, process: process, client: &http.Client{}, }, nil } -func (fetcher *Fetch) FetchProcessSave(url string) error { +func (fetcher *Fetch) FetchProcess(url string) error { req, err := http.NewRequest("GET", url, nil) if err != nil { return err @@ -39,15 +31,8 @@ func (fetcher *Fetch) FetchProcessSave(url string) error { if err != nil { return err } - items, err := fetcher.process(b) - if err != nil { + if err := fetcher.process(url, b); err != nil { return err } - for i := range items { - err := fetcher.save(items[i].Namespace(), items[i].Key(), items[i].Value()) - if err != nil { - return err - } - } return nil } diff --git a/fetch/fetch_test.go b/fetch/fetch_test.go index e672d1d..ee12216 100644 --- a/fetch/fetch_test.go +++ b/fetch/fetch_test.go @@ -7,75 +7,32 @@ import ( "testing" ) -type mockSavable struct { - ns string - k string - v []byte -} - -func (ms *mockSavable) Namespace() string { return ms.ns } -func (ms *mockSavable) Key() string { return ms.k } -func (ms *mockSavable) Value() []byte { return ms.v } - func Test_Fetch(t *testing.T) { s := mockRemote() defer s.Close() cases := []struct { - process func([]byte) ([]Savable, error) - save func(string, string, []byte) error + process func(string, []byte) error err error }{ { - process: func([]byte) ([]Savable, error) { - return []Savable{&mockSavable{ - ns: "hello", - k: "world", - v: []byte("!"), - }}, nil - }, - save: func(string, string, []byte) error { + process: func(string, []byte) error { return nil }, err: nil, }, { - process: func([]byte) ([]Savable, error) { - return []Savable{&mockSavable{ - ns: "hello", - k: "world", - v: []byte("!"), - }}, nil - }, - save: func(string, string, []byte) error { - return errors.New("this one") - }, - err: errors.New("this one"), - }, - { - process: func([]byte) ([]Savable, error) { - return []Savable{}, errors.New("that one") - }, - save: func(string, string, []byte) error { - return nil + process: func(string, []byte) error { + return errors.New("that one") }, err: errors.New("that one"), }, - { - process: func([]byte) ([]Savable, error) { - return []Savable{}, nil - }, - save: func(string, string, []byte) error { - return nil - }, - err: nil, - }, } for _, c := range cases { - f, err := New(c.process, c.save) + f, err := New(c.process) if err != nil && err != c.err { t.Errorf("cannot create new fetcher: %v", err) } else if err == nil { - if err := f.FetchProcessSave(s.URL); err != nil && err.Error() != c.err.Error() { + if err := f.FetchProcess(s.URL); err != nil && err.Error() != c.err.Error() { t.Errorf("unexpected error: %v, expected %v", err, c.err) } }