diff --git a/.drone.yml b/.drone.yml index d6cfb4f3..6ae56fec 100644 --- a/.drone.yml +++ b/.drone.yml @@ -21,6 +21,8 @@ pipeline: - make lint - make fmt-check - make swagger-check + - make ineffassign-check + - make misspell-check - make build when: event: [ push, tag, pull_request ] diff --git a/Makefile b/Makefile index a0a7e470..e75fe109 100644 --- a/Makefile +++ b/Makefile @@ -170,3 +170,24 @@ swagger-validate: go get -u github.com/go-swagger/go-swagger/cmd/swagger; \ fi swagger validate ./public/swagger/swagger.v1.json + +.PHONY: misspell-check +misspell-check: + @hash misspell > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ + go get -u github.com/client9/misspell/cmd/misspell; \ + fi + for S in $(GOFILES); do misspell -error $$S || exit 1; done; + +.PHONY: ineffassign-check +ineffassign-check: + @hash ineffassign > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ + go get -u github.com/gordonklaus/ineffassign; \ + fi + for S in $(GOFILES); do ineffassign $$S || exit 1; done; + +.PHONY: gocyclo-check +gocyclo-check: + @hash gocyclo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ + go get github.com/fzipp/gocyclo; \ + fi + for S in $(GOFILES); do gocyclo -over 14 $$S || exit 1; done; \ No newline at end of file diff --git a/models/error.go b/models/error.go index 481ef5ab..89ee0245 100644 --- a/models/error.go +++ b/models/error.go @@ -348,7 +348,7 @@ func IsErrNamespaceNameCannotBeEmpty(err error) bool { } func (err ErrNamespaceNameCannotBeEmpty) Error() string { - return fmt.Sprintf("Namespace name cannot be emtpy [NamespaceID: %d, UserID: %d]", err.NamespaceID, err.UserID) + return fmt.Sprintf("Namespace name cannot be empty [NamespaceID: %d, UserID: %d]", err.NamespaceID, err.UserID) } // ErrNamespaceOwnerCannotBeEmpty represents an error, where a namespace owner is empty. @@ -364,7 +364,7 @@ func IsErrNamespaceOwnerCannotBeEmpty(err error) bool { } func (err ErrNamespaceOwnerCannotBeEmpty) Error() string { - return fmt.Sprintf("Namespace owner cannot be emtpy [NamespaceID: %d, UserID: %d]", err.NamespaceID, err.UserID) + return fmt.Sprintf("Namespace owner cannot be empty [NamespaceID: %d, UserID: %d]", err.NamespaceID, err.UserID) } // ErrNeedToBeNamespaceAdmin represents an error, where the user is not the admin of that namespace (used i.e. when deleting a namespace) diff --git a/models/unit_tests.go b/models/unit_tests.go index 00f73f89..206b5af1 100644 --- a/models/unit_tests.go +++ b/models/unit_tests.go @@ -39,7 +39,7 @@ func createTestEngine(fixturesDir string) error { return fmt.Errorf("sync database struct error: %v", err) } - // Show SQL-Queries if nessecary + // Show SQL-Queries if necessary if os.Getenv("UNIT_TESTS_VERBOSE") == "1" { x.ShowSQL(true) } diff --git a/routes/api/v1/list_by_namespace.go b/routes/api/v1/list_by_namespace.go index 8a32f836..8585b7ba 100644 --- a/routes/api/v1/list_by_namespace.go +++ b/routes/api/v1/list_by_namespace.go @@ -39,7 +39,7 @@ func GetListsByNamespaceID(c echo.Context) error { if models.IsErrUserDoesNotHaveAccessToNamespace(err) { return c.JSON(http.StatusForbidden, models.Message{"You don't have access to this namespace."}) } - return c.JSON(http.StatusInternalServerError, models.Message{"An error occured."}) + return c.JSON(http.StatusInternalServerError, models.Message{"An error occurred."}) } // Get the lists @@ -48,7 +48,7 @@ func GetListsByNamespaceID(c echo.Context) error { if models.IsErrNamespaceDoesNotExist(err) { return c.JSON(http.StatusNotFound, models.Message{"Namespace not found."}) } - return c.JSON(http.StatusInternalServerError, models.Message{"An error occured."}) + return c.JSON(http.StatusInternalServerError, models.Message{"An error occurred."}) } return c.JSON(http.StatusOK, lists) } diff --git a/routes/api/v1/user_list.go b/routes/api/v1/user_list.go index c165c783..8dec513d 100644 --- a/routes/api/v1/user_list.go +++ b/routes/api/v1/user_list.go @@ -32,7 +32,7 @@ func UserList(c echo.Context) error { users, err := models.ListUsers(s) if err != nil { models.Log.Error(err.Error()) - return echo.NewHTTPError(http.StatusInternalServerError, "An error occured.") + return echo.NewHTTPError(http.StatusInternalServerError, "An error occurred.") } // Obfuscate the mailadresses diff --git a/routes/api/v1/user_update_password.go b/routes/api/v1/user_update_password.go index ffffc1d4..47313be8 100644 --- a/routes/api/v1/user_update_password.go +++ b/routes/api/v1/user_update_password.go @@ -30,6 +30,9 @@ func UserChangePassword(c echo.Context) error { // Check if the user is itself userJWTinfo, err := models.GetCurrentUser(c) + if err != nil { + return c.JSON(http.StatusInternalServerError, models.Message{"Error getting current user."}) + } if userJWTinfo.ID != userID { return echo.ErrUnauthorized diff --git a/routes/crud/read_all.go b/routes/crud/read_all.go index 746c9e82..02b06d74 100644 --- a/routes/crud/read_all.go +++ b/routes/crud/read_all.go @@ -30,7 +30,7 @@ func (c *WebHandler) ReadAllWeb(ctx echo.Context) error { return echo.NewHTTPError(http.StatusNotFound, "This namespace does not exist.") } - return echo.NewHTTPError(http.StatusInternalServerError, "An error occured.") + return echo.NewHTTPError(http.StatusInternalServerError, "An error occurred.") } return ctx.JSON(http.StatusOK, lists) diff --git a/routes/crud/read_one.go b/routes/crud/read_one.go index c4f0d24a..652d2dd0 100644 --- a/routes/crud/read_one.go +++ b/routes/crud/read_one.go @@ -31,7 +31,7 @@ func (c *WebHandler) ReadOneWeb(ctx echo.Context) error { return echo.NewHTTPError(http.StatusNotFound) } - return echo.NewHTTPError(http.StatusInternalServerError, "An error occured.") + return echo.NewHTTPError(http.StatusInternalServerError, "An error occurred.") } // Check rights