Tokens are covered by tests
Signed-off-by: Nikolai Rodionov <iam@allanger.xyz>
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,2 +1,3 @@
|
||||
build/
|
||||
bin/
|
||||
cover.cov
|
||||
|
||||
389
cover.cov
389
cover.cov
@@ -1,389 +0,0 @@
|
||||
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/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/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,44.16 3 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/migrate.go:44.16,47.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/migrate.go:49.2,51.16 3 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/migrate.go:51.16,52.42 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/migrate.go:52.42,54.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/migrate.go:54.9,57.4 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/cmd/migrate.go:60.2,60.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/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/repository/tokens.go:97.94,99.63 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/tokens.go:99.63,101.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/tokens.go:102.2,102.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/tokens.go:106.106,114.71 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/tokens.go:114.71,116.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/repository/tokens.go:117.2,117.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/postgres/postgres.go:11.61,13.16 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/postgres/postgres.go:13.16,15.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/postgres/postgres.go:17.2,17.41 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/postgres/postgres.go:17.41,19.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/postgres/postgres.go:21.2,22.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:72.98,78.22 4 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:78.22,82.17 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:82.17,85.4 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:88.2,88.26 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:88.26,90.3 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:91.2,91.115 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:91.115,93.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:94.2,94.12 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:98.99,104.16 5 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:104.16,107.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:110.2,110.17 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:110.17,112.3 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:114.2,115.16 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:115.16,118.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:120.2,123.16 3 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:123.16,126.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:128.2,139.72 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:139.72,142.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:144.2,144.28 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:148.81,153.16 4 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:153.16,156.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:158.2,164.72 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:164.72,167.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:169.2,169.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:173.89,177.82 3 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:177.82,180.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:181.2,181.12 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:185.94,190.16 4 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:190.16,193.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:195.2,197.97 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:197.97,200.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:202.2,202.24 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:206.94,211.16 4 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:211.16,212.45 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:212.45,214.4 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:215.3,216.29 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:219.2,220.74 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:220.74,224.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:226.2,237.20 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:241.92,253.16 6 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:253.16,256.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:258.2,260.35 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:260.35,263.3 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:265.2,265.18 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:265.18,290.17 13 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:290.17,293.4 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:295.3,295.29 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:298.2,298.20 1 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:302.96,304.41 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:304.41,305.34 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:305.34,306.12 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:308.3,309.35 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:309.35,311.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:312.3,312.25 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:314.2,314.8 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:321.46,322.26 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:322.26,323.26 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:323.26,325.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:327.2,327.14 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:335.113,353.16 8 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:353.16,354.36 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:354.36,356.4 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:357.3,358.29 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:361.2,361.21 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:361.21,363.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:365.2,365.39 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:365.39,367.3 1 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:369.2,374.20 2 0
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:377.34,380.2 2 1
|
||||
gitea.badhouseplants.net/softplayer/softplayer-backend/internal/controllers/tokens.go:382.44,387.2 4 0
|
||||
@@ -315,39 +315,26 @@ func (ctrl *TokenController) AuthenticateWithToken(ctx context.Context, token st
|
||||
log := logger.FromContext(ctx)
|
||||
log.V(2).Info("Authenticating with a token")
|
||||
|
||||
query := `
|
||||
SELECT user_id, scopes, expires_at, revoked_at
|
||||
FROM tokens
|
||||
WHERE token_hash = $1`
|
||||
|
||||
var userID string
|
||||
var expiresAt sql.NullTime
|
||||
var revokedAt sql.NullTime
|
||||
var scope string
|
||||
if err := ctrl.DB.QueryRowContext(ctx, query, hashSHA256(token)).Scan(
|
||||
&userID,
|
||||
&scope,
|
||||
&expiresAt,
|
||||
&revokedAt,
|
||||
); err != nil {
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
return nil, err
|
||||
queryResult, err := repository.GetTokenDataBySHA(ctx, ctrl.DB, hashSHA256(token))
|
||||
if err != nil {
|
||||
if errors.Is(err, repository.ErrNotFound) {
|
||||
return nil, ErrTokenNotFound
|
||||
}
|
||||
log.Error(err, "Couldn't find a token")
|
||||
return nil, ErrServerError
|
||||
log.Error(err, "Couldn't get token by sha")
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if revokedAt.Valid {
|
||||
if !queryResult.RevokedAt.IsZero() {
|
||||
return nil, ErrBadToken
|
||||
}
|
||||
|
||||
if expiresAt.Time.Before(time.Now()) {
|
||||
if queryResult.ExpiresAt.Before(time.Now()) {
|
||||
return nil, ErrBadToken
|
||||
}
|
||||
|
||||
result := &TokenAuthResult{
|
||||
UserID: userID,
|
||||
Scope: scope,
|
||||
UserID: queryResult.UserID,
|
||||
Scope: queryResult.Scope,
|
||||
}
|
||||
|
||||
return result, nil
|
||||
|
||||
@@ -2,6 +2,7 @@ package controllers_test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@@ -289,3 +290,114 @@ func TestIntegrationListTokens_Success(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
assert.Len(t, tokens, 2)
|
||||
}
|
||||
|
||||
func TestIntegrationAuthenticateWithToken_Success(t *testing.T) {
|
||||
ctrlAccount := newTestAccountController(t.Context())
|
||||
accountData := &controllers.AccountData{
|
||||
Password: "qwertyu9",
|
||||
Email: newTestUniqueEmail("accounts"),
|
||||
}
|
||||
id, err := ctrlAccount.Create(t.Context(), accountData)
|
||||
assert.NoError(t, err)
|
||||
|
||||
tokenData := &controllers.TokenData{
|
||||
Name: "Test Token",
|
||||
UserID: id,
|
||||
ExpiresAt: time.Now().Add(time.Second * 5),
|
||||
Scopes: map[string][]string{
|
||||
"Test": {"test", "test2"},
|
||||
},
|
||||
}
|
||||
|
||||
ctrl := newTestTokensController(t.Context())
|
||||
tokenVal, _, err := ctrl.Create(t.Context(), tokenData)
|
||||
assert.NoError(t, err)
|
||||
|
||||
auth, err := ctrl.AuthenticateWithToken(t.Context(), tokenVal)
|
||||
assert.NoError(t, err)
|
||||
assert.NotEmpty(t, auth.Scope)
|
||||
assert.NotEmpty(t, auth.UserID)
|
||||
assert.Equal(t, id, auth.UserID)
|
||||
|
||||
scope := map[string][]string{}
|
||||
assert.NoError(t, json.Unmarshal([]byte(auth.Scope), &scope))
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, tokenData.Scopes, scope)
|
||||
}
|
||||
|
||||
func TestIntegrationAuthenticateWithToken_UnknownToken(t *testing.T) {
|
||||
ctrl := newTestTokensController(t.Context())
|
||||
auth, err := ctrl.AuthenticateWithToken(t.Context(), "dummy")
|
||||
assert.Error(t, err)
|
||||
assert.Nil(t, auth)
|
||||
assert.ErrorIs(t, err, controllers.ErrTokenNotFound)
|
||||
}
|
||||
|
||||
func TestIntegrationAuthenticateWithToken_Expired(t *testing.T) {
|
||||
ctrlAccount := newTestAccountController(t.Context())
|
||||
accountData := &controllers.AccountData{
|
||||
Password: "qwertyu9",
|
||||
Email: newTestUniqueEmail("accounts"),
|
||||
}
|
||||
id, err := ctrlAccount.Create(t.Context(), accountData)
|
||||
assert.NoError(t, err)
|
||||
|
||||
tokenData := &controllers.TokenData{
|
||||
Name: "Test Token",
|
||||
UserID: id,
|
||||
ExpiresAt: time.Now().Add(time.Second * 5),
|
||||
Scopes: map[string][]string{
|
||||
"Test": {"test", "test2"},
|
||||
},
|
||||
}
|
||||
|
||||
ctrl := newTestTokensController(t.Context())
|
||||
tokenVal, _, err := ctrl.Create(t.Context(), tokenData)
|
||||
assert.NoError(t, err)
|
||||
|
||||
auth, err := ctrl.AuthenticateWithToken(t.Context(), tokenVal)
|
||||
assert.NoError(t, err)
|
||||
assert.NotEmpty(t, auth.Scope)
|
||||
assert.NotEmpty(t, auth.UserID)
|
||||
assert.Equal(t, id, auth.UserID)
|
||||
|
||||
time.Sleep(time.Second * 6)
|
||||
auth, err = ctrl.AuthenticateWithToken(t.Context(), tokenVal)
|
||||
assert.Error(t, err)
|
||||
assert.Nil(t, auth)
|
||||
assert.ErrorIs(t, err, controllers.ErrBadToken)
|
||||
}
|
||||
|
||||
func TestIntegrationAuthenticateWithToken_Revoked(t *testing.T) {
|
||||
ctrlAccount := newTestAccountController(t.Context())
|
||||
accountData := &controllers.AccountData{
|
||||
Password: "qwertyu9",
|
||||
Email: newTestUniqueEmail("accounts"),
|
||||
}
|
||||
id, err := ctrlAccount.Create(t.Context(), accountData)
|
||||
assert.NoError(t, err)
|
||||
|
||||
tokenData := &controllers.TokenData{
|
||||
Name: "Test Token",
|
||||
UserID: id,
|
||||
ExpiresAt: time.Now().Add(time.Second * 5),
|
||||
Scopes: map[string][]string{
|
||||
"Test": {"test", "test2"},
|
||||
},
|
||||
}
|
||||
|
||||
ctrl := newTestTokensController(t.Context())
|
||||
tokenVal, tokenID, err := ctrl.Create(t.Context(), tokenData)
|
||||
assert.NoError(t, err)
|
||||
auth, err := ctrl.AuthenticateWithToken(t.Context(), tokenVal)
|
||||
assert.NoError(t, err)
|
||||
assert.NotEmpty(t, auth.Scope)
|
||||
assert.NotEmpty(t, auth.UserID)
|
||||
assert.Equal(t, id, auth.UserID)
|
||||
|
||||
assert.NoError(t, ctrl.ForceExpiration(t.Context(), tokenID))
|
||||
auth, err = ctrl.AuthenticateWithToken(t.Context(), tokenVal)
|
||||
assert.Error(t, err)
|
||||
assert.Nil(t, auth)
|
||||
assert.ErrorIs(t, err, controllers.ErrBadToken)
|
||||
}
|
||||
|
||||
@@ -172,3 +172,31 @@ func ListTokensByUserID(ctx context.Context, db *sql.DB, userID string) ([]Token
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// GetTokenDataBySHA returns a token data for a token found by its hash
|
||||
func GetTokenDataBySHA(ctx context.Context, db *sql.DB, sha string) (*TokenData, error) {
|
||||
query := `
|
||||
SELECT user_id, scopes, expires_at, revoked_at
|
||||
FROM tokens
|
||||
WHERE token_hash = $1`
|
||||
|
||||
result := &TokenData{}
|
||||
var expiresAt sql.NullTime
|
||||
var revokedAt sql.NullTime
|
||||
|
||||
if err := db.QueryRowContext(ctx, query, sha).Scan(
|
||||
&result.UserID,
|
||||
&result.Scope,
|
||||
&expiresAt,
|
||||
&revokedAt,
|
||||
); err != nil {
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
return nil, ErrNotFound
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
result.RevokedAt = revokedAt.Time
|
||||
result.ExpiresAt = expiresAt.Time
|
||||
return result, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user