From 2f0cb112dd3a5a0a565f68e98965adc458c6c5ce Mon Sep 17 00:00:00 2001 From: Asen Mihaylov Date: Thu, 30 Jun 2022 10:36:13 +0300 Subject: [PATCH] test: user api retrieving user information --- coverage/coverage.out | 1220 +++++++++++------------ routes/compat/wakatime/v1/users_test.go | 128 +++ 2 files changed, 738 insertions(+), 610 deletions(-) create mode 100644 routes/compat/wakatime/v1/users_test.go diff --git a/coverage/coverage.out b/coverage/coverage.out index c1c7253..2b4ddb2 100644 --- a/coverage/coverage.out +++ b/coverage/coverage.out @@ -1,45 +1,29 @@ mode: set -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/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 -github.com/muety/wakapi/models/durations.go:19.45,21.22 2 0 -github.com/muety/wakapi/models/durations.go:24.2,24.14 1 0 -github.com/muety/wakapi/models/durations.go:21.22,23.3 1 0 -github.com/muety/wakapi/models/durations.go:27.39,30.2 2 0 -github.com/muety/wakapi/models/durations.go:32.39,34.18 1 0 -github.com/muety/wakapi/models/durations.go:37.2,37.16 1 0 -github.com/muety/wakapi/models/durations.go:34.18,36.3 1 0 -github.com/muety/wakapi/models/durations.go:40.38,42.18 1 0 -github.com/muety/wakapi/models/durations.go:45.2,45.24 1 0 -github.com/muety/wakapi/models/durations.go:42.18,44.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:39.47,40.23 1 0 -github.com/muety/wakapi/models/interval.go:45.2,45.14 1 0 -github.com/muety/wakapi/models/interval.go:40.23,41.13 1 0 -github.com/muety/wakapi/models/interval.go:41.13,43.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/heartbeat.go:33.34,35.2 1 1 +github.com/muety/wakapi/models/heartbeat.go:37.55,40.2 2 0 +github.com/muety/wakapi/models/heartbeat.go:42.65,44.46 2 1 +github.com/muety/wakapi/models/heartbeat.go:44.46,45.108 1 1 +github.com/muety/wakapi/models/heartbeat.go:45.108,48.4 2 1 +github.com/muety/wakapi/models/heartbeat.go:52.50,53.11 1 1 +github.com/muety/wakapi/models/heartbeat.go:68.2,68.15 1 1 +github.com/muety/wakapi/models/heartbeat.go:72.2,72.12 1 1 +github.com/muety/wakapi/models/heartbeat.go:54.22,55.18 1 1 +github.com/muety/wakapi/models/heartbeat.go:56.21,57.17 1 1 +github.com/muety/wakapi/models/heartbeat.go:58.23,59.19 1 1 +github.com/muety/wakapi/models/heartbeat.go:60.17,61.26 1 1 +github.com/muety/wakapi/models/heartbeat.go:62.22,63.18 1 1 +github.com/muety/wakapi/models/heartbeat.go:64.21,65.17 1 0 +github.com/muety/wakapi/models/heartbeat.go:68.15,70.3 1 1 +github.com/muety/wakapi/models/heartbeat.go:75.37,91.2 1 0 +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/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 @@ -62,9 +46,177 @@ 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/project_label.go:14.39,16.2 1 0 +github.com/muety/wakapi/models/shared.go:40.52,42.2 1 0 +github.com/muety/wakapi/models/shared.go:44.52,47.16 3 0 +github.com/muety/wakapi/models/shared.go:50.2,52.12 3 0 +github.com/muety/wakapi/models/shared.go:47.16,49.3 1 0 +github.com/muety/wakapi/models/shared.go:55.52,61.22 2 0 +github.com/muety/wakapi/models/shared.go:76.2,79.12 3 0 +github.com/muety/wakapi/models/shared.go:62.14,66.17 2 0 +github.com/muety/wakapi/models/shared.go:69.17,71.8 2 0 +github.com/muety/wakapi/models/shared.go:72.10,73.64 1 0 +github.com/muety/wakapi/models/shared.go:66.17,68.4 1 0 +github.com/muety/wakapi/models/shared.go:82.51,85.2 2 0 +github.com/muety/wakapi/models/shared.go:87.45,89.2 1 0 +github.com/muety/wakapi/models/shared.go:91.37,93.2 1 0 +github.com/muety/wakapi/models/shared.go:95.35,97.2 1 0 +github.com/muety/wakapi/models/shared.go:99.34,101.2 1 0 +github.com/muety/wakapi/models/user.go:11.13,13.2 1 1 +github.com/muety/wakapi/models/user.go:83.36,84.22 1 1 +github.com/muety/wakapi/models/user.go:87.2,88.16 2 1 +github.com/muety/wakapi/models/user.go:91.2,91.11 1 1 +github.com/muety/wakapi/models/user.go:84.22,86.3 1 1 +github.com/muety/wakapi/models/user.go:88.16,90.3 1 0 +github.com/muety/wakapi/models/user.go:96.41,99.2 2 1 +github.com/muety/wakapi/models/user.go:101.53,104.54 3 0 +github.com/muety/wakapi/models/user.go:107.2,107.51 1 0 +github.com/muety/wakapi/models/user.go:110.2,110.20 1 0 +github.com/muety/wakapi/models/user.go:104.54,106.3 1 0 +github.com/muety/wakapi/models/user.go:107.51,109.3 1 0 +github.com/muety/wakapi/models/user.go:114.52,115.28 1 0 +github.com/muety/wakapi/models/user.go:118.2,118.17 1 0 +github.com/muety/wakapi/models/user.go:115.28,117.3 1 0 +github.com/muety/wakapi/models/user.go:121.43,124.2 1 0 +github.com/muety/wakapi/models/user.go:126.45,129.2 1 0 +github.com/muety/wakapi/models/user.go:131.33,136.2 1 0 +github.com/muety/wakapi/models/user.go:138.41,140.2 1 0 +github.com/muety/wakapi/models/user.go:142.45,144.2 1 0 +github.com/muety/wakapi/models/user.go:146.45,148.2 1 0 +github.com/muety/wakapi/models/user.go:150.39,152.2 1 0 +github.com/muety/wakapi/models/user.go:154.39,157.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/interval.go:39.47,40.23 1 0 +github.com/muety/wakapi/models/interval.go:45.2,45.14 1 0 +github.com/muety/wakapi/models/interval.go:40.23,41.13 1 0 +github.com/muety/wakapi/models/interval.go:41.13,43.4 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 +github.com/muety/wakapi/models/durations.go:19.45,21.22 2 0 +github.com/muety/wakapi/models/durations.go:24.2,24.14 1 0 +github.com/muety/wakapi/models/durations.go:21.22,23.3 1 0 +github.com/muety/wakapi/models/durations.go:27.39,30.2 2 0 +github.com/muety/wakapi/models/durations.go:32.39,34.18 1 0 +github.com/muety/wakapi/models/durations.go:37.2,37.16 1 0 +github.com/muety/wakapi/models/durations.go:34.18,36.3 1 0 +github.com/muety/wakapi/models/durations.go:40.38,42.18 1 0 +github.com/muety/wakapi/models/durations.go:45.2,45.24 1 0 +github.com/muety/wakapi/models/durations.go:42.18,44.3 1 0 +github.com/muety/wakapi/models/filters.go:21.33,23.2 1 1 +github.com/muety/wakapi/models/filters.go:25.48,26.22 1 1 +github.com/muety/wakapi/models/filters.go:31.2,31.14 1 1 +github.com/muety/wakapi/models/filters.go:26.22,27.18 1 1 +github.com/muety/wakapi/models/filters.go:27.18,29.4 1 1 +github.com/muety/wakapi/models/filters.go:39.56,41.2 1 1 +github.com/muety/wakapi/models/filters.go:43.66,46.2 2 1 +github.com/muety/wakapi/models/filters.go:48.59,50.2 1 1 +github.com/muety/wakapi/models/filters.go:52.70,53.16 1 1 +github.com/muety/wakapi/models/filters.go:69.2,69.10 1 1 +github.com/muety/wakapi/models/filters.go:54.22,55.41 1 1 +github.com/muety/wakapi/models/filters.go:56.17,57.31 1 0 +github.com/muety/wakapi/models/filters.go:58.23,59.43 1 1 +github.com/muety/wakapi/models/filters.go:60.21,61.39 1 0 +github.com/muety/wakapi/models/filters.go:62.22,63.41 1 0 +github.com/muety/wakapi/models/filters.go:64.20,65.37 1 1 +github.com/muety/wakapi/models/filters.go:66.21,67.39 1 0 +github.com/muety/wakapi/models/filters.go:72.49,73.44 1 1 +github.com/muety/wakapi/models/filters.go:88.2,88.29 1 1 +github.com/muety/wakapi/models/filters.go:73.44,75.3 1 1 +github.com/muety/wakapi/models/filters.go:75.8,75.41 1 1 +github.com/muety/wakapi/models/filters.go:75.41,77.3 1 0 +github.com/muety/wakapi/models/filters.go:77.8,77.53 1 1 +github.com/muety/wakapi/models/filters.go:77.53,79.3 1 1 +github.com/muety/wakapi/models/filters.go:79.8,79.49 1 1 +github.com/muety/wakapi/models/filters.go:79.49,81.3 1 0 +github.com/muety/wakapi/models/filters.go:81.8,81.51 1 1 +github.com/muety/wakapi/models/filters.go:81.51,83.3 1 0 +github.com/muety/wakapi/models/filters.go:83.8,83.47 1 1 +github.com/muety/wakapi/models/filters.go:83.47,85.3 1 0 +github.com/muety/wakapi/models/filters.go:85.8,85.49 1 1 +github.com/muety/wakapi/models/filters.go:85.49,87.3 1 0 +github.com/muety/wakapi/models/filters.go:91.46,92.30 1 1 +github.com/muety/wakapi/models/filters.go:95.2,95.66 1 0 +github.com/muety/wakapi/models/filters.go:92.30,94.3 1 1 +github.com/muety/wakapi/models/filters.go:98.34,101.2 2 1 +github.com/muety/wakapi/models/filters.go:103.31,105.51 2 0 +github.com/muety/wakapi/models/filters.go:108.2,108.14 1 0 +github.com/muety/wakapi/models/filters.go:105.51,107.3 1 0 +github.com/muety/wakapi/models/filters.go:111.51,113.2 1 0 +github.com/muety/wakapi/models/filters.go:115.37,117.51 2 0 +github.com/muety/wakapi/models/filters.go:122.2,122.14 1 0 +github.com/muety/wakapi/models/filters.go:117.51,118.37 1 0 +github.com/muety/wakapi/models/filters.go:118.37,120.4 1 0 +github.com/muety/wakapi/models/filters.go:125.59,126.18 1 0 +github.com/muety/wakapi/models/filters.go:127.22,128.20 1 0 +github.com/muety/wakapi/models/filters.go:129.23,130.21 1 0 +github.com/muety/wakapi/models/filters.go:131.21,132.19 1 0 +github.com/muety/wakapi/models/filters.go:133.17,134.15 1 0 +github.com/muety/wakapi/models/filters.go:135.22,136.20 1 0 +github.com/muety/wakapi/models/filters.go:137.20,138.18 1 0 +github.com/muety/wakapi/models/filters.go:139.21,140.19 1 0 +github.com/muety/wakapi/models/filters.go:141.10,142.21 1 0 +github.com/muety/wakapi/models/filters.go:146.33,148.16 2 0 +github.com/muety/wakapi/models/filters.go:151.2,151.32 1 0 +github.com/muety/wakapi/models/filters.go:148.16,150.3 1 0 +github.com/muety/wakapi/models/filters.go:154.44,160.2 1 1 +github.com/muety/wakapi/models/filters.go:163.70,164.22 1 1 +github.com/muety/wakapi/models/filters.go:172.2,172.17 1 1 +github.com/muety/wakapi/models/filters.go:180.2,180.23 1 1 +github.com/muety/wakapi/models/filters.go:188.2,188.21 1 1 +github.com/muety/wakapi/models/filters.go:196.2,196.22 1 1 +github.com/muety/wakapi/models/filters.go:204.2,204.21 1 1 +github.com/muety/wakapi/models/filters.go:212.2,212.10 1 1 +github.com/muety/wakapi/models/filters.go:164.22,166.31 2 1 +github.com/muety/wakapi/models/filters.go:170.3,170.22 1 1 +github.com/muety/wakapi/models/filters.go:166.31,169.4 2 1 +github.com/muety/wakapi/models/filters.go:172.17,174.26 2 0 +github.com/muety/wakapi/models/filters.go:178.3,178.17 1 0 +github.com/muety/wakapi/models/filters.go:174.26,177.4 2 0 +github.com/muety/wakapi/models/filters.go:180.23,182.32 2 1 +github.com/muety/wakapi/models/filters.go:186.3,186.23 1 1 +github.com/muety/wakapi/models/filters.go:182.32,185.4 2 1 +github.com/muety/wakapi/models/filters.go:188.21,190.30 2 0 +github.com/muety/wakapi/models/filters.go:194.3,194.21 1 0 +github.com/muety/wakapi/models/filters.go:190.30,193.4 2 0 +github.com/muety/wakapi/models/filters.go:196.22,198.31 2 0 +github.com/muety/wakapi/models/filters.go:202.3,202.22 1 0 +github.com/muety/wakapi/models/filters.go:198.31,201.4 2 0 +github.com/muety/wakapi/models/filters.go:204.21,206.30 2 0 +github.com/muety/wakapi/models/filters.go:210.3,210.21 1 0 +github.com/muety/wakapi/models/filters.go:206.30,209.4 2 0 +github.com/muety/wakapi/models/filters.go:215.83,216.41 1 1 +github.com/muety/wakapi/models/filters.go:219.2,219.28 1 1 +github.com/muety/wakapi/models/filters.go:222.2,222.10 1 1 +github.com/muety/wakapi/models/filters.go:216.41,218.3 1 0 +github.com/muety/wakapi/models/filters.go:219.28,221.3 1 1 +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/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/models.go:3.14,5.2 0 1 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 @@ -163,266 +315,42 @@ github.com/muety/wakapi/models/summary.go:359.50,363.2 1 1 github.com/muety/wakapi/models/summary.go:365.33,367.2 1 1 github.com/muety/wakapi/models/summary.go:369.43,371.2 1 1 github.com/muety/wakapi/models/summary.go:373.38,375.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/models.go:3.14,5.2 0 1 -github.com/muety/wakapi/models/filters.go:21.33,23.2 1 1 -github.com/muety/wakapi/models/filters.go:25.48,26.22 1 1 -github.com/muety/wakapi/models/filters.go:31.2,31.14 1 1 -github.com/muety/wakapi/models/filters.go:26.22,27.18 1 1 -github.com/muety/wakapi/models/filters.go:27.18,29.4 1 1 -github.com/muety/wakapi/models/filters.go:39.56,41.2 1 1 -github.com/muety/wakapi/models/filters.go:43.66,46.2 2 1 -github.com/muety/wakapi/models/filters.go:48.59,50.2 1 1 -github.com/muety/wakapi/models/filters.go:52.70,53.16 1 1 -github.com/muety/wakapi/models/filters.go:69.2,69.10 1 1 -github.com/muety/wakapi/models/filters.go:54.22,55.41 1 1 -github.com/muety/wakapi/models/filters.go:56.17,57.31 1 0 -github.com/muety/wakapi/models/filters.go:58.23,59.43 1 1 -github.com/muety/wakapi/models/filters.go:60.21,61.39 1 0 -github.com/muety/wakapi/models/filters.go:62.22,63.41 1 0 -github.com/muety/wakapi/models/filters.go:64.20,65.37 1 1 -github.com/muety/wakapi/models/filters.go:66.21,67.39 1 0 -github.com/muety/wakapi/models/filters.go:72.49,73.44 1 1 -github.com/muety/wakapi/models/filters.go:88.2,88.29 1 1 -github.com/muety/wakapi/models/filters.go:73.44,75.3 1 1 -github.com/muety/wakapi/models/filters.go:75.8,75.41 1 1 -github.com/muety/wakapi/models/filters.go:75.41,77.3 1 0 -github.com/muety/wakapi/models/filters.go:77.8,77.53 1 1 -github.com/muety/wakapi/models/filters.go:77.53,79.3 1 1 -github.com/muety/wakapi/models/filters.go:79.8,79.49 1 1 -github.com/muety/wakapi/models/filters.go:79.49,81.3 1 0 -github.com/muety/wakapi/models/filters.go:81.8,81.51 1 1 -github.com/muety/wakapi/models/filters.go:81.51,83.3 1 0 -github.com/muety/wakapi/models/filters.go:83.8,83.47 1 1 -github.com/muety/wakapi/models/filters.go:83.47,85.3 1 0 -github.com/muety/wakapi/models/filters.go:85.8,85.49 1 1 -github.com/muety/wakapi/models/filters.go:85.49,87.3 1 0 -github.com/muety/wakapi/models/filters.go:91.46,92.30 1 1 -github.com/muety/wakapi/models/filters.go:95.2,95.66 1 0 -github.com/muety/wakapi/models/filters.go:92.30,94.3 1 1 -github.com/muety/wakapi/models/filters.go:98.34,101.2 2 1 -github.com/muety/wakapi/models/filters.go:103.31,105.51 2 0 -github.com/muety/wakapi/models/filters.go:108.2,108.14 1 0 -github.com/muety/wakapi/models/filters.go:105.51,107.3 1 0 -github.com/muety/wakapi/models/filters.go:111.51,113.2 1 0 -github.com/muety/wakapi/models/filters.go:115.37,117.51 2 0 -github.com/muety/wakapi/models/filters.go:122.2,122.14 1 0 -github.com/muety/wakapi/models/filters.go:117.51,118.37 1 0 -github.com/muety/wakapi/models/filters.go:118.37,120.4 1 0 -github.com/muety/wakapi/models/filters.go:125.59,126.18 1 0 -github.com/muety/wakapi/models/filters.go:127.22,128.20 1 0 -github.com/muety/wakapi/models/filters.go:129.23,130.21 1 0 -github.com/muety/wakapi/models/filters.go:131.21,132.19 1 0 -github.com/muety/wakapi/models/filters.go:133.17,134.15 1 0 -github.com/muety/wakapi/models/filters.go:135.22,136.20 1 0 -github.com/muety/wakapi/models/filters.go:137.20,138.18 1 0 -github.com/muety/wakapi/models/filters.go:139.21,140.19 1 0 -github.com/muety/wakapi/models/filters.go:141.10,142.21 1 0 -github.com/muety/wakapi/models/filters.go:146.33,148.16 2 0 -github.com/muety/wakapi/models/filters.go:151.2,151.32 1 0 -github.com/muety/wakapi/models/filters.go:148.16,150.3 1 0 -github.com/muety/wakapi/models/filters.go:154.44,160.2 1 1 -github.com/muety/wakapi/models/filters.go:163.70,164.22 1 1 -github.com/muety/wakapi/models/filters.go:172.2,172.17 1 1 -github.com/muety/wakapi/models/filters.go:180.2,180.23 1 1 -github.com/muety/wakapi/models/filters.go:188.2,188.21 1 1 -github.com/muety/wakapi/models/filters.go:196.2,196.22 1 1 -github.com/muety/wakapi/models/filters.go:204.2,204.21 1 1 -github.com/muety/wakapi/models/filters.go:212.2,212.10 1 1 -github.com/muety/wakapi/models/filters.go:164.22,166.31 2 1 -github.com/muety/wakapi/models/filters.go:170.3,170.22 1 1 -github.com/muety/wakapi/models/filters.go:166.31,169.4 2 1 -github.com/muety/wakapi/models/filters.go:172.17,174.26 2 0 -github.com/muety/wakapi/models/filters.go:178.3,178.17 1 0 -github.com/muety/wakapi/models/filters.go:174.26,177.4 2 0 -github.com/muety/wakapi/models/filters.go:180.23,182.32 2 1 -github.com/muety/wakapi/models/filters.go:186.3,186.23 1 1 -github.com/muety/wakapi/models/filters.go:182.32,185.4 2 1 -github.com/muety/wakapi/models/filters.go:188.21,190.30 2 0 -github.com/muety/wakapi/models/filters.go:194.3,194.21 1 0 -github.com/muety/wakapi/models/filters.go:190.30,193.4 2 0 -github.com/muety/wakapi/models/filters.go:196.22,198.31 2 0 -github.com/muety/wakapi/models/filters.go:202.3,202.22 1 0 -github.com/muety/wakapi/models/filters.go:198.31,201.4 2 0 -github.com/muety/wakapi/models/filters.go:204.21,206.30 2 0 -github.com/muety/wakapi/models/filters.go:210.3,210.21 1 0 -github.com/muety/wakapi/models/filters.go:206.30,209.4 2 0 -github.com/muety/wakapi/models/filters.go:215.83,216.41 1 1 -github.com/muety/wakapi/models/filters.go:219.2,219.28 1 1 -github.com/muety/wakapi/models/filters.go:222.2,222.10 1 1 -github.com/muety/wakapi/models/filters.go:216.41,218.3 1 0 -github.com/muety/wakapi/models/filters.go:219.28,221.3 1 1 -github.com/muety/wakapi/models/heartbeat.go:33.34,35.2 1 1 -github.com/muety/wakapi/models/heartbeat.go:37.55,40.2 2 0 -github.com/muety/wakapi/models/heartbeat.go:42.65,44.46 2 1 -github.com/muety/wakapi/models/heartbeat.go:44.46,45.108 1 1 -github.com/muety/wakapi/models/heartbeat.go:45.108,48.4 2 1 -github.com/muety/wakapi/models/heartbeat.go:52.50,53.11 1 1 -github.com/muety/wakapi/models/heartbeat.go:68.2,68.15 1 1 -github.com/muety/wakapi/models/heartbeat.go:72.2,72.12 1 1 -github.com/muety/wakapi/models/heartbeat.go:54.22,55.18 1 1 -github.com/muety/wakapi/models/heartbeat.go:56.21,57.17 1 1 -github.com/muety/wakapi/models/heartbeat.go:58.23,59.19 1 1 -github.com/muety/wakapi/models/heartbeat.go:60.17,61.26 1 1 -github.com/muety/wakapi/models/heartbeat.go:62.22,63.18 1 1 -github.com/muety/wakapi/models/heartbeat.go:64.21,65.17 1 0 -github.com/muety/wakapi/models/heartbeat.go:68.15,70.3 1 1 -github.com/muety/wakapi/models/heartbeat.go:75.37,91.2 1 0 -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/project_label.go:14.39,16.2 1 0 -github.com/muety/wakapi/models/shared.go:40.52,42.2 1 0 -github.com/muety/wakapi/models/shared.go:44.52,47.16 3 0 -github.com/muety/wakapi/models/shared.go:50.2,52.12 3 0 -github.com/muety/wakapi/models/shared.go:47.16,49.3 1 0 -github.com/muety/wakapi/models/shared.go:55.52,61.22 2 0 -github.com/muety/wakapi/models/shared.go:76.2,79.12 3 0 -github.com/muety/wakapi/models/shared.go:62.14,66.17 2 0 -github.com/muety/wakapi/models/shared.go:69.17,71.8 2 0 -github.com/muety/wakapi/models/shared.go:72.10,73.64 1 0 -github.com/muety/wakapi/models/shared.go:66.17,68.4 1 0 -github.com/muety/wakapi/models/shared.go:82.51,85.2 2 0 -github.com/muety/wakapi/models/shared.go:87.45,89.2 1 0 -github.com/muety/wakapi/models/shared.go:91.37,93.2 1 0 -github.com/muety/wakapi/models/shared.go:95.35,97.2 1 0 -github.com/muety/wakapi/models/shared.go:99.34,101.2 1 0 -github.com/muety/wakapi/models/user.go:11.13,13.2 1 1 -github.com/muety/wakapi/models/user.go:83.36,84.22 1 1 -github.com/muety/wakapi/models/user.go:87.2,88.16 2 1 -github.com/muety/wakapi/models/user.go:91.2,91.11 1 1 -github.com/muety/wakapi/models/user.go:84.22,86.3 1 1 -github.com/muety/wakapi/models/user.go:88.16,90.3 1 0 -github.com/muety/wakapi/models/user.go:96.41,99.2 2 1 -github.com/muety/wakapi/models/user.go:101.53,104.54 3 0 -github.com/muety/wakapi/models/user.go:107.2,107.51 1 0 -github.com/muety/wakapi/models/user.go:110.2,110.20 1 0 -github.com/muety/wakapi/models/user.go:104.54,106.3 1 0 -github.com/muety/wakapi/models/user.go:107.51,109.3 1 0 -github.com/muety/wakapi/models/user.go:114.52,115.28 1 0 -github.com/muety/wakapi/models/user.go:118.2,118.17 1 0 -github.com/muety/wakapi/models/user.go:115.28,117.3 1 0 -github.com/muety/wakapi/models/user.go:121.43,124.2 1 0 -github.com/muety/wakapi/models/user.go:126.45,129.2 1 0 -github.com/muety/wakapi/models/user.go:131.33,136.2 1 0 -github.com/muety/wakapi/models/user.go:138.41,140.2 1 0 -github.com/muety/wakapi/models/user.go:142.45,144.2 1 0 -github.com/muety/wakapi/models/user.go:146.45,148.2 1 0 -github.com/muety/wakapi/models/user.go:150.39,152.2 1 0 -github.com/muety/wakapi/models/user.go:154.39,157.2 2 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.44 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/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:42.71,43.43 1 0 -github.com/muety/wakapi/middlewares/principal.go:43.43,45.3 1 0 -github.com/muety/wakapi/middlewares/principal.go:48.81,51.2 2 0 -github.com/muety/wakapi/middlewares/principal.go:53.55,54.52 1 0 -github.com/muety/wakapi/middlewares/principal.go:54.52,56.3 1 0 -github.com/muety/wakapi/middlewares/principal.go:59.49,60.52 1 0 -github.com/muety/wakapi/middlewares/principal.go:63.2,63.12 1 0 -github.com/muety/wakapi/middlewares/principal.go:60.52,62.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:30.91,36.2 1 1 -github.com/muety/wakapi/middlewares/authenticate.go:38.90,41.2 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:43.90,46.2 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:48.71,49.71 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:49.71,51.3 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:54.107,58.16 3 0 -github.com/muety/wakapi/middlewares/authenticate.go:61.2,61.16 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:65.2,65.31 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:81.2,82.12 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:58.16,60.3 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:61.16,63.3 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:65.31,66.31 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:71.3,71.29 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:78.3,78.9 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:66.31,69.4 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:71.29,74.4 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:74.9,77.4 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:85.70,86.39 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:91.2,91.14 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:86.39,87.60 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:87.60,89.4 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:94.98,96.16 2 1 -github.com/muety/wakapi/middlewares/authenticate.go:100.2,103.16 4 1 -github.com/muety/wakapi/middlewares/authenticate.go:106.2,106.18 1 1 -github.com/muety/wakapi/middlewares/authenticate.go:96.16,98.3 1 1 -github.com/muety/wakapi/middlewares/authenticate.go:103.16,105.3 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:109.97,113.19 4 1 -github.com/muety/wakapi/middlewares/authenticate.go:116.2,117.16 2 1 -github.com/muety/wakapi/middlewares/authenticate.go:120.2,120.18 1 1 -github.com/muety/wakapi/middlewares/authenticate.go:113.19,115.3 1 1 -github.com/muety/wakapi/middlewares/authenticate.go:117.16,119.3 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:123.92,125.16 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:129.2,130.16 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:137.2,137.18 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:125.16,127.3 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:130.16,132.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/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/sentry.go:22.35,24.2 1 0 +github.com/muety/wakapi/config/sentry.go:26.62,29.2 2 0 +github.com/muety/wakapi/config/sentry.go:39.33,46.2 2 0 +github.com/muety/wakapi/config/sentry.go:48.79,51.2 2 0 +github.com/muety/wakapi/config/sentry.go:53.72,57.2 3 0 +github.com/muety/wakapi/config/sentry.go:59.71,63.2 3 0 +github.com/muety/wakapi/config/sentry.go:65.71,69.2 3 0 +github.com/muety/wakapi/config/sentry.go:71.72,75.2 3 0 +github.com/muety/wakapi/config/sentry.go:77.72,81.2 3 0 +github.com/muety/wakapi/config/sentry.go:83.67,88.18 4 0 +github.com/muety/wakapi/config/sentry.go:100.2,100.28 1 0 +github.com/muety/wakapi/config/sentry.go:88.18,89.65 1 0 +github.com/muety/wakapi/config/sentry.go:89.65,92.42 3 0 +github.com/muety/wakapi/config/sentry.go:95.4,96.10 2 0 +github.com/muety/wakapi/config/sentry.go:92.42,94.5 1 0 +github.com/muety/wakapi/config/sentry.go:110.50,115.91 1 0 +github.com/muety/wakapi/config/sentry.go:115.91,116.29 1 0 +github.com/muety/wakapi/config/sentry.go:120.4,123.38 3 0 +github.com/muety/wakapi/config/sentry.go:128.4,128.39 1 0 +github.com/muety/wakapi/config/sentry.go:131.4,131.69 1 0 +github.com/muety/wakapi/config/sentry.go:116.29,118.5 1 0 +github.com/muety/wakapi/config/sentry.go:123.38,124.38 1 0 +github.com/muety/wakapi/config/sentry.go:124.38,126.6 1 0 +github.com/muety/wakapi/config/sentry.go:128.39,130.5 1 0 +github.com/muety/wakapi/config/sentry.go:133.79,134.27 1 0 +github.com/muety/wakapi/config/sentry.go:141.4,141.16 1 0 +github.com/muety/wakapi/config/sentry.go:134.27,135.84 1 0 +github.com/muety/wakapi/config/sentry.go:135.84,136.42 1 0 +github.com/muety/wakapi/config/sentry.go:136.42,138.7 1 0 +github.com/muety/wakapi/config/sentry.go:143.17,145.3 1 0 +github.com/muety/wakapi/config/sentry.go:148.49,152.51 2 0 +github.com/muety/wakapi/config/sentry.go:155.2,155.12 1 0 +github.com/muety/wakapi/config/sentry.go:152.51,154.3 1 0 github.com/muety/wakapi/config/utils.go:5.78,7.22 2 0 github.com/muety/wakapi/config/utils.go:13.2,13.11 1 0 github.com/muety/wakapi/config/utils.go:7.22,8.18 1 0 @@ -533,95 +461,6 @@ github.com/muety/wakapi/config/db.go:70.16,72.3 1 0 github.com/muety/wakapi/config/db.go:84.54,86.2 1 1 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/sentry.go:22.35,24.2 1 0 -github.com/muety/wakapi/config/sentry.go:26.62,29.2 2 0 -github.com/muety/wakapi/config/sentry.go:39.33,46.2 2 0 -github.com/muety/wakapi/config/sentry.go:48.79,51.2 2 0 -github.com/muety/wakapi/config/sentry.go:53.72,57.2 3 0 -github.com/muety/wakapi/config/sentry.go:59.71,63.2 3 0 -github.com/muety/wakapi/config/sentry.go:65.71,69.2 3 0 -github.com/muety/wakapi/config/sentry.go:71.72,75.2 3 0 -github.com/muety/wakapi/config/sentry.go:77.72,81.2 3 0 -github.com/muety/wakapi/config/sentry.go:83.67,88.18 4 0 -github.com/muety/wakapi/config/sentry.go:100.2,100.28 1 0 -github.com/muety/wakapi/config/sentry.go:88.18,89.65 1 0 -github.com/muety/wakapi/config/sentry.go:89.65,92.42 3 0 -github.com/muety/wakapi/config/sentry.go:95.4,96.10 2 0 -github.com/muety/wakapi/config/sentry.go:92.42,94.5 1 0 -github.com/muety/wakapi/config/sentry.go:110.50,115.91 1 0 -github.com/muety/wakapi/config/sentry.go:115.91,116.29 1 0 -github.com/muety/wakapi/config/sentry.go:120.4,123.38 3 0 -github.com/muety/wakapi/config/sentry.go:128.4,128.39 1 0 -github.com/muety/wakapi/config/sentry.go:131.4,131.69 1 0 -github.com/muety/wakapi/config/sentry.go:116.29,118.5 1 0 -github.com/muety/wakapi/config/sentry.go:123.38,124.38 1 0 -github.com/muety/wakapi/config/sentry.go:124.38,126.6 1 0 -github.com/muety/wakapi/config/sentry.go:128.39,130.5 1 0 -github.com/muety/wakapi/config/sentry.go:133.79,134.27 1 0 -github.com/muety/wakapi/config/sentry.go:141.4,141.16 1 0 -github.com/muety/wakapi/config/sentry.go:134.27,135.84 1 0 -github.com/muety/wakapi/config/sentry.go:135.84,136.42 1 0 -github.com/muety/wakapi/config/sentry.go:136.42,138.7 1 0 -github.com/muety/wakapi/config/sentry.go:143.17,145.3 1 0 -github.com/muety/wakapi/config/sentry.go:148.49,152.51 2 0 -github.com/muety/wakapi/config/sentry.go:155.2,155.12 1 0 -github.com/muety/wakapi/config/sentry.go:152.51,154.3 1 0 -github.com/muety/wakapi/utils/strings.go:8.34,10.2 1 0 -github.com/muety/wakapi/utils/template.go:13.41,15.16 2 0 -github.com/muety/wakapi/utils/template.go:18.2,18.23 1 0 -github.com/muety/wakapi/utils/template.go:15.16,17.3 1 0 -github.com/muety/wakapi/utils/template.go:21.37,22.30 1 0 -github.com/muety/wakapi/utils/template.go:25.2,25.10 1 0 -github.com/muety/wakapi/utils/template.go:22.30,24.3 1 0 -github.com/muety/wakapi/utils/template.go:28.83,33.16 4 0 -github.com/muety/wakapi/utils/template.go:37.2,37.29 1 0 -github.com/muety/wakapi/utils/template.go:62.2,62.23 1 0 -github.com/muety/wakapi/utils/template.go:33.16,35.3 1 0 -github.com/muety/wakapi/utils/template.go:37.29,39.51 2 0 -github.com/muety/wakapi/utils/template.go:43.3,44.17 2 0 -github.com/muety/wakapi/utils/template.go:47.3,48.17 2 0 -github.com/muety/wakapi/utils/template.go:52.3,55.17 3 0 -github.com/muety/wakapi/utils/template.go:59.3,59.27 1 0 -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/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:50.50,56.2 5 0 -github.com/muety/wakapi/utils/date.go:59.36,62.2 2 0 -github.com/muety/wakapi/utils/db.go:8.34,9.37 1 0 -github.com/muety/wakapi/utils/db.go:17.2,18.14 2 0 -github.com/muety/wakapi/utils/db.go:9.37,11.110 2 0 -github.com/muety/wakapi/utils/db.go:15.3,15.20 1 0 -github.com/muety/wakapi/utils/db.go:11.110,14.4 2 0 -github.com/muety/wakapi/utils/db.go:21.39,22.37 1 0 -github.com/muety/wakapi/utils/db.go:30.2,31.14 2 0 -github.com/muety/wakapi/utils/db.go:22.37,24.119 2 0 -github.com/muety/wakapi/utils/db.go:28.3,28.20 1 0 -github.com/muety/wakapi/utils/db.go:24.119,27.4 2 0 -github.com/muety/wakapi/utils/http.go:21.13,23.2 1 1 -github.com/muety/wakapi/utils/http.go:25.90,28.58 3 0 -github.com/muety/wakapi/utils/http.go:28.58,30.3 1 0 -github.com/muety/wakapi/utils/http.go:33.62,35.48 2 0 -github.com/muety/wakapi/utils/http.go:38.2,38.93 1 0 -github.com/muety/wakapi/utils/http.go:43.2,43.14 1 0 -github.com/muety/wakapi/utils/http.go:35.48,37.3 1 0 -github.com/muety/wakapi/utils/http.go:38.93,39.89 1 0 -github.com/muety/wakapi/utils/http.go:39.89,41.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 @@ -631,42 +470,7 @@ 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/auth.go:16.79,18.54 2 0 -github.com/muety/wakapi/utils/auth.go:22.2,24.16 3 0 -github.com/muety/wakapi/utils/auth.go:28.2,30.45 3 0 -github.com/muety/wakapi/utils/auth.go:33.2,34.32 2 0 -github.com/muety/wakapi/utils/auth.go:18.54,20.3 1 0 -github.com/muety/wakapi/utils/auth.go:24.16,26.3 1 0 -github.com/muety/wakapi/utils/auth.go:30.45,32.3 1 0 -github.com/muety/wakapi/utils/auth.go:37.65,39.85 2 0 -github.com/muety/wakapi/utils/auth.go:43.2,44.30 2 0 -github.com/muety/wakapi/utils/auth.go:39.85,41.3 1 0 -github.com/muety/wakapi/utils/auth.go:47.94,49.16 2 0 -github.com/muety/wakapi/utils/auth.go:53.2,53.107 1 0 -github.com/muety/wakapi/utils/auth.go:57.2,57.22 1 0 -github.com/muety/wakapi/utils/auth.go:49.16,51.3 1 0 -github.com/muety/wakapi/utils/auth.go:53.107,55.3 1 0 -github.com/muety/wakapi/utils/auth.go:60.56,64.2 3 0 -github.com/muety/wakapi/utils/auth.go:66.55,69.16 3 0 -github.com/muety/wakapi/utils/auth.go:72.2,72.16 1 0 -github.com/muety/wakapi/utils/auth.go:69.16,71.3 1 0 -github.com/muety/wakapi/utils/color.go:8.90,10.32 2 0 -github.com/muety/wakapi/utils/color.go:15.2,15.15 1 0 -github.com/muety/wakapi/utils/color.go:10.32,11.50 1 0 -github.com/muety/wakapi/utils/color.go:11.50,13.4 1 0 -github.com/muety/wakapi/utils/common.go:18.73,19.58 1 0 -github.com/muety/wakapi/utils/common.go:22.2,22.87 1 0 -github.com/muety/wakapi/utils/common.go:25.2,25.64 1 0 -github.com/muety/wakapi/utils/common.go:19.58,21.3 1 0 -github.com/muety/wakapi/utils/common.go:22.87,24.3 1 0 -github.com/muety/wakapi/utils/common.go:28.40,30.2 1 0 -github.com/muety/wakapi/utils/common.go:32.44,34.2 1 0 -github.com/muety/wakapi/utils/common.go:36.49,38.2 1 0 -github.com/muety/wakapi/utils/common.go:40.45,42.2 1 0 -github.com/muety/wakapi/utils/common.go:44.24,46.2 1 0 -github.com/muety/wakapi/utils/common.go:48.56,51.45 3 1 -github.com/muety/wakapi/utils/common.go:54.2,54.40 1 1 -github.com/muety/wakapi/utils/common.go:51.45,53.3 1 1 +github.com/muety/wakapi/utils/strings.go:8.34,10.2 1 0 github.com/muety/wakapi/utils/summary.go:10.66,11.40 1 0 github.com/muety/wakapi/utils/summary.go:16.2,16.48 1 0 github.com/muety/wakapi/utils/summary.go:11.40,12.27 1 0 @@ -718,61 +522,202 @@ github.com/muety/wakapi/utils/summary.go:130.47,132.3 1 0 github.com/muety/wakapi/utils/summary.go:136.48,140.51 2 0 github.com/muety/wakapi/utils/summary.go:143.2,143.12 1 0 github.com/muety/wakapi/utils/summary.go:140.51,142.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 -github.com/muety/wakapi/services/project_label.go:39.2,40.16 2 0 -github.com/muety/wakapi/services/project_label.go:43.2,44.20 2 0 -github.com/muety/wakapi/services/project_label.go:35.51,37.3 1 0 -github.com/muety/wakapi/services/project_label.go:40.16,42.3 1 0 -github.com/muety/wakapi/services/project_label.go:48.108,50.16 2 0 -github.com/muety/wakapi/services/project_label.go:53.2,53.112 1 0 -github.com/muety/wakapi/services/project_label.go:56.2,56.26 1 0 -github.com/muety/wakapi/services/project_label.go:50.16,52.3 1 0 -github.com/muety/wakapi/services/project_label.go:53.112,55.3 1 0 -github.com/muety/wakapi/services/project_label.go:60.116,62.16 2 0 -github.com/muety/wakapi/services/project_label.go:65.2,65.112 1 0 -github.com/muety/wakapi/services/project_label.go:68.2,68.26 1 0 -github.com/muety/wakapi/services/project_label.go:62.16,64.3 1 0 -github.com/muety/wakapi/services/project_label.go:65.112,67.3 1 0 -github.com/muety/wakapi/services/project_label.go:71.98,73.16 2 0 -github.com/muety/wakapi/services/project_label.go:77.2,79.20 3 0 -github.com/muety/wakapi/services/project_label.go:73.16,75.3 1 0 -github.com/muety/wakapi/services/project_label.go:82.74,83.24 1 0 -github.com/muety/wakapi/services/project_label.go:86.2,89.12 4 0 -github.com/muety/wakapi/services/project_label.go:83.24,85.3 1 0 -github.com/muety/wakapi/services/project_label.go:92.89,94.14 2 0 -github.com/muety/wakapi/services/project_label.go:97.2,100.4 1 0 -github.com/muety/wakapi/services/project_label.go:94.14,96.3 1 0 -github.com/muety/wakapi/services/report.go:30.122,44.33 4 0 -github.com/muety/wakapi/services/report.go:50.2,50.12 1 0 -github.com/muety/wakapi/services/report.go:44.33,45.31 1 0 -github.com/muety/wakapi/services/report.go:45.31,47.4 1 0 -github.com/muety/wakapi/services/report.go:53.38,57.16 3 0 -github.com/muety/wakapi/services/report.go:61.2,62.26 2 0 -github.com/muety/wakapi/services/report.go:57.16,59.3 1 0 -github.com/muety/wakapi/services/report.go:62.26,64.3 1 0 -github.com/muety/wakapi/services/report.go:69.61,74.22 3 0 -github.com/muety/wakapi/services/report.go:81.2,81.65 1 0 -github.com/muety/wakapi/services/report.go:98.2,98.24 1 0 -github.com/muety/wakapi/services/report.go:74.22,78.3 3 0 -github.com/muety/wakapi/services/report.go:81.65,91.47 3 0 -github.com/muety/wakapi/services/report.go:91.47,93.4 1 0 -github.com/muety/wakapi/services/report.go:93.9,95.4 1 0 -github.com/muety/wakapi/services/report.go:101.80,102.22 1 0 -github.com/muety/wakapi/services/report.go:107.2,107.29 1 0 -github.com/muety/wakapi/services/report.go:112.2,116.16 4 0 -github.com/muety/wakapi/services/report.go:121.2,128.65 2 0 -github.com/muety/wakapi/services/report.go:133.2,134.12 2 0 -github.com/muety/wakapi/services/report.go:102.22,105.3 2 0 -github.com/muety/wakapi/services/report.go:107.29,110.3 2 0 -github.com/muety/wakapi/services/report.go:116.16,119.3 2 0 -github.com/muety/wakapi/services/report.go:128.65,131.3 2 0 -github.com/muety/wakapi/services/report.go:137.63,138.41 1 0 -github.com/muety/wakapi/services/report.go:145.2,145.12 1 0 -github.com/muety/wakapi/services/report.go:138.41,139.30 1 0 -github.com/muety/wakapi/services/report.go:139.30,140.16 1 0 -github.com/muety/wakapi/services/report.go:140.16,142.5 1 0 +github.com/muety/wakapi/utils/template.go:13.41,15.16 2 0 +github.com/muety/wakapi/utils/template.go:18.2,18.23 1 0 +github.com/muety/wakapi/utils/template.go:15.16,17.3 1 0 +github.com/muety/wakapi/utils/template.go:21.37,22.30 1 0 +github.com/muety/wakapi/utils/template.go:25.2,25.10 1 0 +github.com/muety/wakapi/utils/template.go:22.30,24.3 1 0 +github.com/muety/wakapi/utils/template.go:28.83,33.16 4 0 +github.com/muety/wakapi/utils/template.go:37.2,37.29 1 0 +github.com/muety/wakapi/utils/template.go:62.2,62.23 1 0 +github.com/muety/wakapi/utils/template.go:33.16,35.3 1 0 +github.com/muety/wakapi/utils/template.go:37.29,39.51 2 0 +github.com/muety/wakapi/utils/template.go:43.3,44.17 2 0 +github.com/muety/wakapi/utils/template.go:47.3,48.17 2 0 +github.com/muety/wakapi/utils/template.go:52.3,55.17 3 0 +github.com/muety/wakapi/utils/template.go:59.3,59.27 1 0 +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/color.go:8.90,10.32 2 0 +github.com/muety/wakapi/utils/color.go:15.2,15.15 1 0 +github.com/muety/wakapi/utils/color.go:10.32,11.50 1 0 +github.com/muety/wakapi/utils/color.go:11.50,13.4 1 0 +github.com/muety/wakapi/utils/http.go:21.13,23.2 1 1 +github.com/muety/wakapi/utils/http.go:25.90,28.58 3 0 +github.com/muety/wakapi/utils/http.go:28.58,30.3 1 0 +github.com/muety/wakapi/utils/http.go:33.62,35.48 2 0 +github.com/muety/wakapi/utils/http.go:38.2,38.93 1 0 +github.com/muety/wakapi/utils/http.go:43.2,43.14 1 0 +github.com/muety/wakapi/utils/http.go:35.48,37.3 1 0 +github.com/muety/wakapi/utils/http.go:38.93,39.89 1 0 +github.com/muety/wakapi/utils/http.go:39.89,41.4 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:50.50,56.2 5 0 +github.com/muety/wakapi/utils/date.go:59.36,62.2 2 0 +github.com/muety/wakapi/utils/db.go:8.34,9.37 1 0 +github.com/muety/wakapi/utils/db.go:17.2,18.14 2 0 +github.com/muety/wakapi/utils/db.go:9.37,11.110 2 0 +github.com/muety/wakapi/utils/db.go:15.3,15.20 1 0 +github.com/muety/wakapi/utils/db.go:11.110,14.4 2 0 +github.com/muety/wakapi/utils/db.go:21.39,22.37 1 0 +github.com/muety/wakapi/utils/db.go:30.2,31.14 2 0 +github.com/muety/wakapi/utils/db.go:22.37,24.119 2 0 +github.com/muety/wakapi/utils/db.go:28.3,28.20 1 0 +github.com/muety/wakapi/utils/db.go:24.119,27.4 2 0 +github.com/muety/wakapi/utils/auth.go:16.79,18.54 2 0 +github.com/muety/wakapi/utils/auth.go:22.2,24.16 3 0 +github.com/muety/wakapi/utils/auth.go:28.2,30.45 3 0 +github.com/muety/wakapi/utils/auth.go:33.2,34.32 2 0 +github.com/muety/wakapi/utils/auth.go:18.54,20.3 1 0 +github.com/muety/wakapi/utils/auth.go:24.16,26.3 1 0 +github.com/muety/wakapi/utils/auth.go:30.45,32.3 1 0 +github.com/muety/wakapi/utils/auth.go:37.65,39.85 2 0 +github.com/muety/wakapi/utils/auth.go:43.2,44.30 2 0 +github.com/muety/wakapi/utils/auth.go:39.85,41.3 1 0 +github.com/muety/wakapi/utils/auth.go:47.94,49.16 2 0 +github.com/muety/wakapi/utils/auth.go:53.2,53.107 1 0 +github.com/muety/wakapi/utils/auth.go:57.2,57.22 1 0 +github.com/muety/wakapi/utils/auth.go:49.16,51.3 1 0 +github.com/muety/wakapi/utils/auth.go:53.107,55.3 1 0 +github.com/muety/wakapi/utils/auth.go:60.56,64.2 3 0 +github.com/muety/wakapi/utils/auth.go:66.55,69.16 3 0 +github.com/muety/wakapi/utils/auth.go:72.2,72.16 1 0 +github.com/muety/wakapi/utils/auth.go:69.16,71.3 1 0 +github.com/muety/wakapi/utils/common.go:18.73,19.58 1 0 +github.com/muety/wakapi/utils/common.go:22.2,22.87 1 0 +github.com/muety/wakapi/utils/common.go:25.2,25.64 1 0 +github.com/muety/wakapi/utils/common.go:19.58,21.3 1 0 +github.com/muety/wakapi/utils/common.go:22.87,24.3 1 0 +github.com/muety/wakapi/utils/common.go:28.40,30.2 1 0 +github.com/muety/wakapi/utils/common.go:32.44,34.2 1 0 +github.com/muety/wakapi/utils/common.go:36.49,38.2 1 0 +github.com/muety/wakapi/utils/common.go:40.45,42.2 1 0 +github.com/muety/wakapi/utils/common.go:44.24,46.2 1 0 +github.com/muety/wakapi/utils/common.go:48.56,51.45 3 1 +github.com/muety/wakapi/utils/common.go:54.2,54.40 1 1 +github.com/muety/wakapi/utils/common.go:51.45,53.3 1 1 +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:30.91,36.2 1 1 +github.com/muety/wakapi/middlewares/authenticate.go:38.90,41.2 2 0 +github.com/muety/wakapi/middlewares/authenticate.go:43.90,46.2 2 0 +github.com/muety/wakapi/middlewares/authenticate.go:48.71,49.71 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:49.71,51.3 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:54.107,58.16 3 0 +github.com/muety/wakapi/middlewares/authenticate.go:61.2,61.16 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:65.2,65.31 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:81.2,82.12 2 0 +github.com/muety/wakapi/middlewares/authenticate.go:58.16,60.3 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:61.16,63.3 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:65.31,66.31 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:71.3,71.29 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:78.3,78.9 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:66.31,69.4 2 0 +github.com/muety/wakapi/middlewares/authenticate.go:71.29,74.4 2 0 +github.com/muety/wakapi/middlewares/authenticate.go:74.9,77.4 2 0 +github.com/muety/wakapi/middlewares/authenticate.go:85.70,86.39 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:91.2,91.14 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:86.39,87.60 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:87.60,89.4 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:94.98,96.16 2 1 +github.com/muety/wakapi/middlewares/authenticate.go:100.2,103.16 4 1 +github.com/muety/wakapi/middlewares/authenticate.go:106.2,106.18 1 1 +github.com/muety/wakapi/middlewares/authenticate.go:96.16,98.3 1 1 +github.com/muety/wakapi/middlewares/authenticate.go:103.16,105.3 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:109.97,113.19 4 1 +github.com/muety/wakapi/middlewares/authenticate.go:116.2,117.16 2 1 +github.com/muety/wakapi/middlewares/authenticate.go:120.2,120.18 1 1 +github.com/muety/wakapi/middlewares/authenticate.go:113.19,115.3 1 1 +github.com/muety/wakapi/middlewares/authenticate.go:117.16,119.3 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:123.92,125.16 2 0 +github.com/muety/wakapi/middlewares/authenticate.go:129.2,130.16 2 0 +github.com/muety/wakapi/middlewares/authenticate.go:137.2,137.18 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:125.16,127.3 1 0 +github.com/muety/wakapi/middlewares/authenticate.go:130.16,132.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:42.71,43.43 1 0 +github.com/muety/wakapi/middlewares/principal.go:43.43,45.3 1 0 +github.com/muety/wakapi/middlewares/principal.go:48.81,51.2 2 0 +github.com/muety/wakapi/middlewares/principal.go:53.55,54.52 1 0 +github.com/muety/wakapi/middlewares/principal.go:54.52,56.3 1 0 +github.com/muety/wakapi/middlewares/principal.go:59.49,60.52 1 0 +github.com/muety/wakapi/middlewares/principal.go:63.2,63.12 1 0 +github.com/muety/wakapi/middlewares/principal.go:60.52,62.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.44 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/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 @@ -901,57 +846,6 @@ github.com/muety/wakapi/services/summary.go:469.3,469.24 1 1 github.com/muety/wakapi/services/summary.go:460.17,461.33 1 1 github.com/muety/wakapi/services/summary.go:461.33,463.5 1 1 github.com/muety/wakapi/services/summary.go:466.28,468.4 1 1 -github.com/muety/wakapi/services/user.go:25.99,35.33 3 0 -github.com/muety/wakapi/services/user.go:56.2,56.12 1 0 -github.com/muety/wakapi/services/user.go:35.33,36.31 1 0 -github.com/muety/wakapi/services/user.go:36.31,42.73 4 0 -github.com/muety/wakapi/services/user.go:46.4,46.24 1 0 -github.com/muety/wakapi/services/user.go:42.73,44.5 1 0 -github.com/muety/wakapi/services/user.go:46.24,47.80 1 0 -github.com/muety/wakapi/services/user.go:47.80,49.6 1 0 -github.com/muety/wakapi/services/user.go:49.11,51.6 1 0 -github.com/muety/wakapi/services/user.go:59.74,60.40 1 0 -github.com/muety/wakapi/services/user.go:64.2,65.16 2 0 -github.com/muety/wakapi/services/user.go:69.2,70.15 2 0 -github.com/muety/wakapi/services/user.go:60.40,62.3 1 0 -github.com/muety/wakapi/services/user.go:65.16,67.3 1 0 -github.com/muety/wakapi/services/user.go:73.72,74.37 1 0 -github.com/muety/wakapi/services/user.go:78.2,79.16 2 0 -github.com/muety/wakapi/services/user.go:83.2,84.15 2 0 -github.com/muety/wakapi/services/user.go:74.37,76.3 1 0 -github.com/muety/wakapi/services/user.go:79.16,81.3 1 0 -github.com/muety/wakapi/services/user.go:87.76,89.2 1 0 -github.com/muety/wakapi/services/user.go:91.86,93.2 1 0 -github.com/muety/wakapi/services/user.go:95.58,97.2 1 0 -github.com/muety/wakapi/services/user.go:99.86,101.2 1 0 -github.com/muety/wakapi/services/user.go:103.71,105.12 2 0 -github.com/muety/wakapi/services/user.go:109.2,110.42 2 0 -github.com/muety/wakapi/services/user.go:114.2,115.16 2 0 -github.com/muety/wakapi/services/user.go:119.2,120.21 2 0 -github.com/muety/wakapi/services/user.go:105.12,107.3 1 0 -github.com/muety/wakapi/services/user.go:110.42,112.3 1 0 -github.com/muety/wakapi/services/user.go:115.16,117.3 1 0 -github.com/muety/wakapi/services/user.go:123.48,125.2 1 0 -github.com/muety/wakapi/services/user.go:127.102,137.93 2 0 -github.com/muety/wakapi/services/user.go:143.2,143.38 1 0 -github.com/muety/wakapi/services/user.go:137.93,139.3 1 0 -github.com/muety/wakapi/services/user.go:139.8,141.3 1 0 -github.com/muety/wakapi/services/user.go:146.73,150.2 3 0 -github.com/muety/wakapi/services/user.go:152.78,156.2 3 0 -github.com/muety/wakapi/services/user.go:158.122,161.35 2 0 -github.com/muety/wakapi/services/user.go:167.2,167.35 1 0 -github.com/muety/wakapi/services/user.go:171.2,171.18 1 0 -github.com/muety/wakapi/services/user.go:161.35,162.89 1 0 -github.com/muety/wakapi/services/user.go:162.89,164.4 1 0 -github.com/muety/wakapi/services/user.go:167.35,169.3 1 0 -github.com/muety/wakapi/services/user.go:174.106,177.96 3 0 -github.com/muety/wakapi/services/user.go:182.2,182.68 1 0 -github.com/muety/wakapi/services/user.go:177.96,179.3 1 0 -github.com/muety/wakapi/services/user.go:179.8,181.3 1 0 -github.com/muety/wakapi/services/user.go:185.85,187.2 1 0 -github.com/muety/wakapi/services/user.go:189.57,196.2 4 0 -github.com/muety/wakapi/services/user.go:198.38,200.2 1 0 -github.com/muety/wakapi/services/user.go:202.57,207.2 1 0 github.com/muety/wakapi/services/aggregation.go:30.142,38.2 1 0 github.com/muety/wakapi/services/aggregation.go:47.43,51.2 3 0 github.com/muety/wakapi/services/aggregation.go:53.77,54.47 1 0 @@ -993,53 +887,6 @@ github.com/muety/wakapi/services/aggregation.go:159.27,161.3 1 0 github.com/muety/wakapi/services/aggregation.go:164.83,179.41 5 0 github.com/muety/wakapi/services/aggregation.go:179.41,189.3 3 0 github.com/muety/wakapi/services/aggregation.go:192.34,195.2 2 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/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/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.78,27.16 2 0 -github.com/muety/wakapi/services/key_value.go:33.2,33.11 1 0 -github.com/muety/wakapi/services/key_value.go:27.16,32.3 1 0 -github.com/muety/wakapi/services/key_value.go:36.72,38.2 1 0 -github.com/muety/wakapi/services/key_value.go:40.60,42.2 1 0 -github.com/muety/wakapi/services/misc.go:21.126,28.2 1 0 -github.com/muety/wakapi/services/misc.go:40.50,44.2 3 0 -github.com/muety/wakapi/services/misc.go:46.51,48.16 2 0 -github.com/muety/wakapi/services/misc.go:52.2,55.26 3 0 -github.com/muety/wakapi/services/misc.go:61.2,63.40 2 0 -github.com/muety/wakapi/services/misc.go:68.2,70.33 3 0 -github.com/muety/wakapi/services/misc.go:74.2,79.17 2 0 -github.com/muety/wakapi/services/misc.go:83.2,86.17 1 0 -github.com/muety/wakapi/services/misc.go:90.2,90.12 1 0 -github.com/muety/wakapi/services/misc.go:48.16,50.3 1 0 -github.com/muety/wakapi/services/misc.go:55.26,60.3 1 0 -github.com/muety/wakapi/services/misc.go:63.40,65.3 1 0 -github.com/muety/wakapi/services/misc.go:70.33,73.3 2 0 -github.com/muety/wakapi/services/misc.go:79.17,81.3 1 0 -github.com/muety/wakapi/services/misc.go:86.17,88.3 1 0 -github.com/muety/wakapi/services/misc.go:93.116,94.24 1 0 -github.com/muety/wakapi/services/misc.go:94.24,95.156 1 0 -github.com/muety/wakapi/services/misc.go:95.156,97.4 1 0 -github.com/muety/wakapi/services/misc.go:97.9,102.4 1 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 @@ -1101,35 +948,6 @@ 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/duration.go:17.78,23.2 2 1 -github.com/muety/wakapi/services/duration.go:25.123,28.42 2 1 -github.com/muety/wakapi/services/duration.go:34.2,35.16 2 1 -github.com/muety/wakapi/services/duration.go:42.2,47.31 4 1 -github.com/muety/wakapi/services/duration.go:95.2,97.31 2 1 -github.com/muety/wakapi/services/duration.go:110.2,110.49 1 1 -github.com/muety/wakapi/services/duration.go:114.2,114.32 1 1 -github.com/muety/wakapi/services/duration.go:28.42,29.90 1 1 -github.com/muety/wakapi/services/duration.go:29.90,31.4 1 1 -github.com/muety/wakapi/services/duration.go:35.16,37.3 1 0 -github.com/muety/wakapi/services/duration.go:47.31,48.42 1 1 -github.com/muety/wakapi/services/duration.go:52.3,54.62 2 1 -github.com/muety/wakapi/services/duration.go:58.3,58.20 1 1 -github.com/muety/wakapi/services/duration.go:63.3,73.15 3 1 -github.com/muety/wakapi/services/duration.go:76.3,82.84 2 1 -github.com/muety/wakapi/services/duration.go:92.3,92.10 1 1 -github.com/muety/wakapi/services/duration.go:48.42,49.12 1 1 -github.com/muety/wakapi/services/duration.go:54.62,56.4 1 1 -github.com/muety/wakapi/services/duration.go:58.20,60.12 2 1 -github.com/muety/wakapi/services/duration.go:73.15,75.4 1 0 -github.com/muety/wakapi/services/duration.go:82.84,84.41 2 1 -github.com/muety/wakapi/services/duration.go:87.4,87.15 1 1 -github.com/muety/wakapi/services/duration.go:84.41,86.5 1 1 -github.com/muety/wakapi/services/duration.go:88.9,90.4 1 1 -github.com/muety/wakapi/services/duration.go:97.31,98.26 1 1 -github.com/muety/wakapi/services/duration.go:98.26,103.23 1 1 -github.com/muety/wakapi/services/duration.go:106.4,106.36 1 1 -github.com/muety/wakapi/services/duration.go:103.23,105.5 1 1 -github.com/muety/wakapi/services/duration.go:110.49,112.3 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 @@ -1197,7 +1015,189 @@ github.com/muety/wakapi/services/heartbeat.go:239.32,244.3 1 0 github.com/muety/wakapi/services/heartbeat.go:247.72,249.2 1 0 github.com/muety/wakapi/services/heartbeat.go:251.58,253.2 1 0 github.com/muety/wakapi/services/heartbeat.go:255.60,257.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:259.94,261.42 2 0 +github.com/muety/wakapi/services/heartbeat.go:259.94,261.48 2 0 github.com/muety/wakapi/services/heartbeat.go:267.2,267.18 1 0 -github.com/muety/wakapi/services/heartbeat.go:261.42,263.18 2 0 +github.com/muety/wakapi/services/heartbeat.go:261.48,263.18 2 0 github.com/muety/wakapi/services/heartbeat.go:263.18,265.4 1 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.78,27.16 2 0 +github.com/muety/wakapi/services/key_value.go:33.2,33.11 1 0 +github.com/muety/wakapi/services/key_value.go:27.16,32.3 1 0 +github.com/muety/wakapi/services/key_value.go:36.72,38.2 1 0 +github.com/muety/wakapi/services/key_value.go:40.60,42.2 1 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/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 +github.com/muety/wakapi/services/project_label.go:39.2,40.16 2 0 +github.com/muety/wakapi/services/project_label.go:43.2,44.20 2 0 +github.com/muety/wakapi/services/project_label.go:35.51,37.3 1 0 +github.com/muety/wakapi/services/project_label.go:40.16,42.3 1 0 +github.com/muety/wakapi/services/project_label.go:48.108,50.16 2 0 +github.com/muety/wakapi/services/project_label.go:53.2,53.112 1 0 +github.com/muety/wakapi/services/project_label.go:56.2,56.26 1 0 +github.com/muety/wakapi/services/project_label.go:50.16,52.3 1 0 +github.com/muety/wakapi/services/project_label.go:53.112,55.3 1 0 +github.com/muety/wakapi/services/project_label.go:60.116,62.16 2 0 +github.com/muety/wakapi/services/project_label.go:65.2,65.112 1 0 +github.com/muety/wakapi/services/project_label.go:68.2,68.26 1 0 +github.com/muety/wakapi/services/project_label.go:62.16,64.3 1 0 +github.com/muety/wakapi/services/project_label.go:65.112,67.3 1 0 +github.com/muety/wakapi/services/project_label.go:71.98,73.16 2 0 +github.com/muety/wakapi/services/project_label.go:77.2,79.20 3 0 +github.com/muety/wakapi/services/project_label.go:73.16,75.3 1 0 +github.com/muety/wakapi/services/project_label.go:82.74,83.24 1 0 +github.com/muety/wakapi/services/project_label.go:86.2,89.12 4 0 +github.com/muety/wakapi/services/project_label.go:83.24,85.3 1 0 +github.com/muety/wakapi/services/project_label.go:92.89,94.14 2 0 +github.com/muety/wakapi/services/project_label.go:97.2,100.4 1 0 +github.com/muety/wakapi/services/project_label.go:94.14,96.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:17.78,23.2 2 1 +github.com/muety/wakapi/services/duration.go:25.123,28.42 2 1 +github.com/muety/wakapi/services/duration.go:34.2,35.16 2 1 +github.com/muety/wakapi/services/duration.go:42.2,47.31 4 1 +github.com/muety/wakapi/services/duration.go:95.2,97.31 2 1 +github.com/muety/wakapi/services/duration.go:110.2,110.49 1 1 +github.com/muety/wakapi/services/duration.go:114.2,114.32 1 1 +github.com/muety/wakapi/services/duration.go:28.42,29.90 1 1 +github.com/muety/wakapi/services/duration.go:29.90,31.4 1 1 +github.com/muety/wakapi/services/duration.go:35.16,37.3 1 0 +github.com/muety/wakapi/services/duration.go:47.31,48.42 1 1 +github.com/muety/wakapi/services/duration.go:52.3,54.62 2 1 +github.com/muety/wakapi/services/duration.go:58.3,58.20 1 1 +github.com/muety/wakapi/services/duration.go:63.3,73.15 3 1 +github.com/muety/wakapi/services/duration.go:76.3,82.84 2 1 +github.com/muety/wakapi/services/duration.go:92.3,92.10 1 1 +github.com/muety/wakapi/services/duration.go:48.42,49.12 1 1 +github.com/muety/wakapi/services/duration.go:54.62,56.4 1 1 +github.com/muety/wakapi/services/duration.go:58.20,60.12 2 1 +github.com/muety/wakapi/services/duration.go:73.15,75.4 1 0 +github.com/muety/wakapi/services/duration.go:82.84,84.41 2 1 +github.com/muety/wakapi/services/duration.go:87.4,87.15 1 1 +github.com/muety/wakapi/services/duration.go:84.41,86.5 1 1 +github.com/muety/wakapi/services/duration.go:88.9,90.4 1 1 +github.com/muety/wakapi/services/duration.go:97.31,98.26 1 1 +github.com/muety/wakapi/services/duration.go:98.26,103.23 1 1 +github.com/muety/wakapi/services/duration.go:106.4,106.36 1 1 +github.com/muety/wakapi/services/duration.go:103.23,105.5 1 1 +github.com/muety/wakapi/services/duration.go:110.49,112.3 1 1 +github.com/muety/wakapi/services/misc.go:21.126,28.2 1 0 +github.com/muety/wakapi/services/misc.go:40.50,44.2 3 0 +github.com/muety/wakapi/services/misc.go:46.51,48.16 2 0 +github.com/muety/wakapi/services/misc.go:52.2,55.26 3 0 +github.com/muety/wakapi/services/misc.go:61.2,63.40 2 0 +github.com/muety/wakapi/services/misc.go:68.2,70.33 3 0 +github.com/muety/wakapi/services/misc.go:74.2,79.17 2 0 +github.com/muety/wakapi/services/misc.go:83.2,86.17 1 0 +github.com/muety/wakapi/services/misc.go:90.2,90.12 1 0 +github.com/muety/wakapi/services/misc.go:48.16,50.3 1 0 +github.com/muety/wakapi/services/misc.go:55.26,60.3 1 0 +github.com/muety/wakapi/services/misc.go:63.40,65.3 1 0 +github.com/muety/wakapi/services/misc.go:70.33,73.3 2 0 +github.com/muety/wakapi/services/misc.go:79.17,81.3 1 0 +github.com/muety/wakapi/services/misc.go:86.17,88.3 1 0 +github.com/muety/wakapi/services/misc.go:93.116,94.24 1 0 +github.com/muety/wakapi/services/misc.go:94.24,95.156 1 0 +github.com/muety/wakapi/services/misc.go:95.156,97.4 1 0 +github.com/muety/wakapi/services/misc.go:97.9,102.4 1 0 +github.com/muety/wakapi/services/report.go:30.122,44.33 4 0 +github.com/muety/wakapi/services/report.go:50.2,50.12 1 0 +github.com/muety/wakapi/services/report.go:44.33,45.31 1 0 +github.com/muety/wakapi/services/report.go:45.31,47.4 1 0 +github.com/muety/wakapi/services/report.go:53.38,57.16 3 0 +github.com/muety/wakapi/services/report.go:61.2,62.26 2 0 +github.com/muety/wakapi/services/report.go:57.16,59.3 1 0 +github.com/muety/wakapi/services/report.go:62.26,64.3 1 0 +github.com/muety/wakapi/services/report.go:69.61,74.22 3 0 +github.com/muety/wakapi/services/report.go:81.2,81.65 1 0 +github.com/muety/wakapi/services/report.go:98.2,98.24 1 0 +github.com/muety/wakapi/services/report.go:74.22,78.3 3 0 +github.com/muety/wakapi/services/report.go:81.65,91.47 3 0 +github.com/muety/wakapi/services/report.go:91.47,93.4 1 0 +github.com/muety/wakapi/services/report.go:93.9,95.4 1 0 +github.com/muety/wakapi/services/report.go:101.80,102.22 1 0 +github.com/muety/wakapi/services/report.go:107.2,107.29 1 0 +github.com/muety/wakapi/services/report.go:112.2,116.16 4 0 +github.com/muety/wakapi/services/report.go:121.2,128.65 2 0 +github.com/muety/wakapi/services/report.go:133.2,134.12 2 0 +github.com/muety/wakapi/services/report.go:102.22,105.3 2 0 +github.com/muety/wakapi/services/report.go:107.29,110.3 2 0 +github.com/muety/wakapi/services/report.go:116.16,119.3 2 0 +github.com/muety/wakapi/services/report.go:128.65,131.3 2 0 +github.com/muety/wakapi/services/report.go:137.63,138.41 1 0 +github.com/muety/wakapi/services/report.go:145.2,145.12 1 0 +github.com/muety/wakapi/services/report.go:138.41,139.30 1 0 +github.com/muety/wakapi/services/report.go:139.30,140.16 1 0 +github.com/muety/wakapi/services/report.go:140.16,142.5 1 0 +github.com/muety/wakapi/services/user.go:25.99,35.33 3 0 +github.com/muety/wakapi/services/user.go:56.2,56.12 1 0 +github.com/muety/wakapi/services/user.go:35.33,36.31 1 0 +github.com/muety/wakapi/services/user.go:36.31,42.73 4 0 +github.com/muety/wakapi/services/user.go:46.4,46.24 1 0 +github.com/muety/wakapi/services/user.go:42.73,44.5 1 0 +github.com/muety/wakapi/services/user.go:46.24,47.80 1 0 +github.com/muety/wakapi/services/user.go:47.80,49.6 1 0 +github.com/muety/wakapi/services/user.go:49.11,51.6 1 0 +github.com/muety/wakapi/services/user.go:59.74,60.40 1 0 +github.com/muety/wakapi/services/user.go:64.2,65.16 2 0 +github.com/muety/wakapi/services/user.go:69.2,70.15 2 0 +github.com/muety/wakapi/services/user.go:60.40,62.3 1 0 +github.com/muety/wakapi/services/user.go:65.16,67.3 1 0 +github.com/muety/wakapi/services/user.go:73.72,74.37 1 0 +github.com/muety/wakapi/services/user.go:78.2,79.16 2 0 +github.com/muety/wakapi/services/user.go:83.2,84.15 2 0 +github.com/muety/wakapi/services/user.go:74.37,76.3 1 0 +github.com/muety/wakapi/services/user.go:79.16,81.3 1 0 +github.com/muety/wakapi/services/user.go:87.76,89.2 1 0 +github.com/muety/wakapi/services/user.go:91.86,93.2 1 0 +github.com/muety/wakapi/services/user.go:95.58,97.2 1 0 +github.com/muety/wakapi/services/user.go:99.86,101.2 1 0 +github.com/muety/wakapi/services/user.go:103.71,105.12 2 0 +github.com/muety/wakapi/services/user.go:109.2,110.42 2 0 +github.com/muety/wakapi/services/user.go:114.2,115.16 2 0 +github.com/muety/wakapi/services/user.go:119.2,120.21 2 0 +github.com/muety/wakapi/services/user.go:105.12,107.3 1 0 +github.com/muety/wakapi/services/user.go:110.42,112.3 1 0 +github.com/muety/wakapi/services/user.go:115.16,117.3 1 0 +github.com/muety/wakapi/services/user.go:123.48,125.2 1 0 +github.com/muety/wakapi/services/user.go:127.102,137.93 2 0 +github.com/muety/wakapi/services/user.go:143.2,143.38 1 0 +github.com/muety/wakapi/services/user.go:137.93,139.3 1 0 +github.com/muety/wakapi/services/user.go:139.8,141.3 1 0 +github.com/muety/wakapi/services/user.go:146.73,150.2 3 0 +github.com/muety/wakapi/services/user.go:152.78,156.2 3 0 +github.com/muety/wakapi/services/user.go:158.122,161.35 2 0 +github.com/muety/wakapi/services/user.go:167.2,167.35 1 0 +github.com/muety/wakapi/services/user.go:171.2,171.18 1 0 +github.com/muety/wakapi/services/user.go:161.35,162.89 1 0 +github.com/muety/wakapi/services/user.go:162.89,164.4 1 0 +github.com/muety/wakapi/services/user.go:167.35,169.3 1 0 +github.com/muety/wakapi/services/user.go:174.106,177.96 3 0 +github.com/muety/wakapi/services/user.go:182.2,182.68 1 0 +github.com/muety/wakapi/services/user.go:177.96,179.3 1 0 +github.com/muety/wakapi/services/user.go:179.8,181.3 1 0 +github.com/muety/wakapi/services/user.go:185.85,187.2 1 0 +github.com/muety/wakapi/services/user.go:189.57,196.2 4 0 +github.com/muety/wakapi/services/user.go:198.38,200.2 1 0 +github.com/muety/wakapi/services/user.go:202.57,207.2 1 0 diff --git a/routes/compat/wakatime/v1/users_test.go b/routes/compat/wakatime/v1/users_test.go new file mode 100644 index 0000000..a84ac4d --- /dev/null +++ b/routes/compat/wakatime/v1/users_test.go @@ -0,0 +1,128 @@ +package v1 + +import ( + "encoding/base64" + "fmt" + "github.com/gorilla/mux" + "github.com/muety/wakapi/middlewares" + "github.com/muety/wakapi/mocks" + "github.com/muety/wakapi/models" + "io/ioutil" + "net/http" + "net/http/httptest" + "strings" + "testing" + "time" +) + +var ( + adminUser = &models.User{ + ID: "AdminUser", + ApiKey: "admin-user-api-key", + Email: "admin@user.com", + IsAdmin: true, + CreatedAt: models.CustomTime(time.Date(2022, 2, 2, 22, 22, 22, 1, time.UTC)), + LastLoggedInAt: models.CustomTime(time.Date(2022, 2, 2, 22, 22, 22, 2, time.UTC)), + } + + basicUser = &models.User{ + ID: "BasicUser", + ApiKey: "basic-user-api-key", + Email: "basic@user.com", + IsAdmin: false, + CreatedAt: models.CustomTime(time.Date(2022, 2, 2, 22, 22, 22, 3, time.UTC)), + LastLoggedInAt: models.CustomTime(time.Date(2022, 2, 2, 22, 22, 22, 4, time.UTC)), + } +) + +func TestUsersHandler_Get(t *testing.T) { + router := mux.NewRouter() + apiRouter := router.PathPrefix("/api").Subrouter().StrictSlash(true) + apiRouter.Use(middlewares.NewPrincipalMiddleware()) + + userServiceMock := new(mocks.UserServiceMock) + userServiceMock.On("GetUserById", "AdminUser").Return(adminUser, nil) + userServiceMock.On("GetUserByKey", "admin-user-api-key").Return(adminUser, nil) + userServiceMock.On("GetUserById", "BasicUser").Return(basicUser, nil) + userServiceMock.On("GetUserByKey", "basic-user-api-key").Return(basicUser, nil) + + heartbeatServiceMock := new(mocks.HeartbeatServiceMock) + heartbeatServiceMock.On("GetLatestByUser", adminUser).Return(&models.Heartbeat{ + CreatedAt: models.CustomTime(time.Date(2022, 2, 2, 22, 22, 22, 5, time.UTC)), + Time: models.CustomTime(time.Date(2022, 2, 2, 22, 22, 22, 6, time.UTC)), + }, nil) + heartbeatServiceMock.On("GetLatestByUser", basicUser).Return(&models.Heartbeat{ + CreatedAt: models.CustomTime(time.Date(2022, 2, 2, 22, 22, 22, 5, time.UTC)), + Time: models.CustomTime(time.Date(2022, 2, 2, 22, 22, 22, 6, time.UTC)), + }, nil) + + usersHandler := NewUsersHandler(userServiceMock, heartbeatServiceMock) + usersHandler.RegisterRoutes(apiRouter) + + t.Run("when requesting own user data", func(t *testing.T) { + t.Run("should return own data", func(t *testing.T) { + req := httptest.NewRequest(http.MethodGet, "/api/compat/wakatime/v1/users/AdminUser", nil) + req.Header.Add( + "Authorization", + fmt.Sprintf("Bearer %s", base64.StdEncoding.EncodeToString([]byte(adminUser.ApiKey))), + ) + requestRecorder := httptest.NewRecorder() + apiRouter.ServeHTTP(requestRecorder, req) + res := requestRecorder.Result() + defer res.Body.Close() + + data, err := ioutil.ReadAll(res.Body) + if err != nil { + t.Errorf("unextected error. Error: %s", err) + } + + if !strings.Contains(string(data), "\"username\":\"AdminUser\"") { + t.Errorf("invalid response received. Expected json Received: %s", string(data)) + } + }) + }) + + t.Run("when requesting another users data", func(t *testing.T) { + t.Run("should respond with '401 unauthorized' if not an admin user", func(t *testing.T) { + req := httptest.NewRequest(http.MethodGet, "/api/compat/wakatime/v1/users/AdminUser", nil) + req.Header.Add( + "Authorization", + fmt.Sprintf("Bearer %s", base64.StdEncoding.EncodeToString([]byte(basicUser.ApiKey))), + ) + requestRecorder := httptest.NewRecorder() + apiRouter.ServeHTTP(requestRecorder, req) + res := requestRecorder.Result() + defer res.Body.Close() + + data, err := ioutil.ReadAll(res.Body) + if err != nil { + t.Errorf("unextected error. Error: %s", err) + } + + if string(data) != "401 unauthorized" { + t.Errorf("invalid response received. Expected: '401 unauthorized' Received: %s", string(data)) + } + }) + + t.Run("should receive user data if requesting user is an admin", func(t *testing.T) { + req := httptest.NewRequest(http.MethodGet, "/api/compat/wakatime/v1/users/BasicUser", nil) + req.Header.Add( + "Authorization", + fmt.Sprintf("Bearer %s", base64.StdEncoding.EncodeToString([]byte(adminUser.ApiKey))), + ) + requestRecorder := httptest.NewRecorder() + apiRouter.ServeHTTP(requestRecorder, req) + res := requestRecorder.Result() + defer res.Body.Close() + + data, err := ioutil.ReadAll(res.Body) + if err != nil { + t.Errorf("unextected error. Error: %s", err) + } + + if !strings.Contains(string(data), "\"username\":\"BasicUser\"") { + t.Errorf("invalid response received. Expected 'BasicUser' info Received: %s", string(data)) + } + }) + }) +}