diff --git a/pkg/server/controllers/books.go b/pkg/server/controllers/books.go index 8b81faac..5a937718 100644 --- a/pkg/server/controllers/books.go +++ b/pkg/server/controllers/books.go @@ -149,8 +149,8 @@ func (b *Books) create(r *http.Request) (database.Book, error) { return book, nil } -// createBookResp is the response from create book api -type createBookResp struct { +// CreateBookResp is the response from create book api +type CreateBookResp struct { Book presenters.Book `json:"book"` } @@ -162,7 +162,7 @@ func (b *Books) V3Create(w http.ResponseWriter, r *http.Request) { return } - resp := createBookResp{ + resp := CreateBookResp{ Book: presenters.PresentBook(result), } respondJSON(w, http.StatusCreated, resp) diff --git a/pkg/server/controllers/books_test.go b/pkg/server/controllers/books_test.go index d60db1e5..5c177f70 100644 --- a/pkg/server/controllers/books_test.go +++ b/pkg/server/controllers/books_test.go @@ -325,11 +325,11 @@ func TestCreateBook(t *testing.T) { assert.Equal(t, bookRecord.USN, maxUSN, "book user_id mismatch") assert.Equal(t, userRecord.MaxUSN, maxUSN, "user max_usn mismatch") - var got createBookResp + var got CreateBookResp if err := json.NewDecoder(res.Body).Decode(&got); err != nil { t.Fatal(errors.Wrap(err, "decoding")) } - expected := createBookResp{ + expected := CreateBookResp{ Book: presenters.Book{ UUID: bookRecord.UUID, USN: bookRecord.USN, diff --git a/pkg/server/controllers/sync.go b/pkg/server/controllers/sync.go index 5b90d2f8..76e7f742 100644 --- a/pkg/server/controllers/sync.go +++ b/pkg/server/controllers/sync.go @@ -26,8 +26,8 @@ import ( "strconv" "time" + "github.com/dnote/dnote/pkg/server/context" "github.com/dnote/dnote/pkg/server/database" - "github.com/dnote/dnote/pkg/server/helpers" "github.com/dnote/dnote/pkg/server/log" "github.com/dnote/dnote/pkg/server/middleware" "github.com/pkg/errors" @@ -263,8 +263,8 @@ type GetSyncFragmentResp struct { // GetSyncFragment responds with a sync fragment func (s *Sync) GetSyncFragment(w http.ResponseWriter, r *http.Request) { - user, ok := r.Context().Value(helpers.KeyUser).(database.User) - if !ok { + user := context.User(r.Context()) + if user == nil { middleware.DoError(w, "No authenticated user found", nil, http.StatusInternalServerError) return } @@ -296,8 +296,8 @@ type GetSyncStateResp struct { // GetSyncState responds with a sync fragment func (s *Sync) GetSyncState(w http.ResponseWriter, r *http.Request) { - user, ok := r.Context().Value(helpers.KeyUser).(database.User) - if !ok { + user := context.User(r.Context()) + if user == nil { middleware.DoError(w, "No authenticated user found", nil, http.StatusInternalServerError) return } diff --git a/pkg/server/controllers/testutils.go b/pkg/server/controllers/testutils.go index 012031b1..6b551d86 100644 --- a/pkg/server/controllers/testutils.go +++ b/pkg/server/controllers/testutils.go @@ -29,6 +29,15 @@ import ( // MustNewServer is a test utility function to initialize a new server // with the given app paratmers func MustNewServer(t *testing.T, appParams *app.App) *httptest.Server { + server, err := NewServer(appParams) + if err != nil { + t.Fatal(errors.Wrap(err, "initializing router")) + } + + return server +} + +func NewServer(appParams *app.App) (*httptest.Server, error) { a := app.NewTest(appParams) ctl := New(&a) @@ -39,10 +48,10 @@ func MustNewServer(t *testing.T, appParams *app.App) *httptest.Server { } r, err := NewRouter(&a, rc) if err != nil { - t.Fatal(errors.Wrap(err, "initializing router")) + return nil, errors.Wrap(err, "initializing router") } server := httptest.NewServer(r) - return server + return server, nil } diff --git a/pkg/server/middleware/logging.go b/pkg/server/middleware/logging.go index f0bf15c3..85bfbf32 100644 --- a/pkg/server/middleware/logging.go +++ b/pkg/server/middleware/logging.go @@ -40,7 +40,7 @@ func (w *logResponseWriter) WriteHeader(code int) { } // logging is a logging middleware -func logging(inner http.Handler) http.HandlerFunc { +func Logging(inner http.Handler) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { start := time.Now() diff --git a/pkg/server/middleware/middleware.go b/pkg/server/middleware/middleware.go index dc6bec50..44f6377a 100644 --- a/pkg/server/middleware/middleware.go +++ b/pkg/server/middleware/middleware.go @@ -69,7 +69,7 @@ func APIMw(h http.Handler, app *app.App, rateLimit bool) http.Handler { func Global(h http.Handler) http.Handler { ret := h - ret = logging(ret) + ret = Logging(ret) ret = methodOverride(ret) return ret diff --git a/test/cli/test-cli b/test/cli/test-cli new file mode 100755 index 00000000..00c04ed1 Binary files /dev/null and b/test/cli/test-cli differ