1
0

Add Golangci Lint (#676)

Increase golangci timeout

Fix installing golangci-lint in ci

Remove mage targets replaced by golangci

Run golint in ci

Add goheader linter

Enable & fix more linters

Fix lint issues

Add mage target to automagically fix issues found by golangci

golangci-lint run --fix

Add golangci config

Add golangci mage target

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/676
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
This commit is contained in:
konrad
2020-10-11 20:10:03 +00:00
parent d56a611be7
commit 699d3d6060
143 changed files with 630 additions and 426 deletions

View File

@ -17,14 +17,15 @@
package v1
import (
"net/http"
"time"
"code.vikunja.io/api/pkg/config"
"code.vikunja.io/api/pkg/models"
"code.vikunja.io/api/pkg/user"
"code.vikunja.io/web"
"github.com/dgrijalva/jwt-go"
"github.com/labstack/echo/v4"
"net/http"
"time"
)
// These are all valid auth types

View File

@ -29,15 +29,16 @@ import (
"code.vikunja.io/web/handler"
"bytes"
"github.com/disintegration/imaging"
"github.com/gabriel-vasile/mimetype"
"github.com/labstack/echo/v4"
"image"
"image/png"
"io"
"net/http"
"strconv"
"strings"
"github.com/disintegration/imaging"
"github.com/gabriel-vasile/mimetype"
"github.com/labstack/echo/v4"
)
// GetAvatar returns a user's avatar

View File

@ -19,10 +19,11 @@
package v1
import (
"net/http"
"code.vikunja.io/api/pkg/log"
"github.com/labstack/echo/v4"
"github.com/swaggo/swag"
"net/http"
)
// DocsJSON serves swagger doc json specs

View File

@ -17,12 +17,13 @@
package v1
import (
"net/http"
"code.vikunja.io/api/pkg/config"
"code.vikunja.io/api/pkg/modules/migration/todoist"
"code.vikunja.io/api/pkg/modules/migration/wunderlist"
"code.vikunja.io/api/pkg/version"
"github.com/labstack/echo/v4"
"net/http"
)
type vikunjaInfos struct {

View File

@ -17,10 +17,11 @@
package v1
import (
"net/http"
"code.vikunja.io/api/pkg/models"
"code.vikunja.io/web/handler"
"github.com/labstack/echo/v4"
"net/http"
)
// LinkShareToken represents a link share auth token with extra infos about the actual link share

View File

@ -17,12 +17,13 @@
package v1
import (
"net/http"
"strconv"
"code.vikunja.io/api/pkg/models"
"code.vikunja.io/api/pkg/user"
"code.vikunja.io/web/handler"
"github.com/labstack/echo/v4"
"net/http"
"strconv"
)
// GetListsByNamespaceID is the web handler to delete a namespace

View File

@ -17,12 +17,13 @@
package v1
import (
"net/http"
"code.vikunja.io/api/pkg/models"
user2 "code.vikunja.io/api/pkg/user"
"code.vikunja.io/web/handler"
"github.com/dgrijalva/jwt-go"
"github.com/labstack/echo/v4"
"net/http"
)
// Token represents an authentification token
@ -45,7 +46,7 @@ type Token struct {
func Login(c echo.Context) error {
u := user2.Login{}
if err := c.Bind(&u); err != nil {
return c.JSON(http.StatusBadRequest, models.Message{"Please provide a username and password."})
return c.JSON(http.StatusBadRequest, models.Message{Message: "Please provide a username and password."})
}
// Check user

View File

@ -17,10 +17,11 @@
package v1
import (
"net/http"
"code.vikunja.io/api/pkg/models"
"code.vikunja.io/web/handler"
"github.com/labstack/echo/v4"
"net/http"
)
// UploadTaskAttachment handles everything needed for the upload of a task attachment

View File

@ -17,8 +17,9 @@
package v1
import (
"code.vikunja.io/api/pkg/models"
"fmt"
"code.vikunja.io/api/pkg/models"
"github.com/dgrijalva/jwt-go"
"github.com/labstack/echo/v4"
)
@ -30,5 +31,5 @@ func CheckToken(c echo.Context) error {
fmt.Println(user.Valid)
return c.JSON(418, models.Message{"🍵"})
return c.JSON(418, models.Message{Message: "🍵"})
}

View File

@ -17,11 +17,12 @@
package v1
import (
"net/http"
"code.vikunja.io/api/pkg/models"
"code.vikunja.io/api/pkg/user"
"code.vikunja.io/web/handler"
"github.com/labstack/echo/v4"
"net/http"
)
// UserConfirmEmail is the handler to confirm a user email
@ -47,5 +48,5 @@ func UserConfirmEmail(c echo.Context) error {
return handler.HandleHTTPError(err, c)
}
return c.JSON(http.StatusOK, models.Message{"The email was confirmed successfully."})
return c.JSON(http.StatusOK, models.Message{Message: "The email was confirmed successfully."})
}

View File

@ -17,12 +17,13 @@
package v1
import (
"net/http"
"strconv"
"code.vikunja.io/api/pkg/models"
"code.vikunja.io/api/pkg/user"
"code.vikunja.io/web/handler"
"github.com/labstack/echo/v4"
"net/http"
"strconv"
)
// UserList gets all information about a user

View File

@ -17,11 +17,12 @@
package v1
import (
"net/http"
"code.vikunja.io/api/pkg/models"
"code.vikunja.io/api/pkg/user"
"code.vikunja.io/web/handler"
"github.com/labstack/echo/v4"
"net/http"
)
// UserResetPassword is the handler to change a users password
@ -47,7 +48,7 @@ func UserResetPassword(c echo.Context) error {
return handler.HandleHTTPError(err, c)
}
return c.JSON(http.StatusOK, models.Message{"The password was updated successfully."})
return c.JSON(http.StatusOK, models.Message{Message: "The password was updated successfully."})
}
// UserRequestResetPasswordToken is the handler to change a users password
@ -77,5 +78,5 @@ func UserRequestResetPasswordToken(c echo.Context) error {
return handler.HandleHTTPError(err, c)
}
return c.JSON(http.StatusOK, models.Message{"Token was sent."})
return c.JSON(http.StatusOK, models.Message{Message: "Token was sent."})
}

View File

@ -17,12 +17,13 @@
package v1
import (
"net/http"
"code.vikunja.io/api/pkg/config"
"code.vikunja.io/api/pkg/models"
"code.vikunja.io/api/pkg/user"
"code.vikunja.io/web/handler"
"github.com/labstack/echo/v4"
"net/http"
)
// RegisterUser is the register handler
@ -43,10 +44,10 @@ func RegisterUser(c echo.Context) error {
// Check for Request Content
var datUser *user.APIUserPassword
if err := c.Bind(&datUser); err != nil {
return c.JSON(http.StatusBadRequest, models.Message{"No or invalid user model provided."})
return c.JSON(http.StatusBadRequest, models.Message{Message: "No or invalid user model provided."})
}
if datUser == nil {
return c.JSON(http.StatusBadRequest, models.Message{"No or invalid user model provided."})
return c.JSON(http.StatusBadRequest, models.Message{Message: "No or invalid user model provided."})
}
// Insert the user

View File

@ -17,11 +17,12 @@
package v1
import (
"net/http"
"code.vikunja.io/api/pkg/models"
user2 "code.vikunja.io/api/pkg/user"
"code.vikunja.io/web/handler"
"github.com/labstack/echo/v4"
"net/http"
)
// UserAvatarProvider holds the user avatar provider type

View File

@ -17,10 +17,11 @@
package v1
import (
"net/http"
user2 "code.vikunja.io/api/pkg/user"
"code.vikunja.io/web/handler"
"github.com/labstack/echo/v4"
"net/http"
)
// UserShow gets all informations about the current user

View File

@ -18,14 +18,15 @@ package v1
import (
"bytes"
"fmt"
"image/jpeg"
"net/http"
"code.vikunja.io/api/pkg/log"
"code.vikunja.io/api/pkg/models"
"code.vikunja.io/api/pkg/user"
"code.vikunja.io/web/handler"
"fmt"
"github.com/labstack/echo/v4"
"image/jpeg"
"net/http"
)
// UserTOTPEnroll is the handler to enroll a user into totp

View File

@ -17,13 +17,14 @@
package v1
import (
"fmt"
"net/http"
"code.vikunja.io/api/pkg/log"
"code.vikunja.io/api/pkg/models"
"code.vikunja.io/api/pkg/user"
"code.vikunja.io/web/handler"
"fmt"
"github.com/labstack/echo/v4"
"net/http"
)
// UpdateUserEmail is the handler to let a user update their email address.

View File

@ -17,11 +17,12 @@
package v1
import (
"net/http"
"code.vikunja.io/api/pkg/models"
"code.vikunja.io/api/pkg/user"
"code.vikunja.io/web/handler"
"github.com/labstack/echo/v4"
"net/http"
)
// UserPassword holds a user password. Used to update it.
@ -70,5 +71,5 @@ func UserChangePassword(c echo.Context) error {
return handler.HandleHTTPError(err, c)
}
return c.JSON(http.StatusOK, models.Message{"The password was updated successfully."})
return c.JSON(http.StatusOK, models.Message{Message: "The password was updated successfully."})
}

View File

@ -18,18 +18,19 @@ package caldav
import (
"bytes"
"code.vikunja.io/api/pkg/log"
"code.vikunja.io/api/pkg/models"
"code.vikunja.io/api/pkg/user"
"code.vikunja.io/web/handler"
"fmt"
"github.com/labstack/echo/v4"
"github.com/samedi/caldav-go"
"github.com/samedi/caldav-go/lib"
"io/ioutil"
"reflect"
"strconv"
"strings"
"code.vikunja.io/api/pkg/log"
"code.vikunja.io/api/pkg/models"
"code.vikunja.io/api/pkg/user"
"code.vikunja.io/web/handler"
"github.com/labstack/echo/v4"
"github.com/samedi/caldav-go"
"github.com/samedi/caldav-go/lib"
)
func getBasicAuthUserFromContext(c echo.Context) (*user.User, error) {

View File

@ -17,14 +17,15 @@
package caldav
import (
"strconv"
"strings"
"time"
"code.vikunja.io/api/pkg/log"
"code.vikunja.io/api/pkg/models"
user2 "code.vikunja.io/api/pkg/user"
"github.com/samedi/caldav-go/data"
"github.com/samedi/caldav-go/errs"
"strconv"
"strings"
"time"
)
// DavBasePath is the base url path
@ -119,8 +120,8 @@ func (vcls *VikunjaCaldavListStorage) GetResourcesByList(rpaths []string) ([]dat
var uids []string
for _, path := range rpaths {
parts := strings.Split(path, "/")
uid := []rune(parts[4]) // The 4th part is the id with ".ics" suffix
endlen := len(uid) - 4 // ".ics" are 4 bytes
uid := []rune(parts[4]) // The 4th part is the id with ".ics" suffix
endlen := len(uid) - len(".ics") // ".ics" are 4 bytes
uids = append(uids, string(uid[:endlen]))
}
@ -174,7 +175,7 @@ func (vcls *VikunjaCaldavListStorage) GetResourcesByFilters(rpath string, filter
r.Name = vcls.list.Title
return []data.Resource{r}, nil
// For now, filtering is disabled.
//return vcls.GetResources(rpath, false)
// return vcls.GetResources(rpath, false)
}
func getTaskURL(task *models.Task) string {
@ -336,9 +337,9 @@ func (vlra *VikunjaListResourceAdapter) CalculateEtag() string {
// And therefore, updating the task fails since these etags don't match.
// To fix that, we use this extra field to determine if we're currently updating a task and return the
// etag of the list instead.
//if vlra.list != nil {
// return `"` + strconv.FormatInt(vlra.list.ID, 10) + `-` + strconv.FormatInt(vlra.list.Updated, 10) + `"`
//}
// if vlra.list != nil {
// return `"` + strconv.FormatInt(vlra.list.ID, 10) + `-` + strconv.FormatInt(vlra.list.Updated, 10) + `"`
// }
// Return the etag of a task if we have one
if vlra.task != nil {

View File

@ -17,12 +17,13 @@
package caldav
import (
"strconv"
"time"
"code.vikunja.io/api/pkg/caldav"
"code.vikunja.io/api/pkg/log"
"code.vikunja.io/api/pkg/models"
"github.com/laurent22/ical-go"
"strconv"
"time"
)
func getCaldavTodosForTasks(list *models.List) string {

View File

@ -18,6 +18,10 @@
package routes
import (
"net/http"
"strconv"
"time"
"code.vikunja.io/api/pkg/config"
"code.vikunja.io/api/pkg/log"
"code.vikunja.io/api/pkg/red"
@ -26,9 +30,6 @@ import (
"github.com/ulule/limiter/v3"
"github.com/ulule/limiter/v3/drivers/store/memory"
"github.com/ulule/limiter/v3/drivers/store/redis"
"net/http"
"strconv"
"time"
)
// RateLimit is the rate limit middleware

View File

@ -47,6 +47,9 @@
package routes
import (
"strings"
"time"
"code.vikunja.io/api/pkg/config"
"code.vikunja.io/api/pkg/log"
"code.vikunja.io/api/pkg/models"
@ -71,8 +74,6 @@ import (
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware"
elog "github.com/labstack/gommon/log"
"strings"
"time"
)
// CustomValidator is a dummy struct to use govalidator with echo