Add linter and a little bit more tests
All checks were successful
ci/woodpecker/push/build Pipeline was successful
All checks were successful
ci/woodpecker/push/build Pipeline was successful
Signed-off-by: Nikolai Rodionov <iam@allanger.xyz>
This commit is contained in:
17
.golangci.yml
Normal file
17
.golangci.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
version: "2"
|
||||
run:
|
||||
modules-download-mode: readonly
|
||||
linters:
|
||||
exclusions:
|
||||
generated: lax
|
||||
presets:
|
||||
- comments
|
||||
- common-false-positives
|
||||
- legacy
|
||||
- std-error-handling
|
||||
paths:
|
||||
- .*_test.go
|
||||
- api
|
||||
- third_party$
|
||||
- builtin$
|
||||
- examples$
|
||||
62
Taskfile.yml
62
Taskfile.yml
@@ -6,6 +6,10 @@ vars:
|
||||
LOCALBIN:
|
||||
sh: echo "$(pwd)/bin"
|
||||
MIGRATE: "{{.LOCALBIN}}/migrate"
|
||||
GOFUMPT: "{{.LOCALBIN}}/gofumpt"
|
||||
GOLANGCI_LINT: "{{.LOCALBIN}}/golangci-lint"
|
||||
# Tool versions
|
||||
GOLANGCI_LINT_VERSION: v2.8.0
|
||||
|
||||
tasks:
|
||||
build:
|
||||
@@ -23,6 +27,34 @@ tasks:
|
||||
- run-migrations-dev
|
||||
silent: true
|
||||
|
||||
fmt:
|
||||
desc: Run gofumt fmt against code.
|
||||
deps:
|
||||
- gofumt
|
||||
cmd: '"{{.GOFUMPT}}" -l -w .'
|
||||
|
||||
vet:
|
||||
desc: Run go vet against code.
|
||||
cmd: go vet ./...
|
||||
|
||||
lint:
|
||||
desc: Run golangci-lint linter
|
||||
deps:
|
||||
- golangci-lint
|
||||
cmd: '"{{.GOLANGCI_LINT}}" run'
|
||||
|
||||
lint-fix:
|
||||
desc: Run golangci-lint linter and perform fixes
|
||||
deps:
|
||||
- golangci-lint
|
||||
cmd: '"{{.GOLANGCI_LINT}}" run --fix'
|
||||
|
||||
lint-config:
|
||||
desc: Verify golangci-lint linter configuration
|
||||
deps:
|
||||
- golangci-lint
|
||||
cmd: '"{{.GOLANGCI_LINT}}" config verify'
|
||||
|
||||
run-migrations-dev:
|
||||
desc: Execute database migrations
|
||||
env:
|
||||
@@ -122,3 +154,33 @@ tasks:
|
||||
|
||||
mv "{{.LOCALBIN}}/$(basename "$TARGET")" "$VERSIONED"
|
||||
ln -sf "$(realpath "$VERSIONED")" "$TARGET"
|
||||
|
||||
gofumt:
|
||||
desc: Download latest gofumt
|
||||
silent: true
|
||||
deps:
|
||||
- localbin
|
||||
cmds:
|
||||
- task: go-install-tool
|
||||
vars:
|
||||
TARGET: "{{.GOFUMPT}}"
|
||||
PACKAGE: mvdan.cc/gofumpt
|
||||
VERSION: "latest"
|
||||
|
||||
golangci-lint:
|
||||
desc: Install golangci-lint (with optional custom build)
|
||||
silent: true
|
||||
deps:
|
||||
- localbin
|
||||
cmds:
|
||||
- task: go-install-tool
|
||||
vars:
|
||||
TARGET: "{{.GOLANGCI_LINT}}"
|
||||
PACKAGE: github.com/golangci/golangci-lint/v2/cmd/golangci-lint
|
||||
VERSION: "{{.GOLANGCI_LINT_VERSION}}"
|
||||
- |
|
||||
if [ -f .custom-gcl.yml ]; then
|
||||
echo "Building custom golangci-lint with plugins..."
|
||||
"{{.GOLANGCI_LINT}}" custom --destination "{{.LOCALBIN}}" --name golangci-lint-custom
|
||||
mv -f "{{.LOCALBIN}}/golangci-lint-custom" "{{.GOLANGCI_LINT}}"
|
||||
fi
|
||||
|
||||
@@ -39,7 +39,8 @@ func (cmd *Migrate) Run(ctx context.Context) error {
|
||||
log.Info("Preparing database migrations")
|
||||
m, err := migrate.NewWithDatabaseInstance(
|
||||
cmd.MigrationsPath,
|
||||
"postgres", driver)
|
||||
"postgres", driver,
|
||||
)
|
||||
if err != nil {
|
||||
log.Error(err, "Couldn't perform database migrations")
|
||||
return err
|
||||
|
||||
383
cover.cov
Normal file
383
cover.cov
Normal file
@@ -0,0 +1,383 @@
|
||||
mode: set
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/token/token.go:15.38,18.16 3 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/token/token.go:18.16,20.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/token/token.go:21.2,21.57 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/token/token.go:29.32,31.2 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/token/token.go:33.54,41.2 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/token/token.go:43.49,45.2 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/hash/hash.go:5.62,8.2 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/hash/hash.go:10.53,12.2 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/main.go:7.13,8.34 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/main.go:8.34,9.13 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:19.19,24.2 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:32.99,34.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:34.16,36.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:38.2,38.54 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:38.54,40.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:42.2,43.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:43.16,45.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:47.2,47.37 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:47.37,49.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:51.2,56.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:56.16,58.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:60.2,65.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:65.16,67.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:68.2,70.82 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:70.82,72.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:74.2,78.52 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:78.52,80.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/accounts.go:82.2,82.30 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:19.25,24.2 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:32.110,34.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:34.16,36.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:37.2,42.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:42.16,44.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:46.2,51.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:51.16,53.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:55.2,57.79 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:57.79,59.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:60.2,64.52 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:64.52,66.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:67.2,67.30 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:71.110,77.16 3 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:77.16,79.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:81.2,86.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:86.16,88.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:90.2,95.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:95.16,97.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:99.2,101.79 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:101.79,103.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:105.2,109.52 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:109.52,111.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_accounts.go:112.2,112.30 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_tokens.go:27.23,32.2 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_tokens.go:34.140,36.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_tokens.go:36.16,37.46 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_tokens.go:37.46,39.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_tokens.go:40.3,40.49 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_tokens.go:40.49,42.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_tokens.go:43.3,43.64 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_tokens.go:46.2,53.16 3 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_tokens.go:53.16,55.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_tokens.go:57.2,60.52 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_tokens.go:60.52,62.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/public_tokens.go:63.2,63.30 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/test.go:11.34,13.2 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/test.go:19.98,21.2 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/test.go:23.118,24.26 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/test.go:24.26,25.78 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/test.go:25.78,27.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/test.go:29.2,29.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/test.go:32.46,34.2 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/test.go:40.104,42.2 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/test.go:44.124,45.26 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/test.go:45.26,46.78 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/test.go:46.78,48.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/test.go:50.2,50.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:26.17,31.2 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:34.127,36.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:36.16,38.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:39.2,39.25 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:39.25,41.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:43.2,43.32 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:43.32,45.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:46.2,47.64 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:47.64,49.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:51.2,59.16 3 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:59.16,60.49 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:60.49,62.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:63.3,63.69 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:66.2,71.8 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:75.132,77.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:77.16,79.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:80.2,80.25 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:80.25,82.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:84.2,84.94 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:84.94,85.49 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:85.49,87.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:88.3,88.90 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:91.2,91.83 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:91.83,92.49 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:92.49,94.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:95.3,95.69 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:97.2,97.30 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:101.118,103.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:103.16,105.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:106.2,106.25 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:106.25,108.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:109.2,109.94 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:109.94,110.49 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:110.49,112.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:113.3,113.90 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:116.2,117.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:117.16,118.49 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:118.49,120.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:121.3,121.66 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:124.2,137.8 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:141.124,143.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:143.16,145.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:146.2,146.25 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:146.25,148.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:150.2,151.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:151.16,152.49 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:152.49,154.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:155.3,155.61 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:158.2,158.37 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:158.37,171.18 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:171.18,173.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:175.2,175.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:179.139,181.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:181.16,183.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:184.2,184.25 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:184.25,186.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:187.2,187.94 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:187.94,188.49 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:188.49,190.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:191.3,191.90 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:194.2,195.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:195.16,196.49 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:196.49,198.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:199.3,199.66 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:201.2,205.8 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:209.127,211.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:211.16,213.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:214.2,214.25 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:214.25,216.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:218.2,218.94 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:218.94,219.49 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:219.49,221.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:222.3,222.90 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:224.2,224.32 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:224.32,226.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:228.2,229.64 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:229.64,231.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:232.2,236.61 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:236.61,237.49 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:237.49,239.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:240.3,240.66 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:242.2,246.8 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:250.134,252.30 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:252.30,260.45 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:260.45,262.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/api/v1/tokens.go:264.2,264.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/migrate.go:23.52,28.16 4 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/migrate.go:28.16,31.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/migrate.go:33.2,34.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/migrate.go:34.16,37.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/migrate.go:39.2,43.16 3 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/migrate.go:43.16,46.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/migrate.go:48.2,50.16 3 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/migrate.go:50.16,51.42 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/migrate.go:51.42,53.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/migrate.go:53.9,56.4 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/migrate.go:59.2,59.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/root.go:20.18,24.27 3 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/root.go:25.16,26.45 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/root.go:26.45,28.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/root.go:29.17,30.46 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/root.go:30.46,32.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/root.go:33.10,34.27 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/root.go:37.2,37.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:50.51,56.16 4 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:56.16,59.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:61.2,63.16 3 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:63.16,65.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:67.2,96.20 4 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:96.20,98.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:100.2,127.46 12 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:127.46,129.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:131.2,131.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:135.84,137.28 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:137.28,139.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:140.2,143.46 3 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:143.46,145.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:147.2,147.55 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:147.55,149.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:151.2,151.64 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:151.64,153.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/server.go:155.2,155.13 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/cache/cache.go:15.42,17.2 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/cache/cache.go:19.88,21.2 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/cache/cache.go:23.112,25.2 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/logger/logger.go:13.47,15.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/logger/logger.go:15.16,17.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/logger/logger.go:18.2,26.11 5 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/logger/logger.go:29.70,33.2 3 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/logger/logger.go:35.51,37.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/logger/logger.go:37.16,39.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/logger/logger.go:40.2,40.41 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/logger/logger.go:43.73,45.2 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:24.81,27.105 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:27.105,29.29 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:29.29,30.47 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:30.47,32.5 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:33.4,33.14 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:35.3,35.13 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:37.2,37.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:41.102,43.73 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:43.73,44.36 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:44.36,46.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:47.3,47.9 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:49.2,49.8 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:53.94,55.61 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:55.61,56.36 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:56.36,58.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:59.3,59.9 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:61.2,61.8 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/accounts.go:65.81,75.2 3 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/tokens.go:24.74,41.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/tokens.go:41.16,43.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/tokens.go:44.2,44.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/tokens.go:48.74,50.96 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/tokens.go:50.96,52.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/tokens.go:53.2,53.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/tokens.go:56.92,81.16 8 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/tokens.go:81.16,82.36 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/tokens.go:82.36,84.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/tokens.go:85.3,85.18 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/tokens.go:87.2,93.20 6 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/postgres/postgres.go:12.61,14.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/postgres/postgres.go:14.16,16.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/postgres/postgres.go:18.2,18.41 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/postgres/postgres.go:18.41,20.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/postgres/postgres.go:22.2,23.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:47.92,53.16 5 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:53.16,56.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:58.2,64.71 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:64.71,65.50 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:65.50,67.4 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:68.3,69.28 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:72.2,72.23 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:76.96,81.16 4 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:81.16,82.45 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:82.45,84.4 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:85.3,86.28 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:89.2,89.71 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:89.71,91.3 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:93.2,94.16 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:94.16,95.45 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:95.45,97.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:98.3,99.28 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/accounts.go:102.2,102.18 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:54.116,61.2 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:71.70,73.2 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:76.62,78.26 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:78.26,80.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:82.2,82.20 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:85.90,87.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:87.16,89.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:91.2,92.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:92.16,94.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:95.2,95.40 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:95.40,96.88 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:96.88,98.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:102.2,102.53 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:102.53,104.10 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:104.10,106.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:108.3,109.73 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:109.73,111.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:112.3,113.15 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:113.15,115.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:118.2,119.17 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:122.70,123.38 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:123.38,124.34 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:124.34,125.63 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:125.63,127.5 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:130.2,130.14 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:134.90,137.24 3 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:138.23,139.42 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:140.24,141.43 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:142.10,143.37 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:146.2,166.16 5 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:166.16,168.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:169.2,169.8 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:172.71,176.47 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:176.47,178.4 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:180.2,180.16 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:180.16,182.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:184.2,185.25 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:185.25,187.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:189.2,189.20 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:196.43,198.2 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:200.99,202.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:202.16,204.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:206.2,206.108 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:206.108,208.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:210.2,210.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:213.92,215.73 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:215.73,217.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:218.2,219.68 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:219.68,221.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/authorization.go:222.2,222.21 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:58.76,60.2 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:62.41,69.2 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:73.98,79.22 4 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:79.22,83.17 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:83.17,86.4 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:89.2,89.26 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:89.26,91.3 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:92.2,92.115 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:92.115,94.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:95.2,95.12 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:99.99,105.16 5 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:105.16,108.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:111.2,111.17 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:111.17,113.3 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:115.2,116.16 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:116.16,119.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:121.2,124.16 3 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:124.16,127.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:129.2,140.72 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:140.72,143.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:145.2,145.28 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:149.81,154.16 4 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:154.16,157.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:159.2,165.72 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:165.72,168.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:170.2,170.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:174.84,179.64 4 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:179.64,182.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:184.2,184.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:188.89,193.16 4 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:193.16,196.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:198.2,208.75 3 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:208.75,211.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:213.2,213.16 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:217.94,222.16 4 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:222.16,223.45 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:223.45,225.4 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:226.3,227.29 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:230.2,231.74 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:231.74,235.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:237.2,248.20 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:252.92,264.16 6 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:264.16,267.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:269.2,271.35 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:271.35,274.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:276.2,276.18 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:276.18,301.17 13 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:301.17,304.4 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:306.3,306.29 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:309.2,309.20 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:313.96,315.41 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:315.41,316.34 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:316.34,317.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:319.3,320.35 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:320.35,322.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:323.3,323.25 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:325.2,325.8 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:332.46,333.26 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:333.26,334.26 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:334.26,336.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:338.2,338.14 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:346.113,364.16 8 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:364.16,365.36 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:365.36,367.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:368.3,369.29 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:372.2,372.21 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:372.21,374.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:376.2,376.39 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:376.39,378.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:380.2,385.20 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:388.34,391.2 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:393.44,398.2 4 0
|
||||
@@ -16,10 +16,11 @@ import (
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func newTestDbConnection(ctx context.Context) *sql.DB {
|
||||
func newTestDBConnection(ctx context.Context) *sql.DB {
|
||||
connStr, ok := os.LookupEnv("SOFTPLAYER_DB_CONNECTION_STRING")
|
||||
if !ok {
|
||||
panic("set the db connection string env var")
|
||||
// Default connection string
|
||||
connStr = "postgres://softplayer:qwertyu9@localhost:30432/softplayer?sslmode=disable"
|
||||
}
|
||||
db, err := postgres.Open(ctx, connStr)
|
||||
if err != nil {
|
||||
@@ -31,7 +32,8 @@ func newTestDbConnection(ctx context.Context) *sql.DB {
|
||||
func newTestRedisConnection() *redis.Client {
|
||||
connStr, ok := os.LookupEnv("SOFTPLAYER_REDIS_HOST")
|
||||
if !ok {
|
||||
panic("set the redis connection string env var")
|
||||
// Default redis host
|
||||
connStr = "localhost:30379"
|
||||
}
|
||||
return redis.NewClient(&redis.Options{
|
||||
Addr: connStr,
|
||||
@@ -40,7 +42,7 @@ func newTestRedisConnection() *redis.Client {
|
||||
|
||||
func newTestAccountController(ctx context.Context) *controllers.AccountController {
|
||||
return &controllers.AccountController{
|
||||
DB: newTestDbConnection(ctx),
|
||||
DB: newTestDBConnection(ctx),
|
||||
Redis: newTestRedisConnection(),
|
||||
DevMode: true,
|
||||
HashCost: 3,
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
// package controllers for token management
|
||||
// This a token controller, that implements the logic around tokens
|
||||
package controllers
|
||||
|
||||
import (
|
||||
@@ -28,7 +30,8 @@ type TokenController struct {
|
||||
Redis *redis.Client
|
||||
}
|
||||
|
||||
// Services that are not available for tokens
|
||||
// DisabledServicesRegex is a slice of regex to catch the services
|
||||
// that are not available for tokens
|
||||
var DisabledServicesRegex = []string{".*Accounts.*", ".*Tokens.*"}
|
||||
|
||||
// Errors
|
||||
@@ -51,9 +54,7 @@ type TokenData struct {
|
||||
Scopes map[string][]string
|
||||
}
|
||||
|
||||
type Scopes struct{}
|
||||
|
||||
// Set the grpc info, must happen after all the service are initialized
|
||||
// SetGRPCInfo must happen after all the service are initialized
|
||||
func (ctrl *TokenController) SetGRPCInfo(info map[string]grpc.ServiceInfo) {
|
||||
ctrl.ServiceInfo = info
|
||||
}
|
||||
@@ -67,8 +68,7 @@ func (ctrl *TokenController) SetRules() {
|
||||
ctrl.rules = rules
|
||||
}
|
||||
|
||||
// Each token operation must first verify that the current user
|
||||
// is allowed to manipulate the token.
|
||||
// VerifyTokenOwner is there to ensure that a user can't manipulate tokens of other users
|
||||
func (ctrl *TokenController) VerifyTokenOwner(ctx context.Context, userID, tokenID string) error {
|
||||
log := logger.FromContext(ctx).WithValues("uuid", tokenID, "user_id", userID)
|
||||
log.V(2).Info("Verifying the token owner")
|
||||
@@ -119,7 +119,7 @@ func (ctrl *TokenController) Create(ctx context.Context, data *TokenData) (strin
|
||||
|
||||
tokenHash := hashSHA256(tokenValue)
|
||||
|
||||
scopesJson, err := json.Marshal(data.Scopes)
|
||||
scopesJSON, err := json.Marshal(data.Scopes)
|
||||
if err != nil {
|
||||
log.Error(err, "Couldn't marshal permissions into json")
|
||||
return "", "", ErrServerError
|
||||
@@ -133,7 +133,7 @@ func (ctrl *TokenController) Create(ctx context.Context, data *TokenData) (strin
|
||||
CreatedAt: time.Now(),
|
||||
GeneratedAt: time.Now(),
|
||||
ExpiresAt: data.ExpiresAt,
|
||||
Scope: string(scopesJson),
|
||||
Scope: string(scopesJSON),
|
||||
}
|
||||
|
||||
if err := repository.CreateToken(ctx, ctrl.DB, queryData); err != nil {
|
||||
@@ -149,7 +149,7 @@ func (ctrl *TokenController) Update(ctx context.Context, data *TokenData) error
|
||||
log := logger.FromContext(ctx).WithValues("uuid", data.UUID)
|
||||
log.V(2).Info("Updating a token")
|
||||
|
||||
scopesJson, err := json.Marshal(data.Scopes)
|
||||
scopesJSON, err := json.Marshal(data.Scopes)
|
||||
if err != nil {
|
||||
log.Error(err, "Couldn't marshal permissions into json")
|
||||
return ErrServerError
|
||||
@@ -157,7 +157,7 @@ func (ctrl *TokenController) Update(ctx context.Context, data *TokenData) error
|
||||
|
||||
queryData := &repository.TokenData{
|
||||
UUID: data.UUID,
|
||||
Scope: string(scopesJson),
|
||||
Scope: string(scopesJSON),
|
||||
Decsription: data.Name,
|
||||
}
|
||||
|
||||
@@ -389,7 +389,6 @@ func hashSHA256(s string) string {
|
||||
return hex.EncodeToString(hash[:])
|
||||
}
|
||||
|
||||
// Unit Tests
|
||||
func TestUnitHashPersistence(t *testing.T) {
|
||||
password := "qwertyu9"
|
||||
hash1 := hashSHA256(password)
|
||||
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
|
||||
func newTestTokensController(ctx context.Context) *controllers.TokenController {
|
||||
return &controllers.TokenController{
|
||||
DB: newTestDbConnection(ctx),
|
||||
DB: newTestDBConnection(ctx),
|
||||
Redis: newTestRedisConnection(),
|
||||
}
|
||||
}
|
||||
@@ -104,6 +104,14 @@ func TestIntegrationGetToken_NotExists(t *testing.T) {
|
||||
assert.Empty(t, token)
|
||||
}
|
||||
|
||||
func TestIntegrationGetToken_WrongRequest(t *testing.T) {
|
||||
ctrl := newTestTokensController(t.Context())
|
||||
token, err := ctrl.Get(t.Context(), "test", "test")
|
||||
assert.Error(t, err)
|
||||
assert.ErrorIs(t, err, controllers.ErrServerError)
|
||||
assert.Empty(t, token)
|
||||
}
|
||||
|
||||
func TestIntegrationVerifyTokenOwner_Success(t *testing.T) {
|
||||
// Create a user for the token
|
||||
ctrlAccount := newTestAccountController(t.Context())
|
||||
|
||||
@@ -6,7 +6,6 @@ import (
|
||||
|
||||
"github.com/jackc/pgx/v5/pgxpool"
|
||||
"github.com/jackc/pgx/v5/stdlib"
|
||||
_ "github.com/jackc/pgx/v5/stdlib"
|
||||
)
|
||||
|
||||
func Open(ctx context.Context, dsn string) (*sql.DB, error) {
|
||||
|
||||
Reference in New Issue
Block a user