diff --git a/coverage/coverage.out b/coverage/coverage.out index 8bf6ebe..f966d1c 100644 --- a/coverage/coverage.out +++ b/coverage/coverage.out @@ -1,4 +1,70 @@ mode: set +github.com/muety/wakapi/utils/collection.go:5.52,6.26 1 0 +github.com/muety/wakapi/utils/collection.go:9.2,9.28 1 0 +github.com/muety/wakapi/utils/collection.go:6.26,8.3 1 0 +github.com/muety/wakapi/utils/collection.go:12.78,14.22 2 0 +github.com/muety/wakapi/utils/collection.go:20.2,20.11 1 0 +github.com/muety/wakapi/utils/collection.go:14.22,15.18 1 0 +github.com/muety/wakapi/utils/collection.go:18.3,18.12 1 0 +github.com/muety/wakapi/utils/collection.go:15.18,17.4 1 0 +github.com/muety/wakapi/utils/json.go:12.75,18.62 2 0 +github.com/muety/wakapi/utils/json.go:22.2,22.29 1 0 +github.com/muety/wakapi/utils/json.go:26.2,26.72 1 0 +github.com/muety/wakapi/utils/json.go:29.2,29.70 1 0 +github.com/muety/wakapi/utils/json.go:33.2,33.20 1 0 +github.com/muety/wakapi/utils/json.go:18.62,20.3 1 0 +github.com/muety/wakapi/utils/json.go:22.29,24.3 1 0 +github.com/muety/wakapi/utils/json.go:26.72,28.3 1 0 +github.com/muety/wakapi/utils/json.go:29.70,31.3 1 0 +github.com/muety/wakapi/utils/strings.go:8.34,10.2 1 0 +github.com/muety/wakapi/utils/strings.go:12.58,13.49 1 0 +github.com/muety/wakapi/utils/strings.go:13.49,14.32 1 0 +github.com/muety/wakapi/utils/strings.go:19.3,19.15 1 0 +github.com/muety/wakapi/utils/strings.go:14.32,15.22 1 0 +github.com/muety/wakapi/utils/strings.go:15.22,17.5 1 0 +github.com/muety/wakapi/utils/strings.go:23.77,24.29 1 0 +github.com/muety/wakapi/utils/strings.go:29.2,29.19 1 0 +github.com/muety/wakapi/utils/strings.go:24.29,25.18 1 0 +github.com/muety/wakapi/utils/strings.go:25.18,27.4 1 0 +github.com/muety/wakapi/utils/auth.go:14.79,16.54 2 0 +github.com/muety/wakapi/utils/auth.go:20.2,22.16 3 0 +github.com/muety/wakapi/utils/auth.go:26.2,28.45 3 0 +github.com/muety/wakapi/utils/auth.go:31.2,32.32 2 0 +github.com/muety/wakapi/utils/auth.go:16.54,18.3 1 0 +github.com/muety/wakapi/utils/auth.go:22.16,24.3 1 0 +github.com/muety/wakapi/utils/auth.go:28.45,30.3 1 0 +github.com/muety/wakapi/utils/auth.go:35.65,37.85 2 0 +github.com/muety/wakapi/utils/auth.go:41.2,42.30 2 0 +github.com/muety/wakapi/utils/auth.go:37.85,39.3 1 0 +github.com/muety/wakapi/utils/auth.go:45.56,49.2 3 0 +github.com/muety/wakapi/utils/auth.go:51.55,54.16 3 0 +github.com/muety/wakapi/utils/auth.go:57.2,57.16 1 0 +github.com/muety/wakapi/utils/auth.go:54.16,56.3 1 0 +github.com/muety/wakapi/utils/cron.go:5.44,7.21 2 0 +github.com/muety/wakapi/utils/cron.go:10.2,10.20 1 0 +github.com/muety/wakapi/utils/cron.go:7.21,9.3 1 0 +github.com/muety/wakapi/utils/date.go:9.48,11.2 1 0 +github.com/muety/wakapi/utils/date.go:13.51,15.2 1 0 +github.com/muety/wakapi/utils/date.go:17.52,19.2 1 0 +github.com/muety/wakapi/utils/date.go:21.51,23.2 1 0 +github.com/muety/wakapi/utils/date.go:26.41,28.21 2 0 +github.com/muety/wakapi/utils/date.go:31.2,31.33 1 0 +github.com/muety/wakapi/utils/date.go:28.21,30.3 1 0 +github.com/muety/wakapi/utils/date.go:35.67,38.33 2 1 +github.com/muety/wakapi/utils/date.go:47.2,47.18 1 1 +github.com/muety/wakapi/utils/date.go:38.33,40.19 2 1 +github.com/muety/wakapi/utils/date.go:43.3,44.10 2 1 +github.com/muety/wakapi/utils/date.go:40.19,42.4 1 1 +github.com/muety/wakapi/utils/date.go:51.36,54.2 2 0 +github.com/muety/wakapi/utils/date.go:56.42,57.28 1 0 +github.com/muety/wakapi/utils/date.go:73.2,73.20 1 0 +github.com/muety/wakapi/utils/date.go:58.52,59.21 1 0 +github.com/muety/wakapi/utils/date.go:60.53,61.22 1 0 +github.com/muety/wakapi/utils/date.go:62.55,63.24 1 0 +github.com/muety/wakapi/utils/date.go:64.54,65.23 1 0 +github.com/muety/wakapi/utils/date.go:66.52,67.21 1 0 +github.com/muety/wakapi/utils/date.go:68.54,69.23 1 0 +github.com/muety/wakapi/utils/date.go:70.52,71.21 1 0 github.com/muety/wakapi/utils/db.go:10.34,11.37 1 0 github.com/muety/wakapi/utils/db.go:19.2,20.14 2 0 github.com/muety/wakapi/utils/db.go:11.37,13.110 2 0 @@ -43,16 +109,6 @@ github.com/muety/wakapi/utils/http.go:74.30,76.3 1 0 github.com/muety/wakapi/utils/http.go:80.56,83.45 3 1 github.com/muety/wakapi/utils/http.go:86.2,86.40 1 1 github.com/muety/wakapi/utils/http.go:83.45,85.3 1 1 -github.com/muety/wakapi/utils/strings.go:8.34,10.2 1 0 -github.com/muety/wakapi/utils/strings.go:12.58,13.49 1 0 -github.com/muety/wakapi/utils/strings.go:13.49,14.32 1 0 -github.com/muety/wakapi/utils/strings.go:19.3,19.15 1 0 -github.com/muety/wakapi/utils/strings.go:14.32,15.22 1 0 -github.com/muety/wakapi/utils/strings.go:15.22,17.5 1 0 -github.com/muety/wakapi/utils/strings.go:23.77,24.29 1 0 -github.com/muety/wakapi/utils/strings.go:29.2,29.19 1 0 -github.com/muety/wakapi/utils/strings.go:24.29,25.18 1 0 -github.com/muety/wakapi/utils/strings.go:25.18,27.4 1 0 github.com/muety/wakapi/utils/sync.go:11.66,13.12 2 0 github.com/muety/wakapi/utils/sync.go:17.2,17.9 1 0 github.com/muety/wakapi/utils/sync.go:13.12,16.3 2 0 @@ -77,62 +133,34 @@ github.com/muety/wakapi/utils/template.go:39.51,40.12 1 0 github.com/muety/wakapi/utils/template.go:44.17,46.4 1 0 github.com/muety/wakapi/utils/template.go:48.17,50.4 1 0 github.com/muety/wakapi/utils/template.go:55.17,57.4 1 0 -github.com/muety/wakapi/utils/auth.go:14.79,16.54 2 0 -github.com/muety/wakapi/utils/auth.go:20.2,22.16 3 0 -github.com/muety/wakapi/utils/auth.go:26.2,28.45 3 0 -github.com/muety/wakapi/utils/auth.go:31.2,32.32 2 0 -github.com/muety/wakapi/utils/auth.go:16.54,18.3 1 0 -github.com/muety/wakapi/utils/auth.go:22.16,24.3 1 0 -github.com/muety/wakapi/utils/auth.go:28.45,30.3 1 0 -github.com/muety/wakapi/utils/auth.go:35.65,37.85 2 0 -github.com/muety/wakapi/utils/auth.go:41.2,42.30 2 0 -github.com/muety/wakapi/utils/auth.go:37.85,39.3 1 0 -github.com/muety/wakapi/utils/auth.go:45.56,49.2 3 0 -github.com/muety/wakapi/utils/auth.go:51.55,54.16 3 0 -github.com/muety/wakapi/utils/auth.go:57.2,57.16 1 0 -github.com/muety/wakapi/utils/auth.go:54.16,56.3 1 0 -github.com/muety/wakapi/utils/collection.go:5.52,6.26 1 0 -github.com/muety/wakapi/utils/collection.go:9.2,9.28 1 0 -github.com/muety/wakapi/utils/collection.go:6.26,8.3 1 0 -github.com/muety/wakapi/utils/collection.go:12.78,14.22 2 0 -github.com/muety/wakapi/utils/collection.go:20.2,20.11 1 0 -github.com/muety/wakapi/utils/collection.go:14.22,15.18 1 0 -github.com/muety/wakapi/utils/collection.go:18.3,18.12 1 0 -github.com/muety/wakapi/utils/collection.go:15.18,17.4 1 0 -github.com/muety/wakapi/utils/cron.go:5.44,7.21 2 0 -github.com/muety/wakapi/utils/cron.go:10.2,10.20 1 0 -github.com/muety/wakapi/utils/cron.go:7.21,9.3 1 0 -github.com/muety/wakapi/utils/date.go:9.48,11.2 1 0 -github.com/muety/wakapi/utils/date.go:13.51,15.2 1 0 -github.com/muety/wakapi/utils/date.go:17.52,19.2 1 0 -github.com/muety/wakapi/utils/date.go:21.51,23.2 1 0 -github.com/muety/wakapi/utils/date.go:26.41,28.21 2 0 -github.com/muety/wakapi/utils/date.go:31.2,31.33 1 0 -github.com/muety/wakapi/utils/date.go:28.21,30.3 1 0 -github.com/muety/wakapi/utils/date.go:35.67,38.33 2 1 -github.com/muety/wakapi/utils/date.go:47.2,47.18 1 1 -github.com/muety/wakapi/utils/date.go:38.33,40.19 2 1 -github.com/muety/wakapi/utils/date.go:43.3,44.10 2 1 -github.com/muety/wakapi/utils/date.go:40.19,42.4 1 1 -github.com/muety/wakapi/utils/date.go:51.36,54.2 2 0 -github.com/muety/wakapi/utils/date.go:56.42,57.28 1 0 -github.com/muety/wakapi/utils/date.go:73.2,73.20 1 0 -github.com/muety/wakapi/utils/date.go:58.52,59.21 1 0 -github.com/muety/wakapi/utils/date.go:60.53,61.22 1 0 -github.com/muety/wakapi/utils/date.go:62.55,63.24 1 0 -github.com/muety/wakapi/utils/date.go:64.54,65.23 1 0 -github.com/muety/wakapi/utils/date.go:66.52,67.21 1 0 -github.com/muety/wakapi/utils/date.go:68.54,69.23 1 0 -github.com/muety/wakapi/utils/date.go:70.52,71.21 1 0 -github.com/muety/wakapi/utils/json.go:12.75,18.62 2 0 -github.com/muety/wakapi/utils/json.go:22.2,22.29 1 0 -github.com/muety/wakapi/utils/json.go:26.2,26.72 1 0 -github.com/muety/wakapi/utils/json.go:29.2,29.70 1 0 -github.com/muety/wakapi/utils/json.go:33.2,33.20 1 0 -github.com/muety/wakapi/utils/json.go:18.62,20.3 1 0 -github.com/muety/wakapi/utils/json.go:22.29,24.3 1 0 -github.com/muety/wakapi/utils/json.go:26.72,28.3 1 0 -github.com/muety/wakapi/utils/json.go:29.70,31.3 1 0 +github.com/muety/wakapi/config/db.go:40.50,41.19 1 0 +github.com/muety/wakapi/config/db.go:54.2,54.12 1 0 +github.com/muety/wakapi/config/db.go:42.23,46.5 1 0 +github.com/muety/wakapi/config/db.go:47.26,50.5 1 0 +github.com/muety/wakapi/config/db.go:51.24,52.48 1 0 +github.com/muety/wakapi/config/db.go:57.53,60.25 2 1 +github.com/muety/wakapi/config/db.go:64.2,71.3 1 1 +github.com/muety/wakapi/config/db.go:60.25,62.3 1 1 +github.com/muety/wakapi/config/db.go:74.56,75.25 1 1 +github.com/muety/wakapi/config/db.go:79.2,80.16 2 1 +github.com/muety/wakapi/config/db.go:84.2,91.3 1 1 +github.com/muety/wakapi/config/db.go:75.25,77.3 1 0 +github.com/muety/wakapi/config/db.go:80.16,82.3 1 0 +github.com/muety/wakapi/config/db.go:94.54,96.2 1 1 +github.com/muety/wakapi/config/db_opts.go:11.56,13.2 1 0 +github.com/muety/wakapi/config/db_opts.go:15.59,17.2 1 0 +github.com/muety/wakapi/config/db_opts.go:19.61,21.39 1 0 +github.com/muety/wakapi/config/db_opts.go:28.2,28.30 1 0 +github.com/muety/wakapi/config/db_opts.go:34.2,34.12 1 0 +github.com/muety/wakapi/config/db_opts.go:21.39,23.100 1 0 +github.com/muety/wakapi/config/db_opts.go:23.100,25.4 1 0 +github.com/muety/wakapi/config/db_opts.go:28.30,29.68 1 0 +github.com/muety/wakapi/config/db_opts.go:29.68,31.4 1 0 +github.com/muety/wakapi/config/eventbus.go:26.13,28.2 1 1 +github.com/muety/wakapi/config/eventbus.go:30.26,32.2 1 0 +github.com/muety/wakapi/config/fs.go:9.56,10.19 1 0 +github.com/muety/wakapi/config/fs.go:13.2,13.19 1 0 +github.com/muety/wakapi/config/fs.go:10.19,12.3 1 0 github.com/muety/wakapi/config/jobqueue.go:29.13,38.2 7 1 github.com/muety/wakapi/config/jobqueue.go:40.48,41.34 1 1 github.com/muety/wakapi/config/jobqueue.go:44.2,47.12 4 1 @@ -277,34 +305,279 @@ github.com/muety/wakapi/config/config.go:450.48,452.4 1 0 github.com/muety/wakapi/config/config.go:456.55,458.3 1 0 github.com/muety/wakapi/config/config.go:459.56,461.3 1 0 github.com/muety/wakapi/config/config.go:462.65,464.3 1 0 -github.com/muety/wakapi/config/db.go:40.50,41.19 1 0 -github.com/muety/wakapi/config/db.go:54.2,54.12 1 0 -github.com/muety/wakapi/config/db.go:42.23,46.5 1 0 -github.com/muety/wakapi/config/db.go:47.26,50.5 1 0 -github.com/muety/wakapi/config/db.go:51.24,52.48 1 0 -github.com/muety/wakapi/config/db.go:57.53,60.25 2 1 -github.com/muety/wakapi/config/db.go:64.2,71.3 1 1 -github.com/muety/wakapi/config/db.go:60.25,62.3 1 1 -github.com/muety/wakapi/config/db.go:74.56,75.25 1 1 -github.com/muety/wakapi/config/db.go:79.2,80.16 2 1 -github.com/muety/wakapi/config/db.go:84.2,91.3 1 1 -github.com/muety/wakapi/config/db.go:75.25,77.3 1 0 -github.com/muety/wakapi/config/db.go:80.16,82.3 1 0 -github.com/muety/wakapi/config/db.go:94.54,96.2 1 1 -github.com/muety/wakapi/config/db_opts.go:11.56,13.2 1 0 -github.com/muety/wakapi/config/db_opts.go:15.59,17.2 1 0 -github.com/muety/wakapi/config/db_opts.go:19.61,21.39 1 0 -github.com/muety/wakapi/config/db_opts.go:28.2,28.30 1 0 -github.com/muety/wakapi/config/db_opts.go:34.2,34.12 1 0 -github.com/muety/wakapi/config/db_opts.go:21.39,23.100 1 0 -github.com/muety/wakapi/config/db_opts.go:23.100,25.4 1 0 -github.com/muety/wakapi/config/db_opts.go:28.30,29.68 1 0 -github.com/muety/wakapi/config/db_opts.go:29.68,31.4 1 0 -github.com/muety/wakapi/config/eventbus.go:26.13,28.2 1 1 -github.com/muety/wakapi/config/eventbus.go:30.26,32.2 1 0 -github.com/muety/wakapi/config/fs.go:9.56,10.19 1 0 -github.com/muety/wakapi/config/fs.go:13.2,13.19 1 0 -github.com/muety/wakapi/config/fs.go:10.19,12.3 1 0 +github.com/muety/wakapi/middlewares/filetype.go:13.83,14.43 1 0 +github.com/muety/wakapi/middlewares/filetype.go:14.43,19.3 1 0 +github.com/muety/wakapi/middlewares/filetype.go:22.84,24.34 2 0 +github.com/muety/wakapi/middlewares/filetype.go:31.2,31.27 1 0 +github.com/muety/wakapi/middlewares/filetype.go:24.34,25.50 1 0 +github.com/muety/wakapi/middlewares/filetype.go:25.50,29.4 3 0 +github.com/muety/wakapi/middlewares/logging.go:20.102,21.43 1 0 +github.com/muety/wakapi/middlewares/logging.go:21.43,27.3 1 0 +github.com/muety/wakapi/middlewares/logging.go:30.80,39.44 7 0 +github.com/muety/wakapi/middlewares/logging.go:45.2,54.3 1 0 +github.com/muety/wakapi/middlewares/logging.go:39.44,40.38 1 0 +github.com/muety/wakapi/middlewares/logging.go:40.38,42.4 1 0 +github.com/muety/wakapi/middlewares/logging.go:57.41,59.14 2 0 +github.com/muety/wakapi/middlewares/logging.go:62.2,62.14 1 0 +github.com/muety/wakapi/middlewares/logging.go:65.2,65.11 1 0 +github.com/muety/wakapi/middlewares/logging.go:59.14,61.3 1 0 +github.com/muety/wakapi/middlewares/logging.go:62.14,64.3 1 0 +github.com/muety/wakapi/middlewares/logging.go:68.41,69.42 1 0 +github.com/muety/wakapi/middlewares/logging.go:72.2,72.12 1 0 +github.com/muety/wakapi/middlewares/logging.go:69.42,71.3 1 0 +github.com/muety/wakapi/middlewares/logging.go:103.52,105.2 1 0 +github.com/muety/wakapi/middlewares/logging.go:117.45,118.20 1 0 +github.com/muety/wakapi/middlewares/logging.go:118.20,122.3 3 0 +github.com/muety/wakapi/middlewares/logging.go:124.54,127.18 3 0 +github.com/muety/wakapi/middlewares/logging.go:134.2,135.15 2 0 +github.com/muety/wakapi/middlewares/logging.go:127.18,130.17 2 0 +github.com/muety/wakapi/middlewares/logging.go:130.17,132.4 1 0 +github.com/muety/wakapi/middlewares/logging.go:137.42,138.20 1 0 +github.com/muety/wakapi/middlewares/logging.go:138.20,140.3 1 0 +github.com/muety/wakapi/middlewares/logging.go:142.36,144.2 1 0 +github.com/muety/wakapi/middlewares/logging.go:145.42,147.2 1 0 +github.com/muety/wakapi/middlewares/logging.go:148.40,150.2 1 0 +github.com/muety/wakapi/middlewares/logging.go:151.52,153.2 1 0 +github.com/muety/wakapi/middlewares/principal.go:15.62,17.2 1 0 +github.com/muety/wakapi/middlewares/principal.go:19.58,21.2 1 0 +github.com/muety/wakapi/middlewares/principal.go:23.60,25.2 1 0 +github.com/muety/wakapi/middlewares/principal.go:46.71,47.43 1 0 +github.com/muety/wakapi/middlewares/principal.go:47.43,49.3 1 0 +github.com/muety/wakapi/middlewares/principal.go:52.81,55.2 2 0 +github.com/muety/wakapi/middlewares/principal.go:57.55,58.52 1 0 +github.com/muety/wakapi/middlewares/principal.go:58.52,60.3 1 0 +github.com/muety/wakapi/middlewares/principal.go:63.49,64.52 1 0 +github.com/muety/wakapi/middlewares/principal.go:67.2,67.12 1 0 +github.com/muety/wakapi/middlewares/principal.go:64.52,66.3 1 0 +github.com/muety/wakapi/middlewares/security.go:19.62,20.43 1 0 +github.com/muety/wakapi/middlewares/security.go:20.43,22.3 1 0 +github.com/muety/wakapi/middlewares/security.go:25.80,26.36 1 0 +github.com/muety/wakapi/middlewares/security.go:31.2,31.27 1 0 +github.com/muety/wakapi/middlewares/security.go:26.36,27.30 1 0 +github.com/muety/wakapi/middlewares/security.go:27.30,29.4 1 0 +github.com/muety/wakapi/middlewares/sentry.go:15.60,16.43 1 0 +github.com/muety/wakapi/middlewares/sentry.go:16.43,20.3 1 0 +github.com/muety/wakapi/middlewares/sentry.go:23.78,26.54 3 0 +github.com/muety/wakapi/middlewares/sentry.go:26.54,27.43 1 0 +github.com/muety/wakapi/middlewares/sentry.go:27.43,29.4 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:31.91,37.2 1 1 +github.com/muety/wakapi/middlewares/authenticate.go:39.90,42.2 2 0 +github.com/muety/wakapi/middlewares/authenticate.go:44.90,47.2 2 0 +github.com/muety/wakapi/middlewares/authenticate.go:49.71,50.71 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:50.71,52.3 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:55.107,59.16 3 0 +github.com/muety/wakapi/middlewares/authenticate.go:62.2,62.16 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:66.2,66.31 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:82.2,83.12 2 0 +github.com/muety/wakapi/middlewares/authenticate.go:59.16,61.3 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:62.16,64.3 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:66.31,67.31 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:72.3,72.29 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:79.3,79.9 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:67.31,70.4 2 0 +github.com/muety/wakapi/middlewares/authenticate.go:72.29,75.4 2 0 +github.com/muety/wakapi/middlewares/authenticate.go:75.9,78.4 2 0 +github.com/muety/wakapi/middlewares/authenticate.go:86.70,87.39 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:92.2,92.14 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:87.39,88.60 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:88.60,90.4 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:95.98,97.16 2 1 +github.com/muety/wakapi/middlewares/authenticate.go:101.2,104.16 4 1 +github.com/muety/wakapi/middlewares/authenticate.go:107.2,107.18 1 1 +github.com/muety/wakapi/middlewares/authenticate.go:97.16,99.3 1 1 +github.com/muety/wakapi/middlewares/authenticate.go:104.16,106.3 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:110.97,114.19 4 1 +github.com/muety/wakapi/middlewares/authenticate.go:117.2,118.16 2 1 +github.com/muety/wakapi/middlewares/authenticate.go:121.2,121.18 1 1 +github.com/muety/wakapi/middlewares/authenticate.go:114.19,116.3 1 1 +github.com/muety/wakapi/middlewares/authenticate.go:118.16,120.3 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:124.92,126.16 2 0 +github.com/muety/wakapi/middlewares/authenticate.go:130.2,131.16 2 0 +github.com/muety/wakapi/middlewares/authenticate.go:138.2,138.18 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:126.16,128.3 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:131.16,133.3 1 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:25.112,32.2 1 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:34.59,38.2 2 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:50.68,52.16 2 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:57.2,58.16 2 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:64.2,65.50 2 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:70.2,78.16 3 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:84.2,86.46 3 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:52.16,55.3 2 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:58.16,62.3 3 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:65.50,68.3 2 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:78.16,82.3 3 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:89.144,91.16 2 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:95.2,102.29 3 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:106.2,114.16 2 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:118.2,118.36 1 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:91.16,93.3 1 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:102.29,104.3 1 0 +github.com/muety/wakapi/routes/compat/shields/v1/badge.go:114.16,116.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:29.124,34.2 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:36.63,42.2 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:53.72,55.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:59.2,62.16 4 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:68.2,72.16 4 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:79.2,85.47 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:55.16,57.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:62.16,66.3 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:72.16,77.3 4 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:23.123,29.2 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:31.62,37.2 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:49.71,51.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:55.2,56.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:63.2,66.28 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:72.2,73.46 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:51.16,53.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:56.16,61.3 4 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:66.28,67.30 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:67.30,69.4 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:22.112,28.2 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:30.59,41.2 6 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:61.68,66.56 4 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:70.2,71.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:77.2,78.22 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:82.2,83.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:89.2,91.69 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:97.2,98.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:104.2,107.33 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:110.2,110.35 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:113.2,113.34 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:116.2,116.29 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:119.2,119.34 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:123.2,123.49 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:66.56,68.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:71.16,75.3 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:78.22,80.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:83.16,87.3 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:91.69,95.3 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:98.16,102.3 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:107.33,109.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:110.35,112.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:113.34,115.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:116.29,118.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:119.34,121.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:126.136,135.16 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:139.2,139.36 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:135.16,137.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:28.120,34.2 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:36.63,45.2 5 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:56.72,58.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:61.2,64.22 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:68.2,69.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:75.2,76.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:81.2,85.4 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:58.16,60.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:64.22,66.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:69.16,73.3 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:76.16,80.3 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:88.115,97.29 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:101.2,102.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:106.2,106.36 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:97.29,99.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:102.16,104.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:27.120,33.2 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:35.63,41.2 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:66.72,68.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:72.2,73.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:79.2,80.46 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:68.16,70.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:73.16,77.3 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:83.95,89.19 5 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:95.2,96.22 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:125.2,139.37 6 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:150.2,150.38 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:89.19,90.56 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:90.56,92.4 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:96.22,98.98 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:98.98,100.4 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:100.9,102.4 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:103.8,103.130 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:103.130,106.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:106.8,111.17 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:115.3,116.17 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:111.17,113.4 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:116.17,118.4 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:139.37,141.17 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:145.3,147.25 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:141.17,143.4 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:21.116,27.2 1 1 +github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:29.59,35.2 3 1 +github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:46.68,48.16 2 1 +github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:52.2,53.72 2 1 +github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:59.2,59.72 1 1 +github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:48.16,50.3 1 1 +github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:53.72,55.3 1 1 +github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:55.8,57.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:22.116,28.2 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:30.61,36.2 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:47.70,49.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:53.2,54.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:60.2,61.46 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:49.16,51.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:54.16,58.3 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:64.116,73.29 3 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:77.2,85.16 2 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:89.2,89.36 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:73.29,75.3 1 0 +github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:85.16,87.3 1 0 +github.com/muety/wakapi/models/interval.go:41.47,42.23 1 0 +github.com/muety/wakapi/models/interval.go:47.2,47.14 1 0 +github.com/muety/wakapi/models/interval.go:42.23,43.13 1 0 +github.com/muety/wakapi/models/interval.go:43.13,45.4 1 0 +github.com/muety/wakapi/models/leaderboard.go:28.73,30.2 1 0 +github.com/muety/wakapi/models/leaderboard.go:34.56,35.103 1 0 +github.com/muety/wakapi/models/leaderboard.go:35.103,37.3 1 0 +github.com/muety/wakapi/models/leaderboard.go:37.13,39.3 1 0 +github.com/muety/wakapi/models/leaderboard.go:42.63,43.29 1 0 +github.com/muety/wakapi/models/leaderboard.go:43.29,45.3 1 0 +github.com/muety/wakapi/models/leaderboard.go:48.41,49.123 1 0 +github.com/muety/wakapi/models/leaderboard.go:49.123,51.3 1 0 +github.com/muety/wakapi/models/leaderboard.go:54.50,56.2 1 0 +github.com/muety/wakapi/models/leaderboard.go:58.65,59.95 1 0 +github.com/muety/wakapi/models/leaderboard.go:59.95,61.3 1 0 +github.com/muety/wakapi/models/leaderboard.go:64.49,72.25 3 0 +github.com/muety/wakapi/models/leaderboard.go:83.2,83.129 1 0 +github.com/muety/wakapi/models/leaderboard.go:86.2,86.67 1 0 +github.com/muety/wakapi/models/leaderboard.go:90.2,90.79 1 0 +github.com/muety/wakapi/models/leaderboard.go:72.25,73.58 1 0 +github.com/muety/wakapi/models/leaderboard.go:76.3,77.38 2 0 +github.com/muety/wakapi/models/leaderboard.go:80.3,80.40 1 0 +github.com/muety/wakapi/models/leaderboard.go:73.58,74.12 1 0 +github.com/muety/wakapi/models/leaderboard.go:77.38,79.4 1 0 +github.com/muety/wakapi/models/leaderboard.go:83.129,85.3 1 0 +github.com/muety/wakapi/models/leaderboard.go:86.67,88.3 1 0 +github.com/muety/wakapi/models/leaderboard.go:90.79,92.3 1 0 +github.com/muety/wakapi/models/leaderboard.go:95.70,96.107 1 0 +github.com/muety/wakapi/models/leaderboard.go:96.107,98.3 1 0 +github.com/muety/wakapi/models/leaderboard.go:101.45,103.25 2 0 +github.com/muety/wakapi/models/leaderboard.go:108.2,108.19 1 0 +github.com/muety/wakapi/models/leaderboard.go:103.25,104.43 1 0 +github.com/muety/wakapi/models/leaderboard.go:104.43,106.4 1 0 +github.com/muety/wakapi/models/alias.go:18.32,20.2 1 0 +github.com/muety/wakapi/models/alias.go:22.37,23.35 1 0 +github.com/muety/wakapi/models/alias.go:28.2,28.14 1 0 +github.com/muety/wakapi/models/alias.go:23.35,24.18 1 0 +github.com/muety/wakapi/models/alias.go:24.18,26.4 1 0 +github.com/muety/wakapi/models/duration.go:24.55,38.2 2 0 +github.com/muety/wakapi/models/duration.go:40.39,42.16 2 0 +github.com/muety/wakapi/models/duration.go:45.2,46.10 2 0 +github.com/muety/wakapi/models/duration.go:42.16,44.3 1 0 +github.com/muety/wakapi/models/duration.go:49.49,50.11 1 0 +github.com/muety/wakapi/models/duration.go:65.2,65.15 1 0 +github.com/muety/wakapi/models/duration.go:69.2,69.12 1 0 +github.com/muety/wakapi/models/duration.go:51.22,52.18 1 0 +github.com/muety/wakapi/models/duration.go:53.21,54.17 1 0 +github.com/muety/wakapi/models/duration.go:55.23,56.19 1 0 +github.com/muety/wakapi/models/duration.go:57.17,58.26 1 0 +github.com/muety/wakapi/models/duration.go:59.22,60.18 1 0 +github.com/muety/wakapi/models/duration.go:61.21,62.17 1 0 +github.com/muety/wakapi/models/duration.go:65.15,67.3 1 0 +github.com/muety/wakapi/models/mail.go:19.44,23.2 3 0 +github.com/muety/wakapi/models/mail.go:25.44,29.2 3 0 +github.com/muety/wakapi/models/mail.go:31.32,44.2 1 0 +github.com/muety/wakapi/models/mail.go:46.41,48.2 1 0 github.com/muety/wakapi/models/durations.go:7.30,9.2 1 0 github.com/muety/wakapi/models/durations.go:11.40,13.2 1 0 github.com/muety/wakapi/models/durations.go:15.35,17.2 1 0 @@ -425,24 +698,17 @@ github.com/muety/wakapi/models/heartbeat.go:99.41,101.16 2 0 github.com/muety/wakapi/models/heartbeat.go:104.2,105.10 2 0 github.com/muety/wakapi/models/heartbeat.go:101.16,103.3 1 0 github.com/muety/wakapi/models/heartbeat.go:108.38,118.2 1 0 -github.com/muety/wakapi/models/language_mapping.go:11.42,13.2 1 0 -github.com/muety/wakapi/models/language_mapping.go:15.51,17.2 1 0 -github.com/muety/wakapi/models/language_mapping.go:19.52,21.2 1 0 -github.com/muety/wakapi/models/shared.go:38.52,40.2 1 0 -github.com/muety/wakapi/models/shared.go:42.52,45.16 3 0 -github.com/muety/wakapi/models/shared.go:48.2,50.12 3 0 -github.com/muety/wakapi/models/shared.go:45.16,47.3 1 0 -github.com/muety/wakapi/models/shared.go:53.52,59.22 2 0 -github.com/muety/wakapi/models/shared.go:74.2,77.12 3 0 -github.com/muety/wakapi/models/shared.go:60.14,64.17 2 0 -github.com/muety/wakapi/models/shared.go:67.17,69.8 2 0 -github.com/muety/wakapi/models/shared.go:70.10,71.64 1 0 -github.com/muety/wakapi/models/shared.go:64.17,66.4 1 0 -github.com/muety/wakapi/models/shared.go:80.51,83.2 2 0 -github.com/muety/wakapi/models/shared.go:85.45,87.2 1 0 -github.com/muety/wakapi/models/shared.go:89.37,91.2 1 0 -github.com/muety/wakapi/models/shared.go:93.35,95.2 1 1 -github.com/muety/wakapi/models/shared.go:97.34,99.2 1 0 +github.com/muety/wakapi/models/heartbeats.go:7.31,9.2 1 0 +github.com/muety/wakapi/models/heartbeats.go:11.41,13.2 1 0 +github.com/muety/wakapi/models/heartbeats.go:15.36,17.2 1 0 +github.com/muety/wakapi/models/heartbeats.go:19.43,22.2 2 0 +github.com/muety/wakapi/models/heartbeats.go:24.41,26.18 1 0 +github.com/muety/wakapi/models/heartbeats.go:29.2,29.16 1 0 +github.com/muety/wakapi/models/heartbeats.go:26.18,28.3 1 0 +github.com/muety/wakapi/models/heartbeats.go:32.40,34.18 1 0 +github.com/muety/wakapi/models/heartbeats.go:37.2,37.24 1 0 +github.com/muety/wakapi/models/heartbeats.go:34.18,36.3 1 0 +github.com/muety/wakapi/models/project_label.go:14.39,16.2 1 0 github.com/muety/wakapi/models/summary.go:64.29,66.2 1 1 github.com/muety/wakapi/models/summary.go:68.35,70.2 1 0 github.com/muety/wakapi/models/summary.go:72.38,74.2 1 0 @@ -541,11 +807,43 @@ github.com/muety/wakapi/models/summary.go:361.50,365.2 1 1 github.com/muety/wakapi/models/summary.go:367.33,369.2 1 1 github.com/muety/wakapi/models/summary.go:371.43,373.2 1 1 github.com/muety/wakapi/models/summary.go:375.38,377.2 1 1 -github.com/muety/wakapi/models/alias.go:18.32,20.2 1 0 -github.com/muety/wakapi/models/alias.go:22.37,23.35 1 0 -github.com/muety/wakapi/models/alias.go:28.2,28.14 1 0 -github.com/muety/wakapi/models/alias.go:23.35,24.18 1 0 -github.com/muety/wakapi/models/alias.go:24.18,26.4 1 0 +github.com/muety/wakapi/models/language_mapping.go:11.42,13.2 1 0 +github.com/muety/wakapi/models/language_mapping.go:15.51,17.2 1 0 +github.com/muety/wakapi/models/language_mapping.go:19.52,21.2 1 0 +github.com/muety/wakapi/models/mail_address.go:15.13,18.2 2 1 +github.com/muety/wakapi/models/mail_address.go:24.38,26.2 1 0 +github.com/muety/wakapi/models/mail_address.go:28.35,30.21 2 1 +github.com/muety/wakapi/models/mail_address.go:36.2,36.11 1 1 +github.com/muety/wakapi/models/mail_address.go:30.21,31.21 1 1 +github.com/muety/wakapi/models/mail_address.go:34.3,34.18 1 1 +github.com/muety/wakapi/models/mail_address.go:31.21,33.4 1 1 +github.com/muety/wakapi/models/mail_address.go:39.35,41.2 1 1 +github.com/muety/wakapi/models/mail_address.go:43.43,45.22 2 0 +github.com/muety/wakapi/models/mail_address.go:48.2,48.12 1 0 +github.com/muety/wakapi/models/mail_address.go:45.22,47.3 1 0 +github.com/muety/wakapi/models/mail_address.go:51.46,53.22 2 1 +github.com/muety/wakapi/models/mail_address.go:56.2,56.12 1 1 +github.com/muety/wakapi/models/mail_address.go:53.22,55.3 1 1 +github.com/muety/wakapi/models/mail_address.go:59.40,60.22 1 1 +github.com/muety/wakapi/models/mail_address.go:65.2,65.13 1 1 +github.com/muety/wakapi/models/mail_address.go:60.22,61.17 1 1 +github.com/muety/wakapi/models/mail_address.go:61.17,63.4 1 1 +github.com/muety/wakapi/models/models.go:3.14,5.2 0 1 +github.com/muety/wakapi/models/shared.go:38.52,40.2 1 0 +github.com/muety/wakapi/models/shared.go:42.52,45.16 3 0 +github.com/muety/wakapi/models/shared.go:48.2,50.12 3 0 +github.com/muety/wakapi/models/shared.go:45.16,47.3 1 0 +github.com/muety/wakapi/models/shared.go:53.52,59.22 2 0 +github.com/muety/wakapi/models/shared.go:74.2,77.12 3 0 +github.com/muety/wakapi/models/shared.go:60.14,64.17 2 0 +github.com/muety/wakapi/models/shared.go:67.17,69.8 2 0 +github.com/muety/wakapi/models/shared.go:70.10,71.64 1 0 +github.com/muety/wakapi/models/shared.go:64.17,66.4 1 0 +github.com/muety/wakapi/models/shared.go:80.51,83.2 2 0 +github.com/muety/wakapi/models/shared.go:85.45,87.2 1 0 +github.com/muety/wakapi/models/shared.go:89.37,91.2 1 0 +github.com/muety/wakapi/models/shared.go:93.35,95.2 1 1 +github.com/muety/wakapi/models/shared.go:97.34,99.2 1 0 github.com/muety/wakapi/models/user.go:12.13,14.2 1 1 github.com/muety/wakapi/models/user.go:88.34,90.2 1 0 github.com/muety/wakapi/models/user.go:92.36,93.22 1 1 @@ -580,354 +878,166 @@ github.com/muety/wakapi/models/user.go:185.45,187.2 1 0 github.com/muety/wakapi/models/user.go:189.45,191.2 1 0 github.com/muety/wakapi/models/user.go:193.39,195.2 1 0 github.com/muety/wakapi/models/user.go:197.39,200.2 2 0 -github.com/muety/wakapi/models/duration.go:24.55,38.2 2 0 -github.com/muety/wakapi/models/duration.go:40.39,42.16 2 0 -github.com/muety/wakapi/models/duration.go:45.2,46.10 2 0 -github.com/muety/wakapi/models/duration.go:42.16,44.3 1 0 -github.com/muety/wakapi/models/duration.go:49.49,50.11 1 0 -github.com/muety/wakapi/models/duration.go:65.2,65.15 1 0 -github.com/muety/wakapi/models/duration.go:69.2,69.12 1 0 -github.com/muety/wakapi/models/duration.go:51.22,52.18 1 0 -github.com/muety/wakapi/models/duration.go:53.21,54.17 1 0 -github.com/muety/wakapi/models/duration.go:55.23,56.19 1 0 -github.com/muety/wakapi/models/duration.go:57.17,58.26 1 0 -github.com/muety/wakapi/models/duration.go:59.22,60.18 1 0 -github.com/muety/wakapi/models/duration.go:61.21,62.17 1 0 -github.com/muety/wakapi/models/duration.go:65.15,67.3 1 0 -github.com/muety/wakapi/models/heartbeats.go:7.31,9.2 1 0 -github.com/muety/wakapi/models/heartbeats.go:11.41,13.2 1 0 -github.com/muety/wakapi/models/heartbeats.go:15.36,17.2 1 0 -github.com/muety/wakapi/models/heartbeats.go:19.43,22.2 2 0 -github.com/muety/wakapi/models/heartbeats.go:24.41,26.18 1 0 -github.com/muety/wakapi/models/heartbeats.go:29.2,29.16 1 0 -github.com/muety/wakapi/models/heartbeats.go:26.18,28.3 1 0 -github.com/muety/wakapi/models/heartbeats.go:32.40,34.18 1 0 -github.com/muety/wakapi/models/heartbeats.go:37.2,37.24 1 0 -github.com/muety/wakapi/models/heartbeats.go:34.18,36.3 1 0 -github.com/muety/wakapi/models/interval.go:41.47,42.23 1 0 -github.com/muety/wakapi/models/interval.go:47.2,47.14 1 0 -github.com/muety/wakapi/models/interval.go:42.23,43.13 1 0 -github.com/muety/wakapi/models/interval.go:43.13,45.4 1 0 -github.com/muety/wakapi/models/leaderboard.go:28.73,30.2 1 0 -github.com/muety/wakapi/models/leaderboard.go:34.56,35.103 1 0 -github.com/muety/wakapi/models/leaderboard.go:35.103,37.3 1 0 -github.com/muety/wakapi/models/leaderboard.go:37.13,39.3 1 0 -github.com/muety/wakapi/models/leaderboard.go:42.63,43.29 1 0 -github.com/muety/wakapi/models/leaderboard.go:43.29,45.3 1 0 -github.com/muety/wakapi/models/leaderboard.go:48.41,49.123 1 0 -github.com/muety/wakapi/models/leaderboard.go:49.123,51.3 1 0 -github.com/muety/wakapi/models/leaderboard.go:54.50,56.2 1 0 -github.com/muety/wakapi/models/leaderboard.go:58.65,59.95 1 0 -github.com/muety/wakapi/models/leaderboard.go:59.95,61.3 1 0 -github.com/muety/wakapi/models/leaderboard.go:64.49,72.25 3 0 -github.com/muety/wakapi/models/leaderboard.go:83.2,83.129 1 0 -github.com/muety/wakapi/models/leaderboard.go:86.2,86.67 1 0 -github.com/muety/wakapi/models/leaderboard.go:90.2,90.79 1 0 -github.com/muety/wakapi/models/leaderboard.go:72.25,73.58 1 0 -github.com/muety/wakapi/models/leaderboard.go:76.3,77.38 2 0 -github.com/muety/wakapi/models/leaderboard.go:80.3,80.40 1 0 -github.com/muety/wakapi/models/leaderboard.go:73.58,74.12 1 0 -github.com/muety/wakapi/models/leaderboard.go:77.38,79.4 1 0 -github.com/muety/wakapi/models/leaderboard.go:83.129,85.3 1 0 -github.com/muety/wakapi/models/leaderboard.go:86.67,88.3 1 0 -github.com/muety/wakapi/models/leaderboard.go:90.79,92.3 1 0 -github.com/muety/wakapi/models/leaderboard.go:95.70,96.107 1 0 -github.com/muety/wakapi/models/leaderboard.go:96.107,98.3 1 0 -github.com/muety/wakapi/models/leaderboard.go:101.45,103.25 2 0 -github.com/muety/wakapi/models/leaderboard.go:108.2,108.19 1 0 -github.com/muety/wakapi/models/leaderboard.go:103.25,104.43 1 0 -github.com/muety/wakapi/models/leaderboard.go:104.43,106.4 1 0 -github.com/muety/wakapi/models/mail.go:19.44,23.2 3 0 -github.com/muety/wakapi/models/mail.go:25.44,29.2 3 0 -github.com/muety/wakapi/models/mail.go:31.32,44.2 1 0 -github.com/muety/wakapi/models/mail.go:46.41,48.2 1 0 -github.com/muety/wakapi/models/mail_address.go:15.13,18.2 2 1 -github.com/muety/wakapi/models/mail_address.go:24.38,26.2 1 0 -github.com/muety/wakapi/models/mail_address.go:28.35,30.21 2 1 -github.com/muety/wakapi/models/mail_address.go:36.2,36.11 1 1 -github.com/muety/wakapi/models/mail_address.go:30.21,31.21 1 1 -github.com/muety/wakapi/models/mail_address.go:34.3,34.18 1 1 -github.com/muety/wakapi/models/mail_address.go:31.21,33.4 1 1 -github.com/muety/wakapi/models/mail_address.go:39.35,41.2 1 1 -github.com/muety/wakapi/models/mail_address.go:43.43,45.22 2 0 -github.com/muety/wakapi/models/mail_address.go:48.2,48.12 1 0 -github.com/muety/wakapi/models/mail_address.go:45.22,47.3 1 0 -github.com/muety/wakapi/models/mail_address.go:51.46,53.22 2 1 -github.com/muety/wakapi/models/mail_address.go:56.2,56.12 1 1 -github.com/muety/wakapi/models/mail_address.go:53.22,55.3 1 1 -github.com/muety/wakapi/models/mail_address.go:59.40,60.22 1 1 -github.com/muety/wakapi/models/mail_address.go:65.2,65.13 1 1 -github.com/muety/wakapi/models/mail_address.go:60.22,61.17 1 1 -github.com/muety/wakapi/models/mail_address.go:61.17,63.4 1 1 -github.com/muety/wakapi/models/models.go:3.14,5.2 0 1 -github.com/muety/wakapi/models/project_label.go:14.39,16.2 1 0 -github.com/muety/wakapi/middlewares/logging.go:20.102,21.43 1 0 -github.com/muety/wakapi/middlewares/logging.go:21.43,27.3 1 0 -github.com/muety/wakapi/middlewares/logging.go:30.80,39.44 7 0 -github.com/muety/wakapi/middlewares/logging.go:45.2,54.3 1 0 -github.com/muety/wakapi/middlewares/logging.go:39.44,40.38 1 0 -github.com/muety/wakapi/middlewares/logging.go:40.38,42.4 1 0 -github.com/muety/wakapi/middlewares/logging.go:57.41,59.14 2 0 -github.com/muety/wakapi/middlewares/logging.go:62.2,62.14 1 0 -github.com/muety/wakapi/middlewares/logging.go:65.2,65.11 1 0 -github.com/muety/wakapi/middlewares/logging.go:59.14,61.3 1 0 -github.com/muety/wakapi/middlewares/logging.go:62.14,64.3 1 0 -github.com/muety/wakapi/middlewares/logging.go:68.41,69.42 1 0 -github.com/muety/wakapi/middlewares/logging.go:72.2,72.12 1 0 -github.com/muety/wakapi/middlewares/logging.go:69.42,71.3 1 0 -github.com/muety/wakapi/middlewares/logging.go:103.52,105.2 1 0 -github.com/muety/wakapi/middlewares/logging.go:117.45,118.20 1 0 -github.com/muety/wakapi/middlewares/logging.go:118.20,122.3 3 0 -github.com/muety/wakapi/middlewares/logging.go:124.54,127.18 3 0 -github.com/muety/wakapi/middlewares/logging.go:134.2,135.15 2 0 -github.com/muety/wakapi/middlewares/logging.go:127.18,130.17 2 0 -github.com/muety/wakapi/middlewares/logging.go:130.17,132.4 1 0 -github.com/muety/wakapi/middlewares/logging.go:137.42,138.20 1 0 -github.com/muety/wakapi/middlewares/logging.go:138.20,140.3 1 0 -github.com/muety/wakapi/middlewares/logging.go:142.36,144.2 1 0 -github.com/muety/wakapi/middlewares/logging.go:145.42,147.2 1 0 -github.com/muety/wakapi/middlewares/logging.go:148.40,150.2 1 0 -github.com/muety/wakapi/middlewares/logging.go:151.52,153.2 1 0 -github.com/muety/wakapi/middlewares/principal.go:15.62,17.2 1 0 -github.com/muety/wakapi/middlewares/principal.go:19.58,21.2 1 0 -github.com/muety/wakapi/middlewares/principal.go:23.60,25.2 1 0 -github.com/muety/wakapi/middlewares/principal.go:46.71,47.43 1 0 -github.com/muety/wakapi/middlewares/principal.go:47.43,49.3 1 0 -github.com/muety/wakapi/middlewares/principal.go:52.81,55.2 2 0 -github.com/muety/wakapi/middlewares/principal.go:57.55,58.52 1 0 -github.com/muety/wakapi/middlewares/principal.go:58.52,60.3 1 0 -github.com/muety/wakapi/middlewares/principal.go:63.49,64.52 1 0 -github.com/muety/wakapi/middlewares/principal.go:67.2,67.12 1 0 -github.com/muety/wakapi/middlewares/principal.go:64.52,66.3 1 0 -github.com/muety/wakapi/middlewares/security.go:19.62,20.43 1 0 -github.com/muety/wakapi/middlewares/security.go:20.43,22.3 1 0 -github.com/muety/wakapi/middlewares/security.go:25.80,26.36 1 0 -github.com/muety/wakapi/middlewares/security.go:31.2,31.27 1 0 -github.com/muety/wakapi/middlewares/security.go:26.36,27.30 1 0 -github.com/muety/wakapi/middlewares/security.go:27.30,29.4 1 0 -github.com/muety/wakapi/middlewares/sentry.go:15.60,16.43 1 0 -github.com/muety/wakapi/middlewares/sentry.go:16.43,20.3 1 0 -github.com/muety/wakapi/middlewares/sentry.go:23.78,26.54 3 0 -github.com/muety/wakapi/middlewares/sentry.go:26.54,27.43 1 0 -github.com/muety/wakapi/middlewares/sentry.go:27.43,29.4 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:31.91,37.2 1 1 -github.com/muety/wakapi/middlewares/authenticate.go:39.90,42.2 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:44.90,47.2 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:49.71,50.71 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:50.71,52.3 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:55.107,59.16 3 0 -github.com/muety/wakapi/middlewares/authenticate.go:62.2,62.16 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:66.2,66.31 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:82.2,83.12 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:59.16,61.3 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:62.16,64.3 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:66.31,67.31 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:72.3,72.29 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:79.3,79.9 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:67.31,70.4 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:72.29,75.4 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:75.9,78.4 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:86.70,87.39 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:92.2,92.14 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:87.39,88.60 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:88.60,90.4 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:95.98,97.16 2 1 -github.com/muety/wakapi/middlewares/authenticate.go:101.2,104.16 4 1 -github.com/muety/wakapi/middlewares/authenticate.go:107.2,107.18 1 1 -github.com/muety/wakapi/middlewares/authenticate.go:97.16,99.3 1 1 -github.com/muety/wakapi/middlewares/authenticate.go:104.16,106.3 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:110.97,114.19 4 1 -github.com/muety/wakapi/middlewares/authenticate.go:117.2,118.16 2 1 -github.com/muety/wakapi/middlewares/authenticate.go:121.2,121.18 1 1 -github.com/muety/wakapi/middlewares/authenticate.go:114.19,116.3 1 1 -github.com/muety/wakapi/middlewares/authenticate.go:118.16,120.3 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:124.92,126.16 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:130.2,131.16 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:138.2,138.18 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:126.16,128.3 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:131.16,133.3 1 0 -github.com/muety/wakapi/middlewares/filetype.go:13.83,14.43 1 0 -github.com/muety/wakapi/middlewares/filetype.go:14.43,19.3 1 0 -github.com/muety/wakapi/middlewares/filetype.go:22.84,24.34 2 0 -github.com/muety/wakapi/middlewares/filetype.go:31.2,31.27 1 0 -github.com/muety/wakapi/middlewares/filetype.go:24.34,25.50 1 0 -github.com/muety/wakapi/middlewares/filetype.go:25.50,29.4 3 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:25.112,32.2 1 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:34.59,38.2 2 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:50.68,52.16 2 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:57.2,58.16 2 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:64.2,65.50 2 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:70.2,78.16 3 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:84.2,86.46 3 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:52.16,55.3 2 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:58.16,62.3 3 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:65.50,68.3 2 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:78.16,82.3 3 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:89.144,91.16 2 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:95.2,102.29 3 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:106.2,114.16 2 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:118.2,118.36 1 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:91.16,93.3 1 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:102.29,104.3 1 0 -github.com/muety/wakapi/routes/compat/shields/v1/badge.go:114.16,116.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:22.116,28.2 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:30.61,36.2 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:47.70,49.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:53.2,54.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:60.2,61.46 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:49.16,51.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:54.16,58.3 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:64.116,73.29 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:77.2,85.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:89.2,89.36 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:73.29,75.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/all_time.go:85.16,87.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:29.124,34.2 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:36.63,42.2 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:53.72,55.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:59.2,62.16 4 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:68.2,72.16 4 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:79.2,85.47 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:55.16,57.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:62.16,66.3 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/heartbeat.go:72.16,77.3 4 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:23.123,29.2 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:31.62,37.2 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:49.71,51.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:55.2,56.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:63.2,66.28 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:72.2,73.46 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:51.16,53.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:56.16,61.3 4 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:66.28,67.30 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/projects.go:67.30,69.4 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:22.112,28.2 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:30.59,41.2 6 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:61.68,66.56 4 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:70.2,71.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:77.2,78.22 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:82.2,83.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:89.2,91.69 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:97.2,98.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:104.2,107.33 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:110.2,110.35 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:113.2,113.34 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:116.2,116.29 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:119.2,119.34 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:123.2,123.49 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:66.56,68.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:71.16,75.3 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:78.22,80.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:83.16,87.3 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:91.69,95.3 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:98.16,102.3 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:107.33,109.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:110.35,112.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:113.34,115.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:116.29,118.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:119.34,121.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:126.136,135.16 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:139.2,139.36 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/stats.go:135.16,137.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:28.120,34.2 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:36.63,45.2 5 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:56.72,58.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:61.2,64.22 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:68.2,69.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:75.2,76.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:81.2,85.4 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:58.16,60.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:64.22,66.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:69.16,73.3 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:76.16,80.3 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:88.115,97.29 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:101.2,102.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:106.2,106.36 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:97.29,99.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/statusbar.go:102.16,104.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:27.120,33.2 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:35.63,41.2 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:66.72,68.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:72.2,73.16 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:79.2,80.46 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:68.16,70.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:73.16,77.3 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:83.95,89.19 5 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:95.2,96.22 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:125.2,139.37 6 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:150.2,150.38 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:89.19,90.56 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:90.56,92.4 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:96.22,98.98 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:98.98,100.4 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:100.9,102.4 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:103.8,103.130 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:103.130,106.3 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:106.8,111.17 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:115.3,116.17 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:111.17,113.4 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:116.17,118.4 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:139.37,141.17 2 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:145.3,147.25 3 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/summaries.go:141.17,143.4 1 0 -github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:21.116,27.2 1 1 -github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:29.59,35.2 3 1 -github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:46.68,48.16 2 1 -github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:52.2,53.72 2 1 -github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:59.2,59.72 1 1 -github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:48.16,50.3 1 1 -github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:53.72,55.3 1 1 -github.com/muety/wakapi/routes/compat/wakatime/v1/users.go:55.8,57.3 1 0 -github.com/muety/wakapi/services/diagnostics.go:14.101,19.2 1 0 -github.com/muety/wakapi/services/diagnostics.go:21.101,24.2 2 0 -github.com/muety/wakapi/services/duration.go:18.78,24.2 2 1 -github.com/muety/wakapi/services/duration.go:26.123,29.42 2 1 -github.com/muety/wakapi/services/duration.go:35.2,36.16 2 1 -github.com/muety/wakapi/services/duration.go:43.2,48.31 4 1 -github.com/muety/wakapi/services/duration.go:96.2,98.31 2 1 -github.com/muety/wakapi/services/duration.go:111.2,111.49 1 1 -github.com/muety/wakapi/services/duration.go:115.2,115.32 1 1 -github.com/muety/wakapi/services/duration.go:29.42,30.90 1 1 -github.com/muety/wakapi/services/duration.go:30.90,32.4 1 1 -github.com/muety/wakapi/services/duration.go:36.16,38.3 1 0 -github.com/muety/wakapi/services/duration.go:48.31,49.42 1 1 -github.com/muety/wakapi/services/duration.go:53.3,55.62 2 1 -github.com/muety/wakapi/services/duration.go:59.3,59.20 1 1 -github.com/muety/wakapi/services/duration.go:64.3,74.15 3 1 -github.com/muety/wakapi/services/duration.go:77.3,83.84 2 1 -github.com/muety/wakapi/services/duration.go:93.3,93.10 1 1 -github.com/muety/wakapi/services/duration.go:49.42,50.12 1 1 -github.com/muety/wakapi/services/duration.go:55.62,57.4 1 1 -github.com/muety/wakapi/services/duration.go:59.20,61.12 2 1 -github.com/muety/wakapi/services/duration.go:74.15,76.4 1 0 -github.com/muety/wakapi/services/duration.go:83.84,85.41 2 1 -github.com/muety/wakapi/services/duration.go:88.4,88.15 1 1 -github.com/muety/wakapi/services/duration.go:85.41,87.5 1 1 -github.com/muety/wakapi/services/duration.go:89.9,91.4 1 1 -github.com/muety/wakapi/services/duration.go:98.31,99.26 1 1 -github.com/muety/wakapi/services/duration.go:99.26,104.23 1 1 -github.com/muety/wakapi/services/duration.go:107.4,107.36 1 1 -github.com/muety/wakapi/services/duration.go:104.23,106.5 1 1 -github.com/muety/wakapi/services/duration.go:111.49,113.3 1 1 -github.com/muety/wakapi/services/language_mapping.go:18.118,24.2 1 0 -github.com/muety/wakapi/services/language_mapping.go:26.86,28.2 1 0 -github.com/muety/wakapi/services/language_mapping.go:30.96,31.53 1 0 -github.com/muety/wakapi/services/language_mapping.go:35.2,36.16 2 0 -github.com/muety/wakapi/services/language_mapping.go:39.2,40.22 2 0 -github.com/muety/wakapi/services/language_mapping.go:31.53,33.3 1 0 -github.com/muety/wakapi/services/language_mapping.go:36.16,38.3 1 0 -github.com/muety/wakapi/services/language_mapping.go:43.92,46.16 3 0 -github.com/muety/wakapi/services/language_mapping.go:50.2,50.33 1 0 -github.com/muety/wakapi/services/language_mapping.go:53.2,53.22 1 0 -github.com/muety/wakapi/services/language_mapping.go:46.16,48.3 1 0 -github.com/muety/wakapi/services/language_mapping.go:50.33,52.3 1 0 -github.com/muety/wakapi/services/language_mapping.go:56.109,58.16 2 0 -github.com/muety/wakapi/services/language_mapping.go:62.2,63.20 2 0 -github.com/muety/wakapi/services/language_mapping.go:58.16,60.3 1 0 -github.com/muety/wakapi/services/language_mapping.go:66.82,67.26 1 0 -github.com/muety/wakapi/services/language_mapping.go:70.2,72.12 3 0 -github.com/muety/wakapi/services/language_mapping.go:67.26,69.3 1 0 -github.com/muety/wakapi/services/language_mapping.go:75.74,78.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:26.141,40.33 3 0 +github.com/muety/wakapi/services/heartbeat.go:48.2,48.12 1 0 +github.com/muety/wakapi/services/heartbeat.go:40.33,41.31 1 0 +github.com/muety/wakapi/services/heartbeat.go:41.31,45.4 3 0 +github.com/muety/wakapi/services/heartbeat.go:51.72,54.2 2 0 +github.com/muety/wakapi/services/heartbeat.go:56.80,57.26 1 0 +github.com/muety/wakapi/services/heartbeat.go:61.2,65.32 3 0 +github.com/muety/wakapi/services/heartbeat.go:73.2,74.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:77.2,77.12 1 0 +github.com/muety/wakapi/services/heartbeat.go:57.26,59.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:65.32,66.31 1 0 +github.com/muety/wakapi/services/heartbeat.go:70.3,70.46 1 0 +github.com/muety/wakapi/services/heartbeat.go:66.31,69.4 2 0 +github.com/muety/wakapi/services/heartbeat.go:74.16,76.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:80.69,82.8 2 0 +github.com/muety/wakapi/services/heartbeat.go:85.2,86.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:89.2,89.19 1 0 +github.com/muety/wakapi/services/heartbeat.go:82.8,84.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:86.16,88.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:92.76,95.8 3 0 +github.com/muety/wakapi/services/heartbeat.go:98.2,99.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:102.2,102.19 1 0 +github.com/muety/wakapi/services/heartbeat.go:95.8,97.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:99.16,101.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:105.96,109.26 3 0 +github.com/muety/wakapi/services/heartbeat.go:119.2,120.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:124.2,124.28 1 0 +github.com/muety/wakapi/services/heartbeat.go:130.2,130.24 1 0 +github.com/muety/wakapi/services/heartbeat.go:109.26,112.9 3 0 +github.com/muety/wakapi/services/heartbeat.go:112.9,114.4 1 0 +github.com/muety/wakapi/services/heartbeat.go:114.9,116.4 1 0 +github.com/muety/wakapi/services/heartbeat.go:120.16,122.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:124.28,128.3 3 0 +github.com/muety/wakapi/services/heartbeat.go:133.111,135.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:138.2,138.43 1 0 +github.com/muety/wakapi/services/heartbeat.go:135.16,137.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:141.145,143.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:146.2,146.43 1 0 +github.com/muety/wakapi/services/heartbeat.go:143.16,145.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:149.92,151.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:153.116,155.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:157.78,159.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:161.104,163.54 2 0 +github.com/muety/wakapi/services/heartbeat.go:169.2,170.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:174.2,175.28 2 0 +github.com/muety/wakapi/services/heartbeat.go:181.2,182.22 2 0 +github.com/muety/wakapi/services/heartbeat.go:163.54,167.3 3 0 +github.com/muety/wakapi/services/heartbeat.go:170.16,172.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:175.28,176.33 1 0 +github.com/muety/wakapi/services/heartbeat.go:176.33,178.4 1 0 +github.com/muety/wakapi/services/heartbeat.go:185.62,188.2 2 0 +github.com/muety/wakapi/services/heartbeat.go:190.68,193.2 2 0 +github.com/muety/wakapi/services/heartbeat.go:195.87,198.2 2 0 +github.com/muety/wakapi/services/heartbeat.go:200.116,202.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:206.2,206.28 1 0 +github.com/muety/wakapi/services/heartbeat.go:210.2,210.24 1 0 +github.com/muety/wakapi/services/heartbeat.go:202.16,204.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:206.28,208.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:213.96,215.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:217.107,219.55 2 0 +github.com/muety/wakapi/services/heartbeat.go:219.55,225.36 4 0 +github.com/muety/wakapi/services/heartbeat.go:225.36,230.4 2 0 +github.com/muety/wakapi/services/heartbeat.go:234.85,241.2 6 0 +github.com/muety/wakapi/services/heartbeat.go:243.74,244.32 1 0 +github.com/muety/wakapi/services/heartbeat.go:244.32,249.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:252.72,254.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:256.58,258.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:260.60,262.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:264.94,266.48 2 0 +github.com/muety/wakapi/services/heartbeat.go:272.2,272.18 1 0 +github.com/muety/wakapi/services/heartbeat.go:266.48,268.18 2 0 +github.com/muety/wakapi/services/heartbeat.go:268.18,270.4 1 0 +github.com/muety/wakapi/services/misc.go:44.188,56.2 1 0 +github.com/muety/wakapi/services/misc.go:58.36,60.95 2 0 +github.com/muety/wakapi/services/misc.go:64.2,65.111 2 0 +github.com/muety/wakapi/services/misc.go:69.2,69.128 1 0 +github.com/muety/wakapi/services/misc.go:77.2,77.33 1 0 +github.com/muety/wakapi/services/misc.go:82.2,82.33 1 0 +github.com/muety/wakapi/services/misc.go:87.2,87.170 1 0 +github.com/muety/wakapi/services/misc.go:60.95,62.3 1 0 +github.com/muety/wakapi/services/misc.go:65.111,67.3 1 0 +github.com/muety/wakapi/services/misc.go:69.128,71.125 2 0 +github.com/muety/wakapi/services/misc.go:71.125,73.4 1 0 +github.com/muety/wakapi/services/misc.go:77.33,78.71 1 0 +github.com/muety/wakapi/services/misc.go:78.71,80.4 1 0 +github.com/muety/wakapi/services/misc.go:82.33,83.80 1 0 +github.com/muety/wakapi/services/misc.go:83.80,85.4 1 0 +github.com/muety/wakapi/services/misc.go:87.170,88.83 1 0 +github.com/muety/wakapi/services/misc.go:88.83,90.4 1 0 +github.com/muety/wakapi/services/misc.go:94.42,96.36 2 0 +github.com/muety/wakapi/services/misc.go:99.2,102.16 3 0 +github.com/muety/wakapi/services/misc.go:107.2,111.26 4 0 +github.com/muety/wakapi/services/misc.go:123.2,123.30 1 0 +github.com/muety/wakapi/services/misc.go:96.36,98.3 1 0 +github.com/muety/wakapi/services/misc.go:102.16,105.3 2 0 +github.com/muety/wakapi/services/misc.go:111.26,113.46 2 0 +github.com/muety/wakapi/services/misc.go:113.46,116.4 2 0 +github.com/muety/wakapi/services/misc.go:116.18,119.4 2 0 +github.com/muety/wakapi/services/misc.go:123.30,124.58 1 0 +github.com/muety/wakapi/services/misc.go:124.58,128.19 1 0 +github.com/muety/wakapi/services/misc.go:132.4,135.19 1 0 +github.com/muety/wakapi/services/misc.go:128.19,130.5 1 0 +github.com/muety/wakapi/services/misc.go:135.19,137.5 1 0 +github.com/muety/wakapi/services/misc.go:138.9,140.4 1 0 +github.com/muety/wakapi/services/misc.go:144.51,147.45 2 0 +github.com/muety/wakapi/services/misc.go:147.45,148.41 1 0 +github.com/muety/wakapi/services/misc.go:152.3,155.17 3 0 +github.com/muety/wakapi/services/misc.go:160.3,160.33 1 0 +github.com/muety/wakapi/services/misc.go:148.41,151.4 2 0 +github.com/muety/wakapi/services/misc.go:155.17,158.4 2 0 +github.com/muety/wakapi/services/misc.go:160.33,161.31 1 0 +github.com/muety/wakapi/services/misc.go:165.4,169.19 2 0 +github.com/muety/wakapi/services/misc.go:161.31,162.13 1 0 +github.com/muety/wakapi/services/misc.go:169.19,171.5 1 0 +github.com/muety/wakapi/services/misc.go:173.17,175.3 1 0 +github.com/muety/wakapi/services/misc.go:185.54,186.82 1 0 +github.com/muety/wakapi/services/misc.go:190.2,193.16 3 0 +github.com/muety/wakapi/services/misc.go:198.2,199.104 2 0 +github.com/muety/wakapi/services/misc.go:208.2,208.26 1 0 +github.com/muety/wakapi/services/misc.go:186.82,188.3 1 0 +github.com/muety/wakapi/services/misc.go:193.16,196.3 2 0 +github.com/muety/wakapi/services/misc.go:199.104,200.122 1 0 +github.com/muety/wakapi/services/misc.go:200.122,202.4 1 0 +github.com/muety/wakapi/services/misc.go:203.8,206.3 2 0 +github.com/muety/wakapi/services/misc.go:208.26,209.49 1 0 +github.com/muety/wakapi/services/misc.go:216.3,216.92 1 0 +github.com/muety/wakapi/services/misc.go:220.3,221.89 2 0 +github.com/muety/wakapi/services/misc.go:209.49,211.4 1 0 +github.com/muety/wakapi/services/misc.go:216.92,217.12 1 0 +github.com/muety/wakapi/services/misc.go:221.89,223.4 1 0 +github.com/muety/wakapi/services/misc.go:227.73,229.16 2 0 +github.com/muety/wakapi/services/misc.go:233.2,233.27 1 0 +github.com/muety/wakapi/services/misc.go:229.16,232.3 2 0 +github.com/muety/wakapi/services/misc.go:236.99,238.33 2 0 +github.com/muety/wakapi/services/misc.go:238.33,242.86 3 0 +github.com/muety/wakapi/services/misc.go:247.3,250.18 1 0 +github.com/muety/wakapi/services/misc.go:242.86,245.4 2 0 +github.com/muety/wakapi/services/misc.go:250.18,252.4 1 0 +github.com/muety/wakapi/services/misc.go:256.53,259.2 2 0 +github.com/muety/wakapi/services/misc.go:261.53,264.2 2 0 +github.com/muety/wakapi/services/misc.go:266.64,269.2 2 0 +github.com/muety/wakapi/services/housekeeping.go:20.144,29.2 1 0 +github.com/muety/wakapi/services/housekeeping.go:31.42,32.43 1 0 +github.com/muety/wakapi/services/housekeeping.go:36.2,38.47 2 0 +github.com/muety/wakapi/services/housekeeping.go:62.2,62.16 1 0 +github.com/muety/wakapi/services/housekeeping.go:32.43,34.3 1 0 +github.com/muety/wakapi/services/housekeeping.go:38.47,41.17 2 0 +github.com/muety/wakapi/services/housekeeping.go:47.3,47.27 1 0 +github.com/muety/wakapi/services/housekeeping.go:41.17,44.4 2 0 +github.com/muety/wakapi/services/housekeeping.go:47.27,49.31 1 0 +github.com/muety/wakapi/services/housekeeping.go:53.4,54.35 2 0 +github.com/muety/wakapi/services/housekeeping.go:49.31,50.13 1 0 +github.com/muety/wakapi/services/housekeeping.go:54.35,55.75 1 0 +github.com/muety/wakapi/services/housekeeping.go:55.75,57.6 1 0 +github.com/muety/wakapi/services/housekeeping.go:62.16,64.3 1 0 +github.com/muety/wakapi/services/housekeeping.go:67.94,71.73 2 0 +github.com/muety/wakapi/services/housekeeping.go:76.2,77.74 2 0 +github.com/muety/wakapi/services/housekeeping.go:81.2,81.12 1 0 +github.com/muety/wakapi/services/housekeeping.go:71.73,73.3 1 0 +github.com/muety/wakapi/services/housekeeping.go:77.74,79.3 1 0 github.com/muety/wakapi/services/project_label.go:21.111,28.2 1 0 github.com/muety/wakapi/services/project_label.go:30.80,32.2 1 0 github.com/muety/wakapi/services/project_label.go:34.90,35.51 1 0 @@ -978,6 +1088,25 @@ github.com/muety/wakapi/services/report.go:121.2,122.12 2 0 github.com/muety/wakapi/services/report.go:93.22,96.3 2 0 github.com/muety/wakapi/services/report.go:104.16,107.3 2 0 github.com/muety/wakapi/services/report.go:116.65,119.3 2 0 +github.com/muety/wakapi/services/language_mapping.go:18.118,24.2 1 0 +github.com/muety/wakapi/services/language_mapping.go:26.86,28.2 1 0 +github.com/muety/wakapi/services/language_mapping.go:30.96,31.53 1 0 +github.com/muety/wakapi/services/language_mapping.go:35.2,36.16 2 0 +github.com/muety/wakapi/services/language_mapping.go:39.2,40.22 2 0 +github.com/muety/wakapi/services/language_mapping.go:31.53,33.3 1 0 +github.com/muety/wakapi/services/language_mapping.go:36.16,38.3 1 0 +github.com/muety/wakapi/services/language_mapping.go:43.92,46.16 3 0 +github.com/muety/wakapi/services/language_mapping.go:50.2,50.33 1 0 +github.com/muety/wakapi/services/language_mapping.go:53.2,53.22 1 0 +github.com/muety/wakapi/services/language_mapping.go:46.16,48.3 1 0 +github.com/muety/wakapi/services/language_mapping.go:50.33,52.3 1 0 +github.com/muety/wakapi/services/language_mapping.go:56.109,58.16 2 0 +github.com/muety/wakapi/services/language_mapping.go:62.2,63.20 2 0 +github.com/muety/wakapi/services/language_mapping.go:58.16,60.3 1 0 +github.com/muety/wakapi/services/language_mapping.go:66.82,67.26 1 0 +github.com/muety/wakapi/services/language_mapping.go:70.2,72.12 3 0 +github.com/muety/wakapi/services/language_mapping.go:67.26,69.3 1 0 +github.com/muety/wakapi/services/language_mapping.go:75.74,78.2 1 0 github.com/muety/wakapi/services/summary.go:29.189,41.33 3 1 github.com/muety/wakapi/services/summary.go:47.2,47.12 1 1 github.com/muety/wakapi/services/summary.go:41.33,42.31 1 1 @@ -1107,78 +1236,145 @@ github.com/muety/wakapi/services/summary.go:474.3,474.24 1 1 github.com/muety/wakapi/services/summary.go:465.17,466.33 1 1 github.com/muety/wakapi/services/summary.go:466.33,468.5 1 1 github.com/muety/wakapi/services/summary.go:471.28,473.4 1 1 -github.com/muety/wakapi/services/heartbeat.go:26.141,40.33 3 0 -github.com/muety/wakapi/services/heartbeat.go:48.2,48.12 1 0 -github.com/muety/wakapi/services/heartbeat.go:40.33,41.31 1 0 -github.com/muety/wakapi/services/heartbeat.go:41.31,45.4 3 0 -github.com/muety/wakapi/services/heartbeat.go:51.72,54.2 2 0 -github.com/muety/wakapi/services/heartbeat.go:56.80,57.26 1 0 -github.com/muety/wakapi/services/heartbeat.go:61.2,65.32 3 0 -github.com/muety/wakapi/services/heartbeat.go:73.2,74.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:77.2,77.12 1 0 -github.com/muety/wakapi/services/heartbeat.go:57.26,59.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:65.32,66.31 1 0 -github.com/muety/wakapi/services/heartbeat.go:70.3,70.46 1 0 -github.com/muety/wakapi/services/heartbeat.go:66.31,69.4 2 0 -github.com/muety/wakapi/services/heartbeat.go:74.16,76.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:80.69,82.8 2 0 -github.com/muety/wakapi/services/heartbeat.go:85.2,86.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:89.2,89.19 1 0 -github.com/muety/wakapi/services/heartbeat.go:82.8,84.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:86.16,88.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:92.76,95.8 3 0 -github.com/muety/wakapi/services/heartbeat.go:98.2,99.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:102.2,102.19 1 0 -github.com/muety/wakapi/services/heartbeat.go:95.8,97.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:99.16,101.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:105.96,109.26 3 0 -github.com/muety/wakapi/services/heartbeat.go:119.2,120.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:124.2,124.28 1 0 -github.com/muety/wakapi/services/heartbeat.go:130.2,130.24 1 0 -github.com/muety/wakapi/services/heartbeat.go:109.26,112.9 3 0 -github.com/muety/wakapi/services/heartbeat.go:112.9,114.4 1 0 -github.com/muety/wakapi/services/heartbeat.go:114.9,116.4 1 0 -github.com/muety/wakapi/services/heartbeat.go:120.16,122.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:124.28,128.3 3 0 -github.com/muety/wakapi/services/heartbeat.go:133.111,135.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:138.2,138.43 1 0 -github.com/muety/wakapi/services/heartbeat.go:135.16,137.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:141.145,143.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:146.2,146.43 1 0 -github.com/muety/wakapi/services/heartbeat.go:143.16,145.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:149.92,151.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:153.116,155.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:157.78,159.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:161.104,163.54 2 0 -github.com/muety/wakapi/services/heartbeat.go:169.2,170.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:174.2,175.28 2 0 -github.com/muety/wakapi/services/heartbeat.go:181.2,182.22 2 0 -github.com/muety/wakapi/services/heartbeat.go:163.54,167.3 3 0 -github.com/muety/wakapi/services/heartbeat.go:170.16,172.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:175.28,176.33 1 0 -github.com/muety/wakapi/services/heartbeat.go:176.33,178.4 1 0 -github.com/muety/wakapi/services/heartbeat.go:185.62,188.2 2 0 -github.com/muety/wakapi/services/heartbeat.go:190.68,193.2 2 0 -github.com/muety/wakapi/services/heartbeat.go:195.87,198.2 2 0 -github.com/muety/wakapi/services/heartbeat.go:200.116,202.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:206.2,206.28 1 0 -github.com/muety/wakapi/services/heartbeat.go:210.2,210.24 1 0 -github.com/muety/wakapi/services/heartbeat.go:202.16,204.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:206.28,208.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:213.96,215.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:217.107,219.55 2 0 -github.com/muety/wakapi/services/heartbeat.go:219.55,225.36 4 0 -github.com/muety/wakapi/services/heartbeat.go:225.36,230.4 2 0 -github.com/muety/wakapi/services/heartbeat.go:234.85,241.2 6 0 -github.com/muety/wakapi/services/heartbeat.go:243.74,244.32 1 0 -github.com/muety/wakapi/services/heartbeat.go:244.32,249.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:252.72,254.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:256.58,258.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:260.60,262.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:264.94,266.48 2 0 -github.com/muety/wakapi/services/heartbeat.go:272.2,272.18 1 0 -github.com/muety/wakapi/services/heartbeat.go:266.48,268.18 2 0 -github.com/muety/wakapi/services/heartbeat.go:268.18,270.4 1 0 +github.com/muety/wakapi/services/aggregation.go:31.142,41.2 1 0 +github.com/muety/wakapi/services/aggregation.go:50.43,53.52 2 0 +github.com/muety/wakapi/services/aggregation.go:53.52,54.80 1 0 +github.com/muety/wakapi/services/aggregation.go:54.80,56.4 1 0 +github.com/muety/wakapi/services/aggregation.go:57.58,59.3 1 0 +github.com/muety/wakapi/services/aggregation.go:62.92,63.47 1 0 +github.com/muety/wakapi/services/aggregation.go:66.2,72.16 4 0 +github.com/muety/wakapi/services/aggregation.go:78.2,79.16 2 0 +github.com/muety/wakapi/services/aggregation.go:85.2,86.44 2 0 +github.com/muety/wakapi/services/aggregation.go:91.2,93.12 3 0 +github.com/muety/wakapi/services/aggregation.go:105.2,105.41 1 0 +github.com/muety/wakapi/services/aggregation.go:123.2,123.12 1 0 +github.com/muety/wakapi/services/aggregation.go:63.47,65.3 1 0 +github.com/muety/wakapi/services/aggregation.go:72.16,75.3 2 0 +github.com/muety/wakapi/services/aggregation.go:79.16,82.3 2 0 +github.com/muety/wakapi/services/aggregation.go:86.44,88.3 1 0 +github.com/muety/wakapi/services/aggregation.go:93.12,94.28 1 0 +github.com/muety/wakapi/services/aggregation.go:94.28,96.47 2 0 +github.com/muety/wakapi/services/aggregation.go:96.47,98.5 1 0 +github.com/muety/wakapi/services/aggregation.go:98.19,100.5 1 0 +github.com/muety/wakapi/services/aggregation.go:105.41,106.71 1 0 +github.com/muety/wakapi/services/aggregation.go:110.3,110.21 1 0 +github.com/muety/wakapi/services/aggregation.go:106.71,107.12 1 0 +github.com/muety/wakapi/services/aggregation.go:110.21,114.4 1 0 +github.com/muety/wakapi/services/aggregation.go:114.9,114.62 1 0 +github.com/muety/wakapi/services/aggregation.go:114.62,118.4 1 0 +github.com/muety/wakapi/services/aggregation.go:126.60,127.115 1 0 +github.com/muety/wakapi/services/aggregation.go:127.115,129.3 1 0 +github.com/muety/wakapi/services/aggregation.go:129.8,131.60 2 0 +github.com/muety/wakapi/services/aggregation.go:131.60,133.4 1 0 +github.com/muety/wakapi/services/aggregation.go:137.83,152.41 5 0 +github.com/muety/wakapi/services/aggregation.go:152.41,162.3 3 0 +github.com/muety/wakapi/services/aggregation.go:165.83,168.27 3 0 +github.com/muety/wakapi/services/aggregation.go:173.2,174.12 2 0 +github.com/muety/wakapi/services/aggregation.go:168.27,169.34 1 0 +github.com/muety/wakapi/services/aggregation.go:169.34,171.4 1 0 +github.com/muety/wakapi/services/aggregation.go:177.79,180.27 3 0 +github.com/muety/wakapi/services/aggregation.go:180.27,182.3 1 0 +github.com/muety/wakapi/services/aggregation.go:185.34,188.2 2 0 +github.com/muety/wakapi/services/alias.go:19.77,24.2 1 1 +github.com/muety/wakapi/services/alias.go:28.60,29.43 1 1 +github.com/muety/wakapi/services/alias.go:32.2,32.14 1 1 +github.com/muety/wakapi/services/alias.go:29.43,31.3 1 1 +github.com/muety/wakapi/services/alias.go:35.62,37.16 2 1 +github.com/muety/wakapi/services/alias.go:40.2,40.12 1 1 +github.com/muety/wakapi/services/alias.go:37.16,39.3 1 1 +github.com/muety/wakapi/services/alias.go:43.59,44.51 1 1 +github.com/muety/wakapi/services/alias.go:44.51,46.3 1 0 +github.com/muety/wakapi/services/alias.go:49.76,50.32 1 0 +github.com/muety/wakapi/services/alias.go:53.2,53.49 1 0 +github.com/muety/wakapi/services/alias.go:50.32,52.3 1 0 +github.com/muety/wakapi/services/alias.go:53.49,55.3 1 0 +github.com/muety/wakapi/services/alias.go:55.8,57.3 1 0 +github.com/muety/wakapi/services/alias.go:60.102,61.38 1 0 +github.com/muety/wakapi/services/alias.go:64.2,64.39 1 0 +github.com/muety/wakapi/services/alias.go:61.38,63.3 1 0 +github.com/muety/wakapi/services/alias.go:67.113,68.38 1 0 +github.com/muety/wakapi/services/alias.go:71.2,71.39 1 0 +github.com/muety/wakapi/services/alias.go:68.38,70.3 1 0 +github.com/muety/wakapi/services/alias.go:74.108,75.32 1 1 +github.com/muety/wakapi/services/alias.go:79.2,79.49 1 1 +github.com/muety/wakapi/services/alias.go:87.2,87.19 1 1 +github.com/muety/wakapi/services/alias.go:75.32,77.3 1 1 +github.com/muety/wakapi/services/alias.go:79.49,80.47 1 1 +github.com/muety/wakapi/services/alias.go:80.47,81.49 1 1 +github.com/muety/wakapi/services/alias.go:81.49,83.5 1 1 +github.com/muety/wakapi/services/alias.go:90.77,92.16 2 0 +github.com/muety/wakapi/services/alias.go:96.2,100.20 3 0 +github.com/muety/wakapi/services/alias.go:92.16,94.3 1 0 +github.com/muety/wakapi/services/alias.go:103.60,104.24 1 0 +github.com/muety/wakapi/services/alias.go:107.2,110.16 2 0 +github.com/muety/wakapi/services/alias.go:114.2,116.12 2 0 +github.com/muety/wakapi/services/alias.go:104.24,106.3 1 0 +github.com/muety/wakapi/services/alias.go:110.16,112.3 1 0 +github.com/muety/wakapi/services/alias.go:119.69,123.28 3 0 +github.com/muety/wakapi/services/alias.go:131.2,134.16 2 0 +github.com/muety/wakapi/services/alias.go:140.2,140.31 1 0 +github.com/muety/wakapi/services/alias.go:144.2,144.12 1 0 +github.com/muety/wakapi/services/alias.go:123.28,124.21 1 0 +github.com/muety/wakapi/services/alias.go:127.3,128.16 2 0 +github.com/muety/wakapi/services/alias.go:124.21,126.4 1 0 +github.com/muety/wakapi/services/alias.go:134.16,135.29 1 0 +github.com/muety/wakapi/services/alias.go:135.29,137.4 1 0 +github.com/muety/wakapi/services/alias.go:140.31,142.3 1 0 +github.com/muety/wakapi/services/alias.go:147.74,148.14 1 0 +github.com/muety/wakapi/services/alias.go:148.14,149.57 1 0 +github.com/muety/wakapi/services/alias.go:149.57,153.4 3 0 +github.com/muety/wakapi/services/alias.go:154.8,155.57 1 0 +github.com/muety/wakapi/services/alias.go:155.57,157.48 2 0 +github.com/muety/wakapi/services/alias.go:162.4,162.52 1 0 +github.com/muety/wakapi/services/alias.go:157.48,158.26 1 0 +github.com/muety/wakapi/services/alias.go:158.26,160.6 1 0 +github.com/muety/wakapi/services/alias.go:167.116,168.32 1 0 +github.com/muety/wakapi/services/alias.go:171.2,171.49 1 0 +github.com/muety/wakapi/services/alias.go:168.32,170.3 1 0 +github.com/muety/wakapi/services/alias.go:171.49,173.47 2 0 +github.com/muety/wakapi/services/alias.go:178.3,178.30 1 0 +github.com/muety/wakapi/services/alias.go:173.47,174.16 1 0 +github.com/muety/wakapi/services/alias.go:174.16,176.5 1 0 +github.com/muety/wakapi/services/alias.go:179.8,181.3 1 0 +github.com/muety/wakapi/services/diagnostics.go:14.101,19.2 1 0 +github.com/muety/wakapi/services/diagnostics.go:21.101,24.2 2 0 +github.com/muety/wakapi/services/duration.go:18.78,24.2 2 1 +github.com/muety/wakapi/services/duration.go:26.123,29.42 2 1 +github.com/muety/wakapi/services/duration.go:35.2,36.16 2 1 +github.com/muety/wakapi/services/duration.go:43.2,48.31 4 1 +github.com/muety/wakapi/services/duration.go:96.2,98.31 2 1 +github.com/muety/wakapi/services/duration.go:111.2,111.49 1 1 +github.com/muety/wakapi/services/duration.go:115.2,115.32 1 1 +github.com/muety/wakapi/services/duration.go:29.42,30.90 1 1 +github.com/muety/wakapi/services/duration.go:30.90,32.4 1 1 +github.com/muety/wakapi/services/duration.go:36.16,38.3 1 0 +github.com/muety/wakapi/services/duration.go:48.31,49.42 1 1 +github.com/muety/wakapi/services/duration.go:53.3,55.62 2 1 +github.com/muety/wakapi/services/duration.go:59.3,59.20 1 1 +github.com/muety/wakapi/services/duration.go:64.3,74.15 3 1 +github.com/muety/wakapi/services/duration.go:77.3,83.84 2 1 +github.com/muety/wakapi/services/duration.go:93.3,93.10 1 1 +github.com/muety/wakapi/services/duration.go:49.42,50.12 1 1 +github.com/muety/wakapi/services/duration.go:55.62,57.4 1 1 +github.com/muety/wakapi/services/duration.go:59.20,61.12 2 1 +github.com/muety/wakapi/services/duration.go:74.15,76.4 1 0 +github.com/muety/wakapi/services/duration.go:83.84,85.41 2 1 +github.com/muety/wakapi/services/duration.go:88.4,88.15 1 1 +github.com/muety/wakapi/services/duration.go:85.41,87.5 1 1 +github.com/muety/wakapi/services/duration.go:89.9,91.4 1 1 +github.com/muety/wakapi/services/duration.go:98.31,99.26 1 1 +github.com/muety/wakapi/services/duration.go:99.26,104.23 1 1 +github.com/muety/wakapi/services/duration.go:107.4,107.36 1 1 +github.com/muety/wakapi/services/duration.go:104.23,106.5 1 1 +github.com/muety/wakapi/services/duration.go:111.49,113.3 1 1 +github.com/muety/wakapi/services/key_value.go:14.89,19.2 1 0 +github.com/muety/wakapi/services/key_value.go:21.83,23.2 1 0 +github.com/muety/wakapi/services/key_value.go:25.90,27.2 1 0 +github.com/muety/wakapi/services/key_value.go:29.78,31.16 2 0 +github.com/muety/wakapi/services/key_value.go:37.2,37.11 1 0 +github.com/muety/wakapi/services/key_value.go:31.16,36.3 1 0 +github.com/muety/wakapi/services/key_value.go:40.72,42.2 1 0 +github.com/muety/wakapi/services/key_value.go:44.60,46.2 1 0 github.com/muety/wakapi/services/leaderboard.go:30.159,43.33 3 0 github.com/muety/wakapi/services/leaderboard.go:67.2,67.12 1 0 github.com/muety/wakapi/services/leaderboard.go:43.33,44.31 1 0 @@ -1315,200 +1511,5 @@ github.com/muety/wakapi/services/user.go:202.8,204.3 1 0 github.com/muety/wakapi/services/user.go:208.85,210.2 1 0 github.com/muety/wakapi/services/user.go:212.57,219.2 4 0 github.com/muety/wakapi/services/user.go:221.38,223.2 1 0 -github.com/muety/wakapi/services/user.go:225.57,230.2 1 0 -github.com/muety/wakapi/services/aggregation.go:31.142,41.2 1 0 -github.com/muety/wakapi/services/aggregation.go:50.43,53.52 2 0 -github.com/muety/wakapi/services/aggregation.go:53.52,54.80 1 0 -github.com/muety/wakapi/services/aggregation.go:54.80,56.4 1 0 -github.com/muety/wakapi/services/aggregation.go:57.58,59.3 1 0 -github.com/muety/wakapi/services/aggregation.go:62.92,63.47 1 0 -github.com/muety/wakapi/services/aggregation.go:66.2,72.16 4 0 -github.com/muety/wakapi/services/aggregation.go:78.2,79.16 2 0 -github.com/muety/wakapi/services/aggregation.go:85.2,86.44 2 0 -github.com/muety/wakapi/services/aggregation.go:91.2,93.12 3 0 -github.com/muety/wakapi/services/aggregation.go:105.2,105.41 1 0 -github.com/muety/wakapi/services/aggregation.go:123.2,123.12 1 0 -github.com/muety/wakapi/services/aggregation.go:63.47,65.3 1 0 -github.com/muety/wakapi/services/aggregation.go:72.16,75.3 2 0 -github.com/muety/wakapi/services/aggregation.go:79.16,82.3 2 0 -github.com/muety/wakapi/services/aggregation.go:86.44,88.3 1 0 -github.com/muety/wakapi/services/aggregation.go:93.12,94.28 1 0 -github.com/muety/wakapi/services/aggregation.go:94.28,96.47 2 0 -github.com/muety/wakapi/services/aggregation.go:96.47,98.5 1 0 -github.com/muety/wakapi/services/aggregation.go:98.19,100.5 1 0 -github.com/muety/wakapi/services/aggregation.go:105.41,106.71 1 0 -github.com/muety/wakapi/services/aggregation.go:110.3,110.21 1 0 -github.com/muety/wakapi/services/aggregation.go:106.71,107.12 1 0 -github.com/muety/wakapi/services/aggregation.go:110.21,114.4 1 0 -github.com/muety/wakapi/services/aggregation.go:114.9,114.62 1 0 -github.com/muety/wakapi/services/aggregation.go:114.62,118.4 1 0 -github.com/muety/wakapi/services/aggregation.go:126.60,127.115 1 0 -github.com/muety/wakapi/services/aggregation.go:127.115,129.3 1 0 -github.com/muety/wakapi/services/aggregation.go:129.8,131.60 2 0 -github.com/muety/wakapi/services/aggregation.go:131.60,133.4 1 0 -github.com/muety/wakapi/services/aggregation.go:137.83,152.41 5 0 -github.com/muety/wakapi/services/aggregation.go:152.41,162.3 3 0 -github.com/muety/wakapi/services/aggregation.go:165.83,168.27 3 0 -github.com/muety/wakapi/services/aggregation.go:173.2,174.12 2 0 -github.com/muety/wakapi/services/aggregation.go:168.27,169.34 1 0 -github.com/muety/wakapi/services/aggregation.go:169.34,171.4 1 0 -github.com/muety/wakapi/services/aggregation.go:177.79,180.27 3 0 -github.com/muety/wakapi/services/aggregation.go:180.27,182.3 1 0 -github.com/muety/wakapi/services/aggregation.go:185.34,188.2 2 0 -github.com/muety/wakapi/services/alias.go:19.77,24.2 1 1 -github.com/muety/wakapi/services/alias.go:28.60,29.43 1 1 -github.com/muety/wakapi/services/alias.go:32.2,32.14 1 1 -github.com/muety/wakapi/services/alias.go:29.43,31.3 1 1 -github.com/muety/wakapi/services/alias.go:35.62,37.16 2 1 -github.com/muety/wakapi/services/alias.go:40.2,40.12 1 1 -github.com/muety/wakapi/services/alias.go:37.16,39.3 1 1 -github.com/muety/wakapi/services/alias.go:43.59,44.51 1 1 -github.com/muety/wakapi/services/alias.go:44.51,46.3 1 0 -github.com/muety/wakapi/services/alias.go:49.76,50.32 1 0 -github.com/muety/wakapi/services/alias.go:53.2,53.49 1 0 -github.com/muety/wakapi/services/alias.go:50.32,52.3 1 0 -github.com/muety/wakapi/services/alias.go:53.49,55.3 1 0 -github.com/muety/wakapi/services/alias.go:55.8,57.3 1 0 -github.com/muety/wakapi/services/alias.go:60.102,61.38 1 0 -github.com/muety/wakapi/services/alias.go:64.2,64.39 1 0 -github.com/muety/wakapi/services/alias.go:61.38,63.3 1 0 -github.com/muety/wakapi/services/alias.go:67.113,68.38 1 0 -github.com/muety/wakapi/services/alias.go:71.2,71.39 1 0 -github.com/muety/wakapi/services/alias.go:68.38,70.3 1 0 -github.com/muety/wakapi/services/alias.go:74.108,75.32 1 1 -github.com/muety/wakapi/services/alias.go:79.2,79.49 1 1 -github.com/muety/wakapi/services/alias.go:87.2,87.19 1 1 -github.com/muety/wakapi/services/alias.go:75.32,77.3 1 1 -github.com/muety/wakapi/services/alias.go:79.49,80.47 1 1 -github.com/muety/wakapi/services/alias.go:80.47,81.49 1 1 -github.com/muety/wakapi/services/alias.go:81.49,83.5 1 1 -github.com/muety/wakapi/services/alias.go:90.77,92.16 2 0 -github.com/muety/wakapi/services/alias.go:96.2,100.20 3 0 -github.com/muety/wakapi/services/alias.go:92.16,94.3 1 0 -github.com/muety/wakapi/services/alias.go:103.60,104.24 1 0 -github.com/muety/wakapi/services/alias.go:107.2,110.16 2 0 -github.com/muety/wakapi/services/alias.go:114.2,116.12 2 0 -github.com/muety/wakapi/services/alias.go:104.24,106.3 1 0 -github.com/muety/wakapi/services/alias.go:110.16,112.3 1 0 -github.com/muety/wakapi/services/alias.go:119.69,123.28 3 0 -github.com/muety/wakapi/services/alias.go:131.2,134.16 2 0 -github.com/muety/wakapi/services/alias.go:140.2,140.31 1 0 -github.com/muety/wakapi/services/alias.go:144.2,144.12 1 0 -github.com/muety/wakapi/services/alias.go:123.28,124.21 1 0 -github.com/muety/wakapi/services/alias.go:127.3,128.16 2 0 -github.com/muety/wakapi/services/alias.go:124.21,126.4 1 0 -github.com/muety/wakapi/services/alias.go:134.16,135.29 1 0 -github.com/muety/wakapi/services/alias.go:135.29,137.4 1 0 -github.com/muety/wakapi/services/alias.go:140.31,142.3 1 0 -github.com/muety/wakapi/services/alias.go:147.74,148.14 1 0 -github.com/muety/wakapi/services/alias.go:148.14,149.57 1 0 -github.com/muety/wakapi/services/alias.go:149.57,153.4 3 0 -github.com/muety/wakapi/services/alias.go:154.8,155.57 1 0 -github.com/muety/wakapi/services/alias.go:155.57,157.48 2 0 -github.com/muety/wakapi/services/alias.go:162.4,162.52 1 0 -github.com/muety/wakapi/services/alias.go:157.48,158.26 1 0 -github.com/muety/wakapi/services/alias.go:158.26,160.6 1 0 -github.com/muety/wakapi/services/alias.go:167.116,168.32 1 0 -github.com/muety/wakapi/services/alias.go:171.2,171.49 1 0 -github.com/muety/wakapi/services/alias.go:168.32,170.3 1 0 -github.com/muety/wakapi/services/alias.go:171.49,173.47 2 0 -github.com/muety/wakapi/services/alias.go:178.3,178.30 1 0 -github.com/muety/wakapi/services/alias.go:173.47,174.16 1 0 -github.com/muety/wakapi/services/alias.go:174.16,176.5 1 0 -github.com/muety/wakapi/services/alias.go:179.8,181.3 1 0 -github.com/muety/wakapi/services/housekeeping.go:20.144,29.2 1 0 -github.com/muety/wakapi/services/housekeeping.go:31.42,32.43 1 0 -github.com/muety/wakapi/services/housekeeping.go:36.2,38.47 2 0 -github.com/muety/wakapi/services/housekeeping.go:62.2,62.16 1 0 -github.com/muety/wakapi/services/housekeeping.go:32.43,34.3 1 0 -github.com/muety/wakapi/services/housekeeping.go:38.47,41.17 2 0 -github.com/muety/wakapi/services/housekeeping.go:47.3,47.27 1 0 -github.com/muety/wakapi/services/housekeeping.go:41.17,44.4 2 0 -github.com/muety/wakapi/services/housekeeping.go:47.27,49.31 1 0 -github.com/muety/wakapi/services/housekeeping.go:53.4,54.35 2 0 -github.com/muety/wakapi/services/housekeeping.go:49.31,50.13 1 0 -github.com/muety/wakapi/services/housekeeping.go:54.35,55.75 1 0 -github.com/muety/wakapi/services/housekeeping.go:55.75,57.6 1 0 -github.com/muety/wakapi/services/housekeeping.go:62.16,64.3 1 0 -github.com/muety/wakapi/services/housekeeping.go:67.94,71.73 2 0 -github.com/muety/wakapi/services/housekeeping.go:76.2,77.74 2 0 -github.com/muety/wakapi/services/housekeeping.go:81.2,81.12 1 0 -github.com/muety/wakapi/services/housekeeping.go:71.73,73.3 1 0 -github.com/muety/wakapi/services/housekeeping.go:77.74,79.3 1 0 -github.com/muety/wakapi/services/misc.go:44.188,56.2 1 0 -github.com/muety/wakapi/services/misc.go:58.36,60.95 2 0 -github.com/muety/wakapi/services/misc.go:64.2,65.111 2 0 -github.com/muety/wakapi/services/misc.go:69.2,69.128 1 0 -github.com/muety/wakapi/services/misc.go:77.2,77.33 1 0 -github.com/muety/wakapi/services/misc.go:82.2,82.33 1 0 -github.com/muety/wakapi/services/misc.go:87.2,87.170 1 0 -github.com/muety/wakapi/services/misc.go:60.95,62.3 1 0 -github.com/muety/wakapi/services/misc.go:65.111,67.3 1 0 -github.com/muety/wakapi/services/misc.go:69.128,71.125 2 0 -github.com/muety/wakapi/services/misc.go:71.125,73.4 1 0 -github.com/muety/wakapi/services/misc.go:77.33,78.71 1 0 -github.com/muety/wakapi/services/misc.go:78.71,80.4 1 0 -github.com/muety/wakapi/services/misc.go:82.33,83.80 1 0 -github.com/muety/wakapi/services/misc.go:83.80,85.4 1 0 -github.com/muety/wakapi/services/misc.go:87.170,88.83 1 0 -github.com/muety/wakapi/services/misc.go:88.83,90.4 1 0 -github.com/muety/wakapi/services/misc.go:94.42,96.36 2 0 -github.com/muety/wakapi/services/misc.go:99.2,102.16 3 0 -github.com/muety/wakapi/services/misc.go:107.2,111.26 4 0 -github.com/muety/wakapi/services/misc.go:123.2,123.30 1 0 -github.com/muety/wakapi/services/misc.go:96.36,98.3 1 0 -github.com/muety/wakapi/services/misc.go:102.16,105.3 2 0 -github.com/muety/wakapi/services/misc.go:111.26,113.46 2 0 -github.com/muety/wakapi/services/misc.go:113.46,116.4 2 0 -github.com/muety/wakapi/services/misc.go:116.18,119.4 2 0 -github.com/muety/wakapi/services/misc.go:123.30,124.58 1 0 -github.com/muety/wakapi/services/misc.go:124.58,128.19 1 0 -github.com/muety/wakapi/services/misc.go:132.4,135.19 1 0 -github.com/muety/wakapi/services/misc.go:128.19,130.5 1 0 -github.com/muety/wakapi/services/misc.go:135.19,137.5 1 0 -github.com/muety/wakapi/services/misc.go:138.9,140.4 1 0 -github.com/muety/wakapi/services/misc.go:144.51,147.45 2 0 -github.com/muety/wakapi/services/misc.go:147.45,148.41 1 0 -github.com/muety/wakapi/services/misc.go:152.3,155.17 3 0 -github.com/muety/wakapi/services/misc.go:160.3,160.33 1 0 -github.com/muety/wakapi/services/misc.go:148.41,151.4 2 0 -github.com/muety/wakapi/services/misc.go:155.17,158.4 2 0 -github.com/muety/wakapi/services/misc.go:160.33,161.31 1 0 -github.com/muety/wakapi/services/misc.go:165.4,169.19 2 0 -github.com/muety/wakapi/services/misc.go:161.31,162.13 1 0 -github.com/muety/wakapi/services/misc.go:169.19,171.5 1 0 -github.com/muety/wakapi/services/misc.go:173.17,175.3 1 0 -github.com/muety/wakapi/services/misc.go:185.54,186.82 1 0 -github.com/muety/wakapi/services/misc.go:190.2,193.16 3 0 -github.com/muety/wakapi/services/misc.go:198.2,199.104 2 0 -github.com/muety/wakapi/services/misc.go:208.2,208.26 1 0 -github.com/muety/wakapi/services/misc.go:186.82,188.3 1 0 -github.com/muety/wakapi/services/misc.go:193.16,196.3 2 0 -github.com/muety/wakapi/services/misc.go:199.104,200.122 1 0 -github.com/muety/wakapi/services/misc.go:200.122,202.4 1 0 -github.com/muety/wakapi/services/misc.go:203.8,206.3 2 0 -github.com/muety/wakapi/services/misc.go:208.26,209.49 1 0 -github.com/muety/wakapi/services/misc.go:216.3,216.92 1 0 -github.com/muety/wakapi/services/misc.go:220.3,221.89 2 0 -github.com/muety/wakapi/services/misc.go:209.49,211.4 1 0 -github.com/muety/wakapi/services/misc.go:216.92,217.12 1 0 -github.com/muety/wakapi/services/misc.go:221.89,223.4 1 0 -github.com/muety/wakapi/services/misc.go:227.73,229.16 2 0 -github.com/muety/wakapi/services/misc.go:233.2,233.27 1 0 -github.com/muety/wakapi/services/misc.go:229.16,232.3 2 0 -github.com/muety/wakapi/services/misc.go:236.99,238.33 2 0 -github.com/muety/wakapi/services/misc.go:238.33,242.86 3 0 -github.com/muety/wakapi/services/misc.go:247.3,250.18 1 0 -github.com/muety/wakapi/services/misc.go:242.86,245.4 2 0 -github.com/muety/wakapi/services/misc.go:250.18,252.4 1 0 -github.com/muety/wakapi/services/misc.go:256.53,259.2 2 0 -github.com/muety/wakapi/services/misc.go:261.53,264.2 2 0 -github.com/muety/wakapi/services/misc.go:266.64,269.2 2 0 -github.com/muety/wakapi/services/key_value.go:14.89,19.2 1 0 -github.com/muety/wakapi/services/key_value.go:21.83,23.2 1 0 -github.com/muety/wakapi/services/key_value.go:25.90,27.2 1 0 -github.com/muety/wakapi/services/key_value.go:29.78,31.16 2 0 -github.com/muety/wakapi/services/key_value.go:37.2,37.11 1 0 -github.com/muety/wakapi/services/key_value.go:31.16,36.3 1 0 -github.com/muety/wakapi/services/key_value.go:40.72,42.2 1 0 -github.com/muety/wakapi/services/key_value.go:44.60,46.2 1 0 +github.com/muety/wakapi/services/user.go:225.55,227.2 1 0 +github.com/muety/wakapi/services/user.go:229.57,234.2 1 0 diff --git a/mocks/user_service.go b/mocks/user_service.go index 0d39fd7..d4776b0 100644 --- a/mocks/user_service.go +++ b/mocks/user_service.go @@ -112,3 +112,7 @@ func (m *UserServiceMock) GenerateResetToken(user *models.User) (*models.User, e func (m *UserServiceMock) FlushCache() { m.Called() } + +func (m *UserServiceMock) FlushUserCache(s string) { + m.Called(s) +} diff --git a/routes/login.go b/routes/login.go index ac3eb04..f32ca63 100644 --- a/routes/login.go +++ b/routes/login.go @@ -5,6 +5,7 @@ import ( "github.com/emvi/logbuch" "github.com/gorilla/mux" conf "github.com/muety/wakapi/config" + "github.com/muety/wakapi/middlewares" "github.com/muety/wakapi/models" "github.com/muety/wakapi/models/view" "github.com/muety/wakapi/services" @@ -31,13 +32,20 @@ func NewLoginHandler(userService services.IUserService, mailService services.IMa func (h *LoginHandler) RegisterRoutes(router *mux.Router) { router.Path("/login").Methods(http.MethodGet).HandlerFunc(h.GetIndex) router.Path("/login").Methods(http.MethodPost).HandlerFunc(h.PostLogin) - router.Path("/logout").Methods(http.MethodPost).HandlerFunc(h.PostLogout) router.Path("/signup").Methods(http.MethodGet).HandlerFunc(h.GetSignup) router.Path("/signup").Methods(http.MethodPost).HandlerFunc(h.PostSignup) router.Path("/set-password").Methods(http.MethodGet).HandlerFunc(h.GetSetPassword) router.Path("/set-password").Methods(http.MethodPost).HandlerFunc(h.PostSetPassword) router.Path("/reset-password").Methods(http.MethodGet).HandlerFunc(h.GetResetPassword) router.Path("/reset-password").Methods(http.MethodPost).HandlerFunc(h.PostResetPassword) + + authMiddleware := middlewares.NewAuthenticateMiddleware(h.userSrvc). + WithRedirectTarget(defaultErrorRedirectTarget()). + WithOptionalFor([]string{"/logout"}) + + logoutRouter := router.PathPrefix("/logout").Subrouter() + logoutRouter.Use(authMiddleware.Handler) + logoutRouter.Path("").Methods(http.MethodPost).HandlerFunc(h.PostLogout) } func (h *LoginHandler) GetIndex(w http.ResponseWriter, r *http.Request) { @@ -108,6 +116,9 @@ func (h *LoginHandler) PostLogout(w http.ResponseWriter, r *http.Request) { loadTemplates() } + if user := middlewares.GetPrincipal(r); user != nil { + h.userSrvc.FlushUserCache(user.ID) + } http.SetCookie(w, h.config.GetClearCookie(models.AuthCookieKey)) http.Redirect(w, r, fmt.Sprintf("%s/", h.config.Server.BasePath), http.StatusFound) } diff --git a/routes/settings.go b/routes/settings.go index 46743c6..81d5294 100644 --- a/routes/settings.go +++ b/routes/settings.go @@ -286,7 +286,7 @@ func (h *SettingsHandler) actionUpdateSharing(w http.ResponseWriter, r *http.Req var err error user := middlewares.GetPrincipal(r) - defer h.userSrvc.FlushCache() + defer h.userSrvc.FlushUserCache(user.ID) user.ShareProjects, err = strconv.ParseBool(r.PostFormValue("share_projects")) user.ShareLanguages, err = strconv.ParseBool(r.PostFormValue("share_languages")) diff --git a/services/services.go b/services/services.go index d0da981..969e52e 100644 --- a/services/services.go +++ b/services/services.go @@ -141,4 +141,5 @@ type IUserService interface { MigrateMd5Password(*models.User, *models.Login) (*models.User, error) GenerateResetToken(*models.User) (*models.User, error) FlushCache() + FlushUserCache(string) } diff --git a/services/user.go b/services/user.go index 7c10e2f..4e99a48 100644 --- a/services/user.go +++ b/services/user.go @@ -67,7 +67,7 @@ func (srv *UserService) GetUserById(userId string) (*models.User, error) { return nil, err } - srv.cache.Set(u.ID, u, cache.DefaultExpiration) + srv.cache.SetDefault(u.ID, u) return u, nil } @@ -167,19 +167,19 @@ func (srv *UserService) CreateOrGet(signup *models.Signup, isAdmin bool) (*model } func (srv *UserService) Update(user *models.User) (*models.User, error) { - srv.cache.Flush() + srv.FlushUserCache(user.ID) srv.notifyUpdate(user) return srv.repository.Update(user) } func (srv *UserService) ResetApiKey(user *models.User) (*models.User, error) { - srv.cache.Flush() + srv.FlushUserCache(user.ID) user.ApiKey = uuid.NewV4().String() return srv.Update(user) } func (srv *UserService) SetWakatimeApiCredentials(user *models.User, apiKey string, apiUrl string) (*models.User, error) { - srv.cache.Flush() + srv.FlushUserCache(user.ID) if apiKey != user.WakatimeApiKey { if u, err := srv.repository.UpdateField(user, "wakatime_api_key", apiKey); err != nil { @@ -195,7 +195,7 @@ func (srv *UserService) SetWakatimeApiCredentials(user *models.User, apiKey stri } func (srv *UserService) MigrateMd5Password(user *models.User, login *models.Login) (*models.User, error) { - srv.cache.Flush() + srv.FlushUserCache(user.ID) user.Password = login.Password if hash, err := utils.HashBcrypt(user.Password, srv.config.Security.PasswordSalt); err != nil { return nil, err @@ -210,7 +210,7 @@ func (srv *UserService) GenerateResetToken(user *models.User) (*models.User, err } func (srv *UserService) Delete(user *models.User) error { - srv.cache.Flush() + srv.FlushUserCache(user.ID) user.ReportsWeekly = false srv.notifyUpdate(user) @@ -222,6 +222,10 @@ func (srv *UserService) FlushCache() { srv.cache.Flush() } +func (srv *UserService) FlushUserCache(userId string) { + srv.cache.Delete(userId) +} + func (srv *UserService) notifyUpdate(user *models.User) { srv.eventBus.Publish(hub.Message{ Name: config.EventUserUpdate,