From 5e96e2a60111faf01954a55cd7625c337923bb48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ferdinand=20M=C3=BCtsch?= Date: Sat, 26 Jun 2021 12:42:51 +0200 Subject: [PATCH] chore: cache active users with hourly precision --- coverage/coverage.out | 1063 +++++++++++++++++++++-------------------- mocks/user_service.go | 4 +- routes/api/metrics.go | 2 +- services/services.go | 2 +- services/user.go | 22 +- utils/date.go | 5 + 6 files changed, 563 insertions(+), 535 deletions(-) diff --git a/coverage/coverage.out b/coverage/coverage.out index e19f720..827e6ac 100644 --- a/coverage/coverage.out +++ b/coverage/coverage.out @@ -1,88 +1,20 @@ mode: set -github.com/muety/wakapi/models/heartbeat.go:32.34,34.2 1 1 -github.com/muety/wakapi/models/heartbeat.go:36.65,38.46 2 1 -github.com/muety/wakapi/models/heartbeat.go:38.46,39.108 1 1 -github.com/muety/wakapi/models/heartbeat.go:39.108,42.4 2 1 -github.com/muety/wakapi/models/heartbeat.go:46.50,47.11 1 1 -github.com/muety/wakapi/models/heartbeat.go:60.2,60.15 1 1 -github.com/muety/wakapi/models/heartbeat.go:64.2,64.12 1 1 -github.com/muety/wakapi/models/heartbeat.go:48.22,49.18 1 1 -github.com/muety/wakapi/models/heartbeat.go:50.21,51.17 1 1 -github.com/muety/wakapi/models/heartbeat.go:52.23,53.19 1 1 -github.com/muety/wakapi/models/heartbeat.go:54.17,55.26 1 1 -github.com/muety/wakapi/models/heartbeat.go:56.22,57.18 1 1 -github.com/muety/wakapi/models/heartbeat.go:60.15,62.3 1 1 -github.com/muety/wakapi/models/heartbeat.go:67.37,83.2 1 0 -github.com/muety/wakapi/models/heartbeat.go:91.41,93.16 2 0 -github.com/muety/wakapi/models/heartbeat.go:96.2,97.10 2 0 -github.com/muety/wakapi/models/heartbeat.go:93.16,95.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/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/user.go:8.13,10.2 1 1 -github.com/muety/wakapi/models/user.go:79.36,80.22 1 1 -github.com/muety/wakapi/models/user.go:83.2,84.16 2 1 -github.com/muety/wakapi/models/user.go:87.2,87.11 1 1 -github.com/muety/wakapi/models/user.go:80.22,82.3 1 1 -github.com/muety/wakapi/models/user.go:84.16,86.3 1 0 -github.com/muety/wakapi/models/user.go:90.41,93.2 2 1 -github.com/muety/wakapi/models/user.go:95.43,98.2 1 0 -github.com/muety/wakapi/models/user.go:100.45,103.2 1 0 -github.com/muety/wakapi/models/user.go:105.33,110.2 1 0 -github.com/muety/wakapi/models/user.go:112.41,114.2 1 0 -github.com/muety/wakapi/models/user.go:116.45,118.2 1 0 -github.com/muety/wakapi/models/user.go:120.45,122.2 1 0 -github.com/muety/wakapi/models/user.go:124.39,126.2 1 0 -github.com/muety/wakapi/models/user.go:128.39,131.2 2 0 github.com/muety/wakapi/models/alias.go:12.32,14.2 1 0 github.com/muety/wakapi/models/alias.go:16.37,17.35 1 0 github.com/muety/wakapi/models/alias.go:22.2,22.14 1 0 github.com/muety/wakapi/models/alias.go:17.35,18.18 1 0 github.com/muety/wakapi/models/alias.go:18.18,20.4 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:11.39,13.2 1 0 -github.com/muety/wakapi/models/filters.go:17.56,18.16 1 0 -github.com/muety/wakapi/models/filters.go:32.2,32.19 1 0 -github.com/muety/wakapi/models/filters.go:19.22,20.32 1 0 -github.com/muety/wakapi/models/filters.go:21.17,22.27 1 0 -github.com/muety/wakapi/models/filters.go:23.23,24.33 1 0 -github.com/muety/wakapi/models/filters.go:25.21,26.31 1 0 -github.com/muety/wakapi/models/filters.go:27.22,28.32 1 0 -github.com/muety/wakapi/models/filters.go:29.20,30.30 1 0 -github.com/muety/wakapi/models/filters.go:35.47,36.21 1 1 -github.com/muety/wakapi/models/filters.go:49.2,49.21 1 1 -github.com/muety/wakapi/models/filters.go:36.21,38.3 1 1 -github.com/muety/wakapi/models/filters.go:38.8,38.23 1 1 -github.com/muety/wakapi/models/filters.go:38.23,40.3 1 0 -github.com/muety/wakapi/models/filters.go:40.8,40.29 1 1 -github.com/muety/wakapi/models/filters.go:40.29,42.3 1 1 -github.com/muety/wakapi/models/filters.go:42.8,42.27 1 1 -github.com/muety/wakapi/models/filters.go:42.27,44.3 1 0 -github.com/muety/wakapi/models/filters.go:44.8,44.28 1 1 -github.com/muety/wakapi/models/filters.go:44.28,46.3 1 0 -github.com/muety/wakapi/models/filters.go:46.8,46.26 1 1 -github.com/muety/wakapi/models/filters.go:46.26,48.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/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 @@ -153,17 +85,45 @@ github.com/muety/wakapi/models/summary.go:287.50,291.2 1 1 github.com/muety/wakapi/models/summary.go:293.33,295.2 1 1 github.com/muety/wakapi/models/summary.go:297.43,299.2 1 1 github.com/muety/wakapi/models/summary.go:301.38,303.2 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/models.go:3.14,5.2 0 1 +github.com/muety/wakapi/models/user.go:8.13,10.2 1 1 +github.com/muety/wakapi/models/user.go:79.36,80.22 1 1 +github.com/muety/wakapi/models/user.go:83.2,84.16 2 1 +github.com/muety/wakapi/models/user.go:87.2,87.11 1 1 +github.com/muety/wakapi/models/user.go:80.22,82.3 1 1 +github.com/muety/wakapi/models/user.go:84.16,86.3 1 0 +github.com/muety/wakapi/models/user.go:90.41,93.2 2 1 +github.com/muety/wakapi/models/user.go:95.43,98.2 1 0 +github.com/muety/wakapi/models/user.go:100.45,103.2 1 0 +github.com/muety/wakapi/models/user.go:105.33,110.2 1 0 +github.com/muety/wakapi/models/user.go:112.41,114.2 1 0 +github.com/muety/wakapi/models/user.go:116.45,118.2 1 0 +github.com/muety/wakapi/models/user.go:120.45,122.2 1 0 +github.com/muety/wakapi/models/user.go:124.39,126.2 1 0 +github.com/muety/wakapi/models/user.go:128.39,131.2 2 0 +github.com/muety/wakapi/models/heartbeat.go:32.34,34.2 1 1 +github.com/muety/wakapi/models/heartbeat.go:36.65,38.46 2 1 +github.com/muety/wakapi/models/heartbeat.go:38.46,39.108 1 1 +github.com/muety/wakapi/models/heartbeat.go:39.108,42.4 2 1 +github.com/muety/wakapi/models/heartbeat.go:46.50,47.11 1 1 +github.com/muety/wakapi/models/heartbeat.go:60.2,60.15 1 1 +github.com/muety/wakapi/models/heartbeat.go:64.2,64.12 1 1 +github.com/muety/wakapi/models/heartbeat.go:48.22,49.18 1 1 +github.com/muety/wakapi/models/heartbeat.go:50.21,51.17 1 1 +github.com/muety/wakapi/models/heartbeat.go:52.23,53.19 1 1 +github.com/muety/wakapi/models/heartbeat.go:54.17,55.26 1 1 +github.com/muety/wakapi/models/heartbeat.go:56.22,57.18 1 1 +github.com/muety/wakapi/models/heartbeat.go:60.15,62.3 1 1 +github.com/muety/wakapi/models/heartbeat.go:67.37,83.2 1 0 +github.com/muety/wakapi/models/heartbeat.go:91.41,93.16 2 0 +github.com/muety/wakapi/models/heartbeat.go:96.2,97.10 2 0 +github.com/muety/wakapi/models/heartbeat.go:93.16,95.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/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:35.52,37.2 1 0 github.com/muety/wakapi/models/shared.go:39.52,42.16 3 0 github.com/muety/wakapi/models/shared.go:45.2,47.12 3 0 @@ -179,102 +139,46 @@ github.com/muety/wakapi/models/shared.go:82.45,84.2 1 0 github.com/muety/wakapi/models/shared.go:86.37,88.2 1 0 github.com/muety/wakapi/models/shared.go:90.35,92.2 1 0 github.com/muety/wakapi/models/shared.go:94.34,96.2 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 -github.com/muety/wakapi/config/utils.go:11.3,11.12 1 0 -github.com/muety/wakapi/config/utils.go:8.18,10.4 1 0 -github.com/muety/wakapi/config/config.go:147.70,149.2 1 0 -github.com/muety/wakapi/config/config.go:151.65,153.2 1 0 -github.com/muety/wakapi/config/config.go:155.82,165.2 1 0 -github.com/muety/wakapi/config/config.go:167.31,169.2 1 0 -github.com/muety/wakapi/config/config.go:171.32,173.2 1 0 -github.com/muety/wakapi/config/config.go:175.74,176.19 1 0 -github.com/muety/wakapi/config/config.go:177.10,178.34 1 0 -github.com/muety/wakapi/config/config.go:178.34,179.90 1 0 -github.com/muety/wakapi/config/config.go:182.4,182.100 1 0 -github.com/muety/wakapi/config/config.go:185.4,185.91 1 0 -github.com/muety/wakapi/config/config.go:188.4,188.95 1 0 -github.com/muety/wakapi/config/config.go:191.4,191.93 1 0 -github.com/muety/wakapi/config/config.go:194.4,194.97 1 0 -github.com/muety/wakapi/config/config.go:197.4,197.101 1 0 -github.com/muety/wakapi/config/config.go:200.4,200.98 1 0 -github.com/muety/wakapi/config/config.go:203.4,203.14 1 0 -github.com/muety/wakapi/config/config.go:179.90,181.5 1 0 -github.com/muety/wakapi/config/config.go:182.100,184.5 1 0 -github.com/muety/wakapi/config/config.go:185.91,187.5 1 0 -github.com/muety/wakapi/config/config.go:188.95,190.5 1 0 -github.com/muety/wakapi/config/config.go:191.93,193.5 1 0 -github.com/muety/wakapi/config/config.go:194.97,196.5 1 0 -github.com/muety/wakapi/config/config.go:197.101,199.5 1 0 -github.com/muety/wakapi/config/config.go:200.98,202.5 1 0 -github.com/muety/wakapi/config/config.go:208.60,210.2 1 0 -github.com/muety/wakapi/config/config.go:212.59,214.2 1 0 -github.com/muety/wakapi/config/config.go:216.57,218.2 1 0 -github.com/muety/wakapi/config/config.go:220.53,222.2 1 0 -github.com/muety/wakapi/config/config.go:224.55,227.2 2 0 -github.com/muety/wakapi/config/config.go:229.50,231.2 1 0 -github.com/muety/wakapi/config/config.go:233.46,235.2 1 0 -github.com/muety/wakapi/config/config.go:237.43,239.2 1 0 -github.com/muety/wakapi/config/config.go:241.29,243.2 1 1 -github.com/muety/wakapi/config/config.go:245.48,256.16 2 0 -github.com/muety/wakapi/config/config.go:260.2,261.53 2 0 -github.com/muety/wakapi/config/config.go:265.2,265.15 1 0 -github.com/muety/wakapi/config/config.go:256.16,258.3 1 0 -github.com/muety/wakapi/config/config.go:261.53,263.3 1 0 -github.com/muety/wakapi/config/config.go:268.38,269.43 1 0 -github.com/muety/wakapi/config/config.go:272.2,272.15 1 0 -github.com/muety/wakapi/config/config.go:269.43,271.3 1 0 -github.com/muety/wakapi/config/config.go:275.45,276.27 1 0 -github.com/muety/wakapi/config/config.go:279.2,279.15 1 0 -github.com/muety/wakapi/config/config.go:276.27,278.3 1 0 -github.com/muety/wakapi/config/config.go:282.77,283.29 1 0 -github.com/muety/wakapi/config/config.go:288.2,288.19 1 0 -github.com/muety/wakapi/config/config.go:283.29,284.18 1 0 -github.com/muety/wakapi/config/config.go:284.18,286.4 1 0 -github.com/muety/wakapi/config/config.go:291.42,292.28 1 0 -github.com/muety/wakapi/config/config.go:308.2,308.20 1 0 -github.com/muety/wakapi/config/config.go:293.52,294.21 1 0 -github.com/muety/wakapi/config/config.go:295.53,296.22 1 0 -github.com/muety/wakapi/config/config.go:297.55,298.24 1 0 -github.com/muety/wakapi/config/config.go:299.54,300.23 1 0 -github.com/muety/wakapi/config/config.go:301.52,302.21 1 0 -github.com/muety/wakapi/config/config.go:303.54,304.23 1 0 -github.com/muety/wakapi/config/config.go:305.52,306.21 1 0 -github.com/muety/wakapi/config/config.go:311.26,313.2 1 0 -github.com/muety/wakapi/config/config.go:315.20,317.2 1 0 -github.com/muety/wakapi/config/config.go:319.35,324.96 3 0 -github.com/muety/wakapi/config/config.go:328.2,337.52 6 0 -github.com/muety/wakapi/config/config.go:341.2,341.47 1 0 -github.com/muety/wakapi/config/config.go:347.2,347.29 1 0 -github.com/muety/wakapi/config/config.go:353.2,353.70 1 0 -github.com/muety/wakapi/config/config.go:356.2,356.28 1 0 -github.com/muety/wakapi/config/config.go:359.2,359.94 1 0 -github.com/muety/wakapi/config/config.go:362.2,362.81 1 0 -github.com/muety/wakapi/config/config.go:365.2,365.75 1 0 -github.com/muety/wakapi/config/config.go:369.2,370.14 2 0 -github.com/muety/wakapi/config/config.go:324.96,326.3 1 0 -github.com/muety/wakapi/config/config.go:337.52,339.3 1 0 -github.com/muety/wakapi/config/config.go:341.47,342.14 1 0 -github.com/muety/wakapi/config/config.go:342.14,344.4 1 0 -github.com/muety/wakapi/config/config.go:347.29,350.3 2 0 -github.com/muety/wakapi/config/config.go:353.70,355.3 1 0 -github.com/muety/wakapi/config/config.go:356.28,358.3 1 0 -github.com/muety/wakapi/config/config.go:359.94,361.3 1 0 -github.com/muety/wakapi/config/config.go:362.81,364.3 1 0 -github.com/muety/wakapi/config/config.go:365.75,367.3 1 0 -github.com/muety/wakapi/config/db.go:39.50,40.19 1 0 -github.com/muety/wakapi/config/db.go:53.2,53.12 1 0 -github.com/muety/wakapi/config/db.go:41.23,45.5 1 0 -github.com/muety/wakapi/config/db.go:46.26,49.5 1 0 -github.com/muety/wakapi/config/db.go:50.24,51.48 1 0 -github.com/muety/wakapi/config/db.go:56.53,66.2 1 1 -github.com/muety/wakapi/config/db.go:68.56,70.16 2 1 -github.com/muety/wakapi/config/db.go:74.2,81.3 1 1 -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:18.13,20.2 1 1 -github.com/muety/wakapi/config/eventbus.go:22.26,24.2 1 0 +github.com/muety/wakapi/models/filters.go:17.56,18.16 1 0 +github.com/muety/wakapi/models/filters.go:32.2,32.19 1 0 +github.com/muety/wakapi/models/filters.go:19.22,20.32 1 0 +github.com/muety/wakapi/models/filters.go:21.17,22.27 1 0 +github.com/muety/wakapi/models/filters.go:23.23,24.33 1 0 +github.com/muety/wakapi/models/filters.go:25.21,26.31 1 0 +github.com/muety/wakapi/models/filters.go:27.22,28.32 1 0 +github.com/muety/wakapi/models/filters.go:29.20,30.30 1 0 +github.com/muety/wakapi/models/filters.go:35.47,36.21 1 1 +github.com/muety/wakapi/models/filters.go:49.2,49.21 1 1 +github.com/muety/wakapi/models/filters.go:36.21,38.3 1 1 +github.com/muety/wakapi/models/filters.go:38.8,38.23 1 1 +github.com/muety/wakapi/models/filters.go:38.23,40.3 1 0 +github.com/muety/wakapi/models/filters.go:40.8,40.29 1 1 +github.com/muety/wakapi/models/filters.go:40.29,42.3 1 1 +github.com/muety/wakapi/models/filters.go:42.8,42.27 1 1 +github.com/muety/wakapi/models/filters.go:42.27,44.3 1 0 +github.com/muety/wakapi/models/filters.go:44.8,44.28 1 1 +github.com/muety/wakapi/models/filters.go:44.28,46.3 1 0 +github.com/muety/wakapi/models/filters.go:46.8,46.26 1 1 +github.com/muety/wakapi/models/filters.go:46.26,48.3 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/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 @@ -311,6 +215,241 @@ github.com/muety/wakapi/config/sentry.go:142.17,144.3 1 0 github.com/muety/wakapi/config/sentry.go:147.49,151.51 2 0 github.com/muety/wakapi/config/sentry.go:154.2,154.12 1 0 github.com/muety/wakapi/config/sentry.go:151.51,153.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 +github.com/muety/wakapi/config/utils.go:11.3,11.12 1 0 +github.com/muety/wakapi/config/utils.go:8.18,10.4 1 0 +github.com/muety/wakapi/config/config.go:149.70,151.2 1 0 +github.com/muety/wakapi/config/config.go:153.65,155.2 1 0 +github.com/muety/wakapi/config/config.go:157.82,167.2 1 0 +github.com/muety/wakapi/config/config.go:169.31,171.2 1 0 +github.com/muety/wakapi/config/config.go:173.32,175.2 1 0 +github.com/muety/wakapi/config/config.go:177.74,178.19 1 0 +github.com/muety/wakapi/config/config.go:179.10,180.34 1 0 +github.com/muety/wakapi/config/config.go:180.34,181.90 1 0 +github.com/muety/wakapi/config/config.go:184.4,184.100 1 0 +github.com/muety/wakapi/config/config.go:187.4,187.91 1 0 +github.com/muety/wakapi/config/config.go:190.4,190.95 1 0 +github.com/muety/wakapi/config/config.go:193.4,193.93 1 0 +github.com/muety/wakapi/config/config.go:196.4,196.97 1 0 +github.com/muety/wakapi/config/config.go:199.4,199.101 1 0 +github.com/muety/wakapi/config/config.go:202.4,202.98 1 0 +github.com/muety/wakapi/config/config.go:205.4,205.14 1 0 +github.com/muety/wakapi/config/config.go:181.90,183.5 1 0 +github.com/muety/wakapi/config/config.go:184.100,186.5 1 0 +github.com/muety/wakapi/config/config.go:187.91,189.5 1 0 +github.com/muety/wakapi/config/config.go:190.95,192.5 1 0 +github.com/muety/wakapi/config/config.go:193.93,195.5 1 0 +github.com/muety/wakapi/config/config.go:196.97,198.5 1 0 +github.com/muety/wakapi/config/config.go:199.101,201.5 1 0 +github.com/muety/wakapi/config/config.go:202.98,204.5 1 0 +github.com/muety/wakapi/config/config.go:210.60,212.2 1 0 +github.com/muety/wakapi/config/config.go:214.59,216.2 1 0 +github.com/muety/wakapi/config/config.go:218.57,220.2 1 0 +github.com/muety/wakapi/config/config.go:222.53,224.2 1 0 +github.com/muety/wakapi/config/config.go:226.55,229.2 2 0 +github.com/muety/wakapi/config/config.go:231.50,233.2 1 0 +github.com/muety/wakapi/config/config.go:235.46,237.2 1 0 +github.com/muety/wakapi/config/config.go:239.43,241.2 1 0 +github.com/muety/wakapi/config/config.go:243.29,245.2 1 1 +github.com/muety/wakapi/config/config.go:247.48,258.16 2 0 +github.com/muety/wakapi/config/config.go:262.2,263.53 2 0 +github.com/muety/wakapi/config/config.go:267.2,267.15 1 0 +github.com/muety/wakapi/config/config.go:258.16,260.3 1 0 +github.com/muety/wakapi/config/config.go:263.53,265.3 1 0 +github.com/muety/wakapi/config/config.go:270.38,271.43 1 0 +github.com/muety/wakapi/config/config.go:274.2,274.15 1 0 +github.com/muety/wakapi/config/config.go:271.43,273.3 1 0 +github.com/muety/wakapi/config/config.go:277.45,278.27 1 0 +github.com/muety/wakapi/config/config.go:281.2,281.15 1 0 +github.com/muety/wakapi/config/config.go:278.27,280.3 1 0 +github.com/muety/wakapi/config/config.go:284.77,285.29 1 0 +github.com/muety/wakapi/config/config.go:290.2,290.19 1 0 +github.com/muety/wakapi/config/config.go:285.29,286.18 1 0 +github.com/muety/wakapi/config/config.go:286.18,288.4 1 0 +github.com/muety/wakapi/config/config.go:293.42,294.28 1 0 +github.com/muety/wakapi/config/config.go:310.2,310.20 1 0 +github.com/muety/wakapi/config/config.go:295.52,296.21 1 0 +github.com/muety/wakapi/config/config.go:297.53,298.22 1 0 +github.com/muety/wakapi/config/config.go:299.55,300.24 1 0 +github.com/muety/wakapi/config/config.go:301.54,302.23 1 0 +github.com/muety/wakapi/config/config.go:303.52,304.21 1 0 +github.com/muety/wakapi/config/config.go:305.54,306.23 1 0 +github.com/muety/wakapi/config/config.go:307.52,308.21 1 0 +github.com/muety/wakapi/config/config.go:313.26,315.2 1 0 +github.com/muety/wakapi/config/config.go:317.20,319.2 1 0 +github.com/muety/wakapi/config/config.go:321.35,326.96 3 0 +github.com/muety/wakapi/config/config.go:330.2,339.52 6 0 +github.com/muety/wakapi/config/config.go:343.2,343.47 1 0 +github.com/muety/wakapi/config/config.go:349.2,349.29 1 0 +github.com/muety/wakapi/config/config.go:355.2,355.106 1 0 +github.com/muety/wakapi/config/config.go:358.2,358.28 1 0 +github.com/muety/wakapi/config/config.go:361.2,361.94 1 0 +github.com/muety/wakapi/config/config.go:364.2,364.81 1 0 +github.com/muety/wakapi/config/config.go:367.2,367.75 1 0 +github.com/muety/wakapi/config/config.go:371.2,372.14 2 0 +github.com/muety/wakapi/config/config.go:326.96,328.3 1 0 +github.com/muety/wakapi/config/config.go:339.52,341.3 1 0 +github.com/muety/wakapi/config/config.go:343.47,344.14 1 0 +github.com/muety/wakapi/config/config.go:344.14,346.4 1 0 +github.com/muety/wakapi/config/config.go:349.29,352.3 2 0 +github.com/muety/wakapi/config/config.go:355.106,357.3 1 0 +github.com/muety/wakapi/config/config.go:358.28,360.3 1 0 +github.com/muety/wakapi/config/config.go:361.94,363.3 1 0 +github.com/muety/wakapi/config/config.go:364.81,366.3 1 0 +github.com/muety/wakapi/config/config.go:367.75,369.3 1 0 +github.com/muety/wakapi/config/db.go:39.50,40.19 1 0 +github.com/muety/wakapi/config/db.go:53.2,53.12 1 0 +github.com/muety/wakapi/config/db.go:41.23,45.5 1 0 +github.com/muety/wakapi/config/db.go:46.26,49.5 1 0 +github.com/muety/wakapi/config/db.go:50.24,51.48 1 0 +github.com/muety/wakapi/config/db.go:56.53,66.2 1 1 +github.com/muety/wakapi/config/db.go:68.56,70.16 2 1 +github.com/muety/wakapi/config/db.go:74.2,81.3 1 1 +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:18.13,20.2 1 1 +github.com/muety/wakapi/config/eventbus.go:22.26,24.2 1 0 +github.com/muety/wakapi/utils/collection.go:3.59,5.22 2 0 +github.com/muety/wakapi/utils/collection.go:8.2,8.15 1 0 +github.com/muety/wakapi/utils/collection.go:5.22,7.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/filesystem.go:14.68,16.16 2 0 +github.com/muety/wakapi/utils/filesystem.go:20.2,21.15 2 0 +github.com/muety/wakapi/utils/filesystem.go:33.2,33.15 1 0 +github.com/muety/wakapi/utils/filesystem.go:16.16,18.3 1 0 +github.com/muety/wakapi/utils/filesystem.go:21.15,23.47 2 0 +github.com/muety/wakapi/utils/filesystem.go:23.47,25.23 2 0 +github.com/muety/wakapi/utils/filesystem.go:29.4,29.19 1 0 +github.com/muety/wakapi/utils/filesystem.go:25.23,27.5 1 0 +github.com/muety/wakapi/utils/http.go:9.90,12.58 3 0 +github.com/muety/wakapi/utils/http.go:12.58,14.3 1 0 +github.com/muety/wakapi/utils/set.go:3.51,5.26 2 0 +github.com/muety/wakapi/utils/set.go:8.2,8.12 1 0 +github.com/muety/wakapi/utils/set.go:5.26,7.3 1 0 +github.com/muety/wakapi/utils/set.go:11.49,13.21 2 0 +github.com/muety/wakapi/utils/set.go:16.2,16.14 1 0 +github.com/muety/wakapi/utils/set.go:13.21,15.3 1 0 +github.com/muety/wakapi/utils/template.go:8.41,10.16 2 0 +github.com/muety/wakapi/utils/template.go:13.2,13.23 1 0 +github.com/muety/wakapi/utils/template.go:10.16,12.3 1 0 +github.com/muety/wakapi/utils/template.go:16.37,17.30 1 0 +github.com/muety/wakapi/utils/template.go:20.2,20.10 1 0 +github.com/muety/wakapi/utils/template.go:17.30,19.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/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/date.go:8.43,10.2 1 1 +github.com/muety/wakapi/utils/date.go:12.48,14.2 1 0 +github.com/muety/wakapi/utils/date.go:16.41,18.21 2 1 +github.com/muety/wakapi/utils/date.go:21.2,21.23 1 1 +github.com/muety/wakapi/utils/date.go:18.21,20.3 1 0 +github.com/muety/wakapi/utils/date.go:24.46,26.2 1 0 +github.com/muety/wakapi/utils/date.go:28.51,30.2 1 0 +github.com/muety/wakapi/utils/date.go:32.44,35.2 2 1 +github.com/muety/wakapi/utils/date.go:37.52,39.2 1 0 +github.com/muety/wakapi/utils/date.go:41.45,43.2 1 0 +github.com/muety/wakapi/utils/date.go:45.51,47.2 1 0 +github.com/muety/wakapi/utils/date.go:49.44,51.2 1 0 +github.com/muety/wakapi/utils/date.go:54.42,56.2 1 1 +github.com/muety/wakapi/utils/date.go:59.46,61.2 1 0 +github.com/muety/wakapi/utils/date.go:64.41,66.21 2 1 +github.com/muety/wakapi/utils/date.go:69.2,69.36 1 1 +github.com/muety/wakapi/utils/date.go:66.21,68.3 1 1 +github.com/muety/wakapi/utils/date.go:73.63,75.2 1 0 +github.com/muety/wakapi/utils/date.go:78.62,84.2 5 0 +github.com/muety/wakapi/utils/date.go:87.67,90.33 2 1 +github.com/muety/wakapi/utils/date.go:99.2,99.18 1 1 +github.com/muety/wakapi/utils/date.go:90.33,92.19 2 1 +github.com/muety/wakapi/utils/date.go:95.3,96.10 2 1 +github.com/muety/wakapi/utils/date.go:92.19,94.4 1 1 +github.com/muety/wakapi/utils/date.go:102.50,108.2 5 0 +github.com/muety/wakapi/utils/date.go:111.79,114.36 3 1 +github.com/muety/wakapi/utils/date.go:118.2,118.21 1 1 +github.com/muety/wakapi/utils/date.go:122.2,122.21 1 1 +github.com/muety/wakapi/utils/date.go:126.2,126.13 1 1 +github.com/muety/wakapi/utils/date.go:114.36,117.3 2 0 +github.com/muety/wakapi/utils/date.go:118.21,121.3 2 1 +github.com/muety/wakapi/utils/date.go:122.21,125.3 2 1 +github.com/muety/wakapi/utils/strings.go:8.34,10.2 1 0 +github.com/muety/wakapi/utils/strings.go:12.77,13.29 1 0 +github.com/muety/wakapi/utils/strings.go:18.2,18.19 1 0 +github.com/muety/wakapi/utils/strings.go:13.29,14.18 1 0 +github.com/muety/wakapi/utils/strings.go:14.18,16.4 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 +github.com/muety/wakapi/utils/summary.go:12.27,14.4 1 0 +github.com/muety/wakapi/utils/summary.go:19.88,22.2 2 0 +github.com/muety/wakapi/utils/summary.go:24.95,26.16 2 0 +github.com/muety/wakapi/utils/summary.go:29.2,29.38 1 0 +github.com/muety/wakapi/utils/summary.go:26.16,28.3 1 0 +github.com/muety/wakapi/utils/summary.go:32.105,36.18 3 0 +github.com/muety/wakapi/utils/summary.go:71.2,71.22 1 0 +github.com/muety/wakapi/utils/summary.go:37.28,38.26 1 0 +github.com/muety/wakapi/utils/summary.go:39.32,41.24 2 0 +github.com/muety/wakapi/utils/summary.go:42.31,43.29 1 0 +github.com/muety/wakapi/utils/summary.go:44.31,46.27 2 0 +github.com/muety/wakapi/utils/summary.go:47.32,48.30 1 0 +github.com/muety/wakapi/utils/summary.go:49.32,51.28 2 0 +github.com/muety/wakapi/utils/summary.go:52.31,53.29 1 0 +github.com/muety/wakapi/utils/summary.go:54.32,55.31 1 0 +github.com/muety/wakapi/utils/summary.go:56.41,58.42 2 0 +github.com/muety/wakapi/utils/summary.go:59.33,60.32 1 0 +github.com/muety/wakapi/utils/summary.go:61.33,62.32 1 0 +github.com/muety/wakapi/utils/summary.go:63.35,64.32 1 0 +github.com/muety/wakapi/utils/summary.go:65.26,66.21 1 0 +github.com/muety/wakapi/utils/summary.go:67.10,68.39 1 0 +github.com/muety/wakapi/utils/summary.go:74.73,81.56 5 0 +github.com/muety/wakapi/utils/summary.go:97.2,104.8 2 0 +github.com/muety/wakapi/utils/summary.go:81.56,83.3 1 0 +github.com/muety/wakapi/utils/summary.go:83.8,83.54 1 0 +github.com/muety/wakapi/utils/summary.go:83.54,85.3 1 0 +github.com/muety/wakapi/utils/summary.go:85.8,87.17 2 0 +github.com/muety/wakapi/utils/summary.go:91.3,92.17 2 0 +github.com/muety/wakapi/utils/summary.go:87.17,89.4 1 0 +github.com/muety/wakapi/utils/summary.go:92.17,94.4 1 0 +github.com/muety/wakapi/utils/summary.go:107.48,111.51 2 0 +github.com/muety/wakapi/utils/summary.go:114.2,114.12 1 0 +github.com/muety/wakapi/utils/summary.go:111.51,113.3 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:19.91,25.2 1 1 github.com/muety/wakapi/middlewares/authenticate.go:27.90,30.2 2 0 github.com/muety/wakapi/middlewares/authenticate.go:32.90,35.2 2 0 @@ -389,162 +528,6 @@ 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/services/aggregation.go:29.142,37.2 1 0 -github.com/muety/wakapi/services/aggregation.go:46.43,48.37 1 0 -github.com/muety/wakapi/services/aggregation.go:52.2,54.19 3 0 -github.com/muety/wakapi/services/aggregation.go:48.37,50.3 1 0 -github.com/muety/wakapi/services/aggregation.go:57.67,58.47 1 0 -github.com/muety/wakapi/services/aggregation.go:61.2,66.40 4 0 -github.com/muety/wakapi/services/aggregation.go:70.2,70.50 1 0 -github.com/muety/wakapi/services/aggregation.go:75.2,75.60 1 0 -github.com/muety/wakapi/services/aggregation.go:81.2,81.35 1 0 -github.com/muety/wakapi/services/aggregation.go:58.47,60.3 1 0 -github.com/muety/wakapi/services/aggregation.go:66.40,68.3 1 0 -github.com/muety/wakapi/services/aggregation.go:70.50,72.3 1 0 -github.com/muety/wakapi/services/aggregation.go:75.60,79.3 3 0 -github.com/muety/wakapi/services/aggregation.go:84.109,85.24 1 0 -github.com/muety/wakapi/services/aggregation.go:85.24,86.111 1 0 -github.com/muety/wakapi/services/aggregation.go:86.111,88.4 1 0 -github.com/muety/wakapi/services/aggregation.go:88.9,91.4 2 0 -github.com/muety/wakapi/services/aggregation.go:95.80,96.33 1 0 -github.com/muety/wakapi/services/aggregation.go:96.33,97.60 1 0 -github.com/muety/wakapi/services/aggregation.go:97.60,99.4 1 0 -github.com/muety/wakapi/services/aggregation.go:103.100,107.59 3 0 -github.com/muety/wakapi/services/aggregation.go:122.2,123.16 2 0 -github.com/muety/wakapi/services/aggregation.go:129.2,130.16 2 0 -github.com/muety/wakapi/services/aggregation.go:136.2,137.44 2 0 -github.com/muety/wakapi/services/aggregation.go:142.2,142.41 1 0 -github.com/muety/wakapi/services/aggregation.go:156.2,156.12 1 0 -github.com/muety/wakapi/services/aggregation.go:107.59,110.3 2 0 -github.com/muety/wakapi/services/aggregation.go:110.8,110.47 1 0 -github.com/muety/wakapi/services/aggregation.go:110.47,112.30 2 0 -github.com/muety/wakapi/services/aggregation.go:112.30,113.43 1 0 -github.com/muety/wakapi/services/aggregation.go:113.43,115.5 1 0 -github.com/muety/wakapi/services/aggregation.go:117.8,119.3 1 0 -github.com/muety/wakapi/services/aggregation.go:123.16,126.3 2 0 -github.com/muety/wakapi/services/aggregation.go:130.16,133.3 2 0 -github.com/muety/wakapi/services/aggregation.go:137.44,139.3 1 0 -github.com/muety/wakapi/services/aggregation.go:142.41,143.21 1 0 -github.com/muety/wakapi/services/aggregation.go:143.21,147.4 1 0 -github.com/muety/wakapi/services/aggregation.go:147.9,147.62 1 0 -github.com/muety/wakapi/services/aggregation.go:147.62,151.4 1 0 -github.com/muety/wakapi/services/aggregation.go:159.73,162.27 3 0 -github.com/muety/wakapi/services/aggregation.go:167.2,167.27 1 0 -github.com/muety/wakapi/services/aggregation.go:170.2,170.12 1 0 -github.com/muety/wakapi/services/aggregation.go:162.27,163.39 1 0 -github.com/muety/wakapi/services/aggregation.go:163.39,165.4 1 0 -github.com/muety/wakapi/services/aggregation.go:167.27,169.3 1 0 -github.com/muety/wakapi/services/aggregation.go:173.69,176.27 3 0 -github.com/muety/wakapi/services/aggregation.go:176.27,178.3 1 0 -github.com/muety/wakapi/services/aggregation.go:181.83,196.41 5 0 -github.com/muety/wakapi/services/aggregation.go:196.41,206.3 3 0 -github.com/muety/wakapi/services/aggregation.go:209.34,212.2 2 0 -github.com/muety/wakapi/services/misc.go:21.126,28.2 1 0 -github.com/muety/wakapi/services/misc.go:40.50,42.48 1 0 -github.com/muety/wakapi/services/misc.go:46.2,48.19 3 0 -github.com/muety/wakapi/services/misc.go:42.48,44.3 1 0 -github.com/muety/wakapi/services/misc.go:51.51,53.16 2 0 -github.com/muety/wakapi/services/misc.go:57.2,60.26 3 0 -github.com/muety/wakapi/services/misc.go:66.2,68.40 2 0 -github.com/muety/wakapi/services/misc.go:73.2,75.33 3 0 -github.com/muety/wakapi/services/misc.go:79.2,84.17 2 0 -github.com/muety/wakapi/services/misc.go:88.2,91.17 1 0 -github.com/muety/wakapi/services/misc.go:95.2,95.12 1 0 -github.com/muety/wakapi/services/misc.go:53.16,55.3 1 0 -github.com/muety/wakapi/services/misc.go:60.26,65.3 1 0 -github.com/muety/wakapi/services/misc.go:68.40,70.3 1 0 -github.com/muety/wakapi/services/misc.go:75.33,78.3 2 0 -github.com/muety/wakapi/services/misc.go:84.17,86.3 1 0 -github.com/muety/wakapi/services/misc.go:91.17,93.3 1 0 -github.com/muety/wakapi/services/misc.go:98.116,99.24 1 0 -github.com/muety/wakapi/services/misc.go:99.24,100.151 1 0 -github.com/muety/wakapi/services/misc.go:100.151,102.4 1 0 -github.com/muety/wakapi/services/misc.go:102.9,107.4 1 0 -github.com/muety/wakapi/services/project_label.go:18.111,24.2 1 0 -github.com/muety/wakapi/services/project_label.go:26.80,28.2 1 0 -github.com/muety/wakapi/services/project_label.go:30.90,31.51 1 0 -github.com/muety/wakapi/services/project_label.go:35.2,36.16 2 0 -github.com/muety/wakapi/services/project_label.go:39.2,40.20 2 0 -github.com/muety/wakapi/services/project_label.go:31.51,33.3 1 0 -github.com/muety/wakapi/services/project_label.go:36.16,38.3 1 0 -github.com/muety/wakapi/services/project_label.go:43.108,46.16 3 0 -github.com/muety/wakapi/services/project_label.go:50.2,50.31 1 0 -github.com/muety/wakapi/services/project_label.go:58.2,58.20 1 0 -github.com/muety/wakapi/services/project_label.go:46.16,48.3 1 0 -github.com/muety/wakapi/services/project_label.go:50.31,51.41 1 0 -github.com/muety/wakapi/services/project_label.go:51.41,53.4 1 0 -github.com/muety/wakapi/services/project_label.go:53.9,55.4 1 0 -github.com/muety/wakapi/services/project_label.go:61.98,63.16 2 0 -github.com/muety/wakapi/services/project_label.go:67.2,68.20 2 0 -github.com/muety/wakapi/services/project_label.go:63.16,65.3 1 0 -github.com/muety/wakapi/services/project_label.go:71.74,72.24 1 0 -github.com/muety/wakapi/services/project_label.go:75.2,77.12 3 0 -github.com/muety/wakapi/services/project_label.go:72.24,74.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:80.2,80.61 1 0 -github.com/muety/wakapi/services/report.go:94.2,94.24 1 0 -github.com/muety/wakapi/services/report.go:74.22,77.3 2 0 -github.com/muety/wakapi/services/report.go:80.61,89.47 3 0 -github.com/muety/wakapi/services/report.go:89.47,91.4 1 0 -github.com/muety/wakapi/services/report.go:97.80,98.22 1 0 -github.com/muety/wakapi/services/report.go:102.2,102.29 1 0 -github.com/muety/wakapi/services/report.go:107.2,111.16 4 0 -github.com/muety/wakapi/services/report.go:116.2,123.65 2 0 -github.com/muety/wakapi/services/report.go:128.2,129.12 2 0 -github.com/muety/wakapi/services/report.go:98.22,100.3 1 0 -github.com/muety/wakapi/services/report.go:102.29,105.3 2 0 -github.com/muety/wakapi/services/report.go:111.16,114.3 2 0 -github.com/muety/wakapi/services/report.go:123.65,126.3 2 0 -github.com/muety/wakapi/services/report.go:132.63,133.41 1 0 -github.com/muety/wakapi/services/report.go:140.2,140.12 1 0 -github.com/muety/wakapi/services/report.go:133.41,134.30 1 0 -github.com/muety/wakapi/services/report.go:134.30,135.16 1 0 -github.com/muety/wakapi/services/report.go:135.16,137.5 1 0 -github.com/muety/wakapi/services/user.go:21.73,28.2 1 0 -github.com/muety/wakapi/services/user.go:30.74,31.40 1 0 -github.com/muety/wakapi/services/user.go:35.2,36.16 2 0 -github.com/muety/wakapi/services/user.go:40.2,41.15 2 0 -github.com/muety/wakapi/services/user.go:31.40,33.3 1 0 -github.com/muety/wakapi/services/user.go:36.16,38.3 1 0 -github.com/muety/wakapi/services/user.go:44.72,45.37 1 0 -github.com/muety/wakapi/services/user.go:49.2,50.16 2 0 -github.com/muety/wakapi/services/user.go:54.2,55.15 2 0 -github.com/muety/wakapi/services/user.go:45.37,47.3 1 0 -github.com/muety/wakapi/services/user.go:50.16,52.3 1 0 -github.com/muety/wakapi/services/user.go:58.76,60.2 1 0 -github.com/muety/wakapi/services/user.go:62.86,64.2 1 0 -github.com/muety/wakapi/services/user.go:66.58,68.2 1 0 -github.com/muety/wakapi/services/user.go:70.86,72.2 1 0 -github.com/muety/wakapi/services/user.go:74.61,77.2 2 0 -github.com/muety/wakapi/services/user.go:79.48,81.2 1 0 -github.com/muety/wakapi/services/user.go:83.102,93.93 2 0 -github.com/muety/wakapi/services/user.go:99.2,99.38 1 0 -github.com/muety/wakapi/services/user.go:93.93,95.3 1 0 -github.com/muety/wakapi/services/user.go:95.8,97.3 1 0 -github.com/muety/wakapi/services/user.go:102.73,106.2 3 0 -github.com/muety/wakapi/services/user.go:108.78,112.2 3 0 -github.com/muety/wakapi/services/user.go:114.99,117.2 2 0 -github.com/muety/wakapi/services/user.go:119.106,122.96 3 0 -github.com/muety/wakapi/services/user.go:127.2,127.68 1 0 -github.com/muety/wakapi/services/user.go:122.96,124.3 1 0 -github.com/muety/wakapi/services/user.go:124.8,126.3 1 0 -github.com/muety/wakapi/services/user.go:130.85,132.2 1 0 -github.com/muety/wakapi/services/user.go:134.57,141.2 4 0 -github.com/muety/wakapi/services/user.go:143.38,145.2 1 0 -github.com/muety/wakapi/services/user.go:147.57,152.2 1 0 github.com/muety/wakapi/services/alias.go:17.77,22.2 1 1 github.com/muety/wakapi/services/alias.go:26.60,27.43 1 1 github.com/muety/wakapi/services/alias.go:30.2,30.14 1 1 @@ -580,41 +563,6 @@ github.com/muety/wakapi/services/alias.go:95.21,97.4 1 0 github.com/muety/wakapi/services/alias.go:104.31,106.3 1 0 github.com/muety/wakapi/services/alias.go:111.52,112.51 1 0 github.com/muety/wakapi/services/alias.go:112.51,114.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:22.141,29.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:31.72,34.2 2 0 -github.com/muety/wakapi/services/heartbeat.go:36.80,41.32 3 0 -github.com/muety/wakapi/services/heartbeat.go:49.2,49.55 1 0 -github.com/muety/wakapi/services/heartbeat.go:41.32,42.36 1 0 -github.com/muety/wakapi/services/heartbeat.go:46.3,46.43 1 0 -github.com/muety/wakapi/services/heartbeat.go:42.36,45.4 2 0 -github.com/muety/wakapi/services/heartbeat.go:52.53,54.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:56.76,58.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:60.96,62.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:64.111,66.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:69.2,69.43 1 0 -github.com/muety/wakapi/services/heartbeat.go:66.16,68.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:72.92,74.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:76.116,78.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:80.78,82.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:84.104,86.54 2 0 -github.com/muety/wakapi/services/heartbeat.go:90.2,91.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:95.2,96.28 2 0 -github.com/muety/wakapi/services/heartbeat.go:102.2,103.22 2 0 -github.com/muety/wakapi/services/heartbeat.go:86.54,88.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:91.16,93.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:96.28,97.33 1 0 -github.com/muety/wakapi/services/heartbeat.go:97.33,99.4 1 0 -github.com/muety/wakapi/services/heartbeat.go:106.62,108.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:110.116,112.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:116.2,116.28 1 0 -github.com/muety/wakapi/services/heartbeat.go:120.2,120.24 1 0 -github.com/muety/wakapi/services/heartbeat.go:112.16,114.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:116.28,118.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:123.96,125.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:127.107,129.55 2 0 -github.com/muety/wakapi/services/heartbeat.go:129.55,130.58 1 0 -github.com/muety/wakapi/services/heartbeat.go:130.58,134.4 1 0 -github.com/muety/wakapi/services/heartbeat.go:138.85,144.2 5 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 @@ -622,25 +570,26 @@ 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:18.111,24.2 1 0 +github.com/muety/wakapi/services/project_label.go:26.80,28.2 1 0 +github.com/muety/wakapi/services/project_label.go:30.90,31.51 1 0 +github.com/muety/wakapi/services/project_label.go:35.2,36.16 2 0 +github.com/muety/wakapi/services/project_label.go:39.2,40.20 2 0 +github.com/muety/wakapi/services/project_label.go:31.51,33.3 1 0 +github.com/muety/wakapi/services/project_label.go:36.16,38.3 1 0 +github.com/muety/wakapi/services/project_label.go:43.108,46.16 3 0 +github.com/muety/wakapi/services/project_label.go:50.2,50.31 1 0 +github.com/muety/wakapi/services/project_label.go:58.2,58.20 1 0 +github.com/muety/wakapi/services/project_label.go:46.16,48.3 1 0 +github.com/muety/wakapi/services/project_label.go:50.31,51.41 1 0 +github.com/muety/wakapi/services/project_label.go:51.41,53.4 1 0 +github.com/muety/wakapi/services/project_label.go:53.9,55.4 1 0 +github.com/muety/wakapi/services/project_label.go:61.98,63.16 2 0 +github.com/muety/wakapi/services/project_label.go:67.2,68.20 2 0 +github.com/muety/wakapi/services/project_label.go:63.16,65.3 1 0 +github.com/muety/wakapi/services/project_label.go:71.74,72.24 1 0 +github.com/muety/wakapi/services/project_label.go:75.2,77.12 3 0 +github.com/muety/wakapi/services/project_label.go:72.24,74.3 1 0 github.com/muety/wakapi/services/summary.go:29.191,38.2 1 1 github.com/muety/wakapi/services/summary.go:42.136,45.66 2 1 github.com/muety/wakapi/services/summary.go:50.2,50.44 1 1 @@ -748,136 +697,194 @@ github.com/muety/wakapi/services/summary.go:394.59,396.2 1 1 github.com/muety/wakapi/services/summary.go:398.63,399.37 1 0 github.com/muety/wakapi/services/summary.go:399.37,400.36 1 0 github.com/muety/wakapi/services/summary.go:400.36,402.4 1 0 -github.com/muety/wakapi/utils/filesystem.go:14.68,16.16 2 0 -github.com/muety/wakapi/utils/filesystem.go:20.2,21.15 2 0 -github.com/muety/wakapi/utils/filesystem.go:33.2,33.15 1 0 -github.com/muety/wakapi/utils/filesystem.go:16.16,18.3 1 0 -github.com/muety/wakapi/utils/filesystem.go:21.15,23.47 2 0 -github.com/muety/wakapi/utils/filesystem.go:23.47,25.23 2 0 -github.com/muety/wakapi/utils/filesystem.go:29.4,29.19 1 0 -github.com/muety/wakapi/utils/filesystem.go:25.23,27.5 1 0 -github.com/muety/wakapi/utils/http.go:9.90,12.58 3 0 -github.com/muety/wakapi/utils/http.go:12.58,14.3 1 0 -github.com/muety/wakapi/utils/set.go:3.51,5.26 2 0 -github.com/muety/wakapi/utils/set.go:8.2,8.12 1 0 -github.com/muety/wakapi/utils/set.go:5.26,7.3 1 0 -github.com/muety/wakapi/utils/set.go:11.49,13.21 2 0 -github.com/muety/wakapi/utils/set.go:16.2,16.14 1 0 -github.com/muety/wakapi/utils/set.go:13.21,15.3 1 0 -github.com/muety/wakapi/utils/strings.go:8.34,10.2 1 0 -github.com/muety/wakapi/utils/strings.go:12.77,13.29 1 0 -github.com/muety/wakapi/utils/strings.go:18.2,18.19 1 0 -github.com/muety/wakapi/utils/strings.go:13.29,14.18 1 0 -github.com/muety/wakapi/utils/strings.go:14.18,16.4 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/date.go:8.43,10.2 1 1 -github.com/muety/wakapi/utils/date.go:12.48,14.2 1 0 -github.com/muety/wakapi/utils/date.go:16.41,18.21 2 1 -github.com/muety/wakapi/utils/date.go:21.2,21.23 1 1 -github.com/muety/wakapi/utils/date.go:18.21,20.3 1 0 -github.com/muety/wakapi/utils/date.go:24.46,26.2 1 0 -github.com/muety/wakapi/utils/date.go:28.51,30.2 1 0 -github.com/muety/wakapi/utils/date.go:32.44,35.2 2 1 -github.com/muety/wakapi/utils/date.go:37.52,39.2 1 0 -github.com/muety/wakapi/utils/date.go:41.45,43.2 1 0 -github.com/muety/wakapi/utils/date.go:45.51,47.2 1 0 -github.com/muety/wakapi/utils/date.go:49.44,51.2 1 0 -github.com/muety/wakapi/utils/date.go:54.42,56.2 1 1 -github.com/muety/wakapi/utils/date.go:59.41,61.21 2 1 -github.com/muety/wakapi/utils/date.go:64.2,64.36 1 1 -github.com/muety/wakapi/utils/date.go:61.21,63.3 1 1 -github.com/muety/wakapi/utils/date.go:68.63,70.2 1 0 -github.com/muety/wakapi/utils/date.go:73.62,79.2 5 0 -github.com/muety/wakapi/utils/date.go:82.67,85.33 2 1 -github.com/muety/wakapi/utils/date.go:94.2,94.18 1 1 -github.com/muety/wakapi/utils/date.go:85.33,87.19 2 1 -github.com/muety/wakapi/utils/date.go:90.3,91.10 2 1 -github.com/muety/wakapi/utils/date.go:87.19,89.4 1 1 -github.com/muety/wakapi/utils/date.go:97.50,103.2 5 0 -github.com/muety/wakapi/utils/date.go:106.79,109.36 3 1 -github.com/muety/wakapi/utils/date.go:113.2,113.21 1 1 -github.com/muety/wakapi/utils/date.go:117.2,117.21 1 1 -github.com/muety/wakapi/utils/date.go:121.2,121.13 1 1 -github.com/muety/wakapi/utils/date.go:109.36,112.3 2 0 -github.com/muety/wakapi/utils/date.go:113.21,116.3 2 1 -github.com/muety/wakapi/utils/date.go:117.21,120.3 2 1 -github.com/muety/wakapi/utils/template.go:8.41,10.16 2 0 -github.com/muety/wakapi/utils/template.go:13.2,13.23 1 0 -github.com/muety/wakapi/utils/template.go:10.16,12.3 1 0 -github.com/muety/wakapi/utils/template.go:16.37,17.30 1 0 -github.com/muety/wakapi/utils/template.go:20.2,20.10 1 0 -github.com/muety/wakapi/utils/template.go:17.30,19.3 1 0 -github.com/muety/wakapi/utils/collection.go:3.59,5.22 2 0 -github.com/muety/wakapi/utils/collection.go:8.2,8.15 1 0 -github.com/muety/wakapi/utils/collection.go:5.22,7.3 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 -github.com/muety/wakapi/utils/summary.go:12.27,14.4 1 0 -github.com/muety/wakapi/utils/summary.go:19.88,22.2 2 0 -github.com/muety/wakapi/utils/summary.go:24.95,26.16 2 0 -github.com/muety/wakapi/utils/summary.go:29.2,29.38 1 0 -github.com/muety/wakapi/utils/summary.go:26.16,28.3 1 0 -github.com/muety/wakapi/utils/summary.go:32.105,36.18 3 0 -github.com/muety/wakapi/utils/summary.go:71.2,71.22 1 0 -github.com/muety/wakapi/utils/summary.go:37.28,38.26 1 0 -github.com/muety/wakapi/utils/summary.go:39.32,41.24 2 0 -github.com/muety/wakapi/utils/summary.go:42.31,43.29 1 0 -github.com/muety/wakapi/utils/summary.go:44.31,46.27 2 0 -github.com/muety/wakapi/utils/summary.go:47.32,48.30 1 0 -github.com/muety/wakapi/utils/summary.go:49.32,51.28 2 0 -github.com/muety/wakapi/utils/summary.go:52.31,53.29 1 0 -github.com/muety/wakapi/utils/summary.go:54.32,55.31 1 0 -github.com/muety/wakapi/utils/summary.go:56.41,58.42 2 0 -github.com/muety/wakapi/utils/summary.go:59.33,60.32 1 0 -github.com/muety/wakapi/utils/summary.go:61.33,62.32 1 0 -github.com/muety/wakapi/utils/summary.go:63.35,64.32 1 0 -github.com/muety/wakapi/utils/summary.go:65.26,66.21 1 0 -github.com/muety/wakapi/utils/summary.go:67.10,68.39 1 0 -github.com/muety/wakapi/utils/summary.go:74.73,81.56 5 0 -github.com/muety/wakapi/utils/summary.go:97.2,104.8 2 0 -github.com/muety/wakapi/utils/summary.go:81.56,83.3 1 0 -github.com/muety/wakapi/utils/summary.go:83.8,83.54 1 0 -github.com/muety/wakapi/utils/summary.go:83.54,85.3 1 0 -github.com/muety/wakapi/utils/summary.go:85.8,87.17 2 0 -github.com/muety/wakapi/utils/summary.go:91.3,92.17 2 0 -github.com/muety/wakapi/utils/summary.go:87.17,89.4 1 0 -github.com/muety/wakapi/utils/summary.go:92.17,94.4 1 0 -github.com/muety/wakapi/utils/summary.go:107.48,111.51 2 0 -github.com/muety/wakapi/utils/summary.go:114.2,114.12 1 0 -github.com/muety/wakapi/utils/summary.go:111.51,113.3 1 0 +github.com/muety/wakapi/services/user.go:22.73,29.2 1 0 +github.com/muety/wakapi/services/user.go:31.74,32.40 1 0 +github.com/muety/wakapi/services/user.go:36.2,37.16 2 0 +github.com/muety/wakapi/services/user.go:41.2,42.15 2 0 +github.com/muety/wakapi/services/user.go:32.40,34.3 1 0 +github.com/muety/wakapi/services/user.go:37.16,39.3 1 0 +github.com/muety/wakapi/services/user.go:45.72,46.37 1 0 +github.com/muety/wakapi/services/user.go:50.2,51.16 2 0 +github.com/muety/wakapi/services/user.go:55.2,56.15 2 0 +github.com/muety/wakapi/services/user.go:46.37,48.3 1 0 +github.com/muety/wakapi/services/user.go:51.16,53.3 1 0 +github.com/muety/wakapi/services/user.go:59.76,61.2 1 0 +github.com/muety/wakapi/services/user.go:63.86,65.2 1 0 +github.com/muety/wakapi/services/user.go:67.58,69.2 1 0 +github.com/muety/wakapi/services/user.go:71.86,73.2 1 0 +github.com/muety/wakapi/services/user.go:75.71,77.12 2 0 +github.com/muety/wakapi/services/user.go:81.2,82.42 2 0 +github.com/muety/wakapi/services/user.go:86.2,87.16 2 0 +github.com/muety/wakapi/services/user.go:91.2,92.21 2 0 +github.com/muety/wakapi/services/user.go:77.12,79.3 1 0 +github.com/muety/wakapi/services/user.go:82.42,84.3 1 0 +github.com/muety/wakapi/services/user.go:87.16,89.3 1 0 +github.com/muety/wakapi/services/user.go:95.48,97.2 1 0 +github.com/muety/wakapi/services/user.go:99.102,109.93 2 0 +github.com/muety/wakapi/services/user.go:115.2,115.38 1 0 +github.com/muety/wakapi/services/user.go:109.93,111.3 1 0 +github.com/muety/wakapi/services/user.go:111.8,113.3 1 0 +github.com/muety/wakapi/services/user.go:118.73,122.2 3 0 +github.com/muety/wakapi/services/user.go:124.78,128.2 3 0 +github.com/muety/wakapi/services/user.go:130.99,133.2 2 0 +github.com/muety/wakapi/services/user.go:135.106,138.96 3 0 +github.com/muety/wakapi/services/user.go:143.2,143.68 1 0 +github.com/muety/wakapi/services/user.go:138.96,140.3 1 0 +github.com/muety/wakapi/services/user.go:140.8,142.3 1 0 +github.com/muety/wakapi/services/user.go:146.85,148.2 1 0 +github.com/muety/wakapi/services/user.go:150.57,157.2 4 0 +github.com/muety/wakapi/services/user.go:159.38,161.2 1 0 +github.com/muety/wakapi/services/user.go:163.57,168.2 1 0 +github.com/muety/wakapi/services/aggregation.go:29.142,37.2 1 0 +github.com/muety/wakapi/services/aggregation.go:46.43,48.37 1 0 +github.com/muety/wakapi/services/aggregation.go:52.2,54.19 3 0 +github.com/muety/wakapi/services/aggregation.go:48.37,50.3 1 0 +github.com/muety/wakapi/services/aggregation.go:57.67,58.47 1 0 +github.com/muety/wakapi/services/aggregation.go:61.2,66.40 4 0 +github.com/muety/wakapi/services/aggregation.go:70.2,70.50 1 0 +github.com/muety/wakapi/services/aggregation.go:75.2,75.60 1 0 +github.com/muety/wakapi/services/aggregation.go:81.2,81.35 1 0 +github.com/muety/wakapi/services/aggregation.go:58.47,60.3 1 0 +github.com/muety/wakapi/services/aggregation.go:66.40,68.3 1 0 +github.com/muety/wakapi/services/aggregation.go:70.50,72.3 1 0 +github.com/muety/wakapi/services/aggregation.go:75.60,79.3 3 0 +github.com/muety/wakapi/services/aggregation.go:84.109,85.24 1 0 +github.com/muety/wakapi/services/aggregation.go:85.24,86.111 1 0 +github.com/muety/wakapi/services/aggregation.go:86.111,88.4 1 0 +github.com/muety/wakapi/services/aggregation.go:88.9,91.4 2 0 +github.com/muety/wakapi/services/aggregation.go:95.80,96.33 1 0 +github.com/muety/wakapi/services/aggregation.go:96.33,97.60 1 0 +github.com/muety/wakapi/services/aggregation.go:97.60,99.4 1 0 +github.com/muety/wakapi/services/aggregation.go:103.100,107.59 3 0 +github.com/muety/wakapi/services/aggregation.go:122.2,123.16 2 0 +github.com/muety/wakapi/services/aggregation.go:129.2,130.16 2 0 +github.com/muety/wakapi/services/aggregation.go:136.2,137.44 2 0 +github.com/muety/wakapi/services/aggregation.go:142.2,142.41 1 0 +github.com/muety/wakapi/services/aggregation.go:156.2,156.12 1 0 +github.com/muety/wakapi/services/aggregation.go:107.59,110.3 2 0 +github.com/muety/wakapi/services/aggregation.go:110.8,110.47 1 0 +github.com/muety/wakapi/services/aggregation.go:110.47,112.30 2 0 +github.com/muety/wakapi/services/aggregation.go:112.30,113.43 1 0 +github.com/muety/wakapi/services/aggregation.go:113.43,115.5 1 0 +github.com/muety/wakapi/services/aggregation.go:117.8,119.3 1 0 +github.com/muety/wakapi/services/aggregation.go:123.16,126.3 2 0 +github.com/muety/wakapi/services/aggregation.go:130.16,133.3 2 0 +github.com/muety/wakapi/services/aggregation.go:137.44,139.3 1 0 +github.com/muety/wakapi/services/aggregation.go:142.41,143.21 1 0 +github.com/muety/wakapi/services/aggregation.go:143.21,147.4 1 0 +github.com/muety/wakapi/services/aggregation.go:147.9,147.62 1 0 +github.com/muety/wakapi/services/aggregation.go:147.62,151.4 1 0 +github.com/muety/wakapi/services/aggregation.go:159.73,162.27 3 0 +github.com/muety/wakapi/services/aggregation.go:167.2,167.27 1 0 +github.com/muety/wakapi/services/aggregation.go:170.2,170.12 1 0 +github.com/muety/wakapi/services/aggregation.go:162.27,163.39 1 0 +github.com/muety/wakapi/services/aggregation.go:163.39,165.4 1 0 +github.com/muety/wakapi/services/aggregation.go:167.27,169.3 1 0 +github.com/muety/wakapi/services/aggregation.go:173.69,176.27 3 0 +github.com/muety/wakapi/services/aggregation.go:176.27,178.3 1 0 +github.com/muety/wakapi/services/aggregation.go:181.83,196.41 5 0 +github.com/muety/wakapi/services/aggregation.go:196.41,206.3 3 0 +github.com/muety/wakapi/services/aggregation.go:209.34,212.2 2 0 +github.com/muety/wakapi/services/heartbeat.go:22.141,29.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:31.72,34.2 2 0 +github.com/muety/wakapi/services/heartbeat.go:36.80,41.32 3 0 +github.com/muety/wakapi/services/heartbeat.go:49.2,49.55 1 0 +github.com/muety/wakapi/services/heartbeat.go:41.32,42.36 1 0 +github.com/muety/wakapi/services/heartbeat.go:46.3,46.43 1 0 +github.com/muety/wakapi/services/heartbeat.go:42.36,45.4 2 0 +github.com/muety/wakapi/services/heartbeat.go:52.53,54.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:56.76,58.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:60.96,62.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:64.111,66.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:69.2,69.43 1 0 +github.com/muety/wakapi/services/heartbeat.go:66.16,68.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:72.92,74.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:76.116,78.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:80.78,82.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:84.104,86.54 2 0 +github.com/muety/wakapi/services/heartbeat.go:90.2,91.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:95.2,96.28 2 0 +github.com/muety/wakapi/services/heartbeat.go:102.2,103.22 2 0 +github.com/muety/wakapi/services/heartbeat.go:86.54,88.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:91.16,93.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:96.28,97.33 1 0 +github.com/muety/wakapi/services/heartbeat.go:97.33,99.4 1 0 +github.com/muety/wakapi/services/heartbeat.go:106.62,108.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:110.116,112.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:116.2,116.28 1 0 +github.com/muety/wakapi/services/heartbeat.go:120.2,120.24 1 0 +github.com/muety/wakapi/services/heartbeat.go:112.16,114.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:116.28,118.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:123.96,125.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:127.107,129.55 2 0 +github.com/muety/wakapi/services/heartbeat.go:129.55,130.58 1 0 +github.com/muety/wakapi/services/heartbeat.go:130.58,134.4 1 0 +github.com/muety/wakapi/services/heartbeat.go:138.85,144.2 5 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/misc.go:21.126,28.2 1 0 +github.com/muety/wakapi/services/misc.go:40.50,42.48 1 0 +github.com/muety/wakapi/services/misc.go:46.2,48.19 3 0 +github.com/muety/wakapi/services/misc.go:42.48,44.3 1 0 +github.com/muety/wakapi/services/misc.go:51.51,53.16 2 0 +github.com/muety/wakapi/services/misc.go:57.2,60.26 3 0 +github.com/muety/wakapi/services/misc.go:66.2,68.40 2 0 +github.com/muety/wakapi/services/misc.go:73.2,75.33 3 0 +github.com/muety/wakapi/services/misc.go:79.2,84.17 2 0 +github.com/muety/wakapi/services/misc.go:88.2,91.17 1 0 +github.com/muety/wakapi/services/misc.go:95.2,95.12 1 0 +github.com/muety/wakapi/services/misc.go:53.16,55.3 1 0 +github.com/muety/wakapi/services/misc.go:60.26,65.3 1 0 +github.com/muety/wakapi/services/misc.go:68.40,70.3 1 0 +github.com/muety/wakapi/services/misc.go:75.33,78.3 2 0 +github.com/muety/wakapi/services/misc.go:84.17,86.3 1 0 +github.com/muety/wakapi/services/misc.go:91.17,93.3 1 0 +github.com/muety/wakapi/services/misc.go:98.116,99.24 1 0 +github.com/muety/wakapi/services/misc.go:99.24,100.151 1 0 +github.com/muety/wakapi/services/misc.go:100.151,102.4 1 0 +github.com/muety/wakapi/services/misc.go:102.9,107.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:80.2,80.61 1 0 +github.com/muety/wakapi/services/report.go:94.2,94.24 1 0 +github.com/muety/wakapi/services/report.go:74.22,77.3 2 0 +github.com/muety/wakapi/services/report.go:80.61,89.47 3 0 +github.com/muety/wakapi/services/report.go:89.47,91.4 1 0 +github.com/muety/wakapi/services/report.go:97.80,98.22 1 0 +github.com/muety/wakapi/services/report.go:102.2,102.29 1 0 +github.com/muety/wakapi/services/report.go:107.2,111.16 4 0 +github.com/muety/wakapi/services/report.go:116.2,123.65 2 0 +github.com/muety/wakapi/services/report.go:128.2,129.12 2 0 +github.com/muety/wakapi/services/report.go:98.22,100.3 1 0 +github.com/muety/wakapi/services/report.go:102.29,105.3 2 0 +github.com/muety/wakapi/services/report.go:111.16,114.3 2 0 +github.com/muety/wakapi/services/report.go:123.65,126.3 2 0 +github.com/muety/wakapi/services/report.go:132.63,133.41 1 0 +github.com/muety/wakapi/services/report.go:140.2,140.12 1 0 +github.com/muety/wakapi/services/report.go:133.41,134.30 1 0 +github.com/muety/wakapi/services/report.go:134.30,135.16 1 0 +github.com/muety/wakapi/services/report.go:135.16,137.5 1 0 diff --git a/mocks/user_service.go b/mocks/user_service.go index c702238..31cef50 100644 --- a/mocks/user_service.go +++ b/mocks/user_service.go @@ -39,8 +39,8 @@ func (m *UserServiceMock) GetAllByReports(b bool) ([]*models.User, error) { return args.Get(0).([]*models.User), args.Error(1) } -func (m *UserServiceMock) GetActive() ([]*models.User, error) { - args := m.Called() +func (m *UserServiceMock) GetActive(b bool) ([]*models.User, error) { + args := m.Called(b) return args.Get(0).([]*models.User), args.Error(1) } diff --git a/routes/api/metrics.go b/routes/api/metrics.go index 2a5ab3c..9e17b7a 100644 --- a/routes/api/metrics.go +++ b/routes/api/metrics.go @@ -228,7 +228,7 @@ func (h *MetricsHandler) getAdminMetrics(user *models.User) (*mm.Metrics, error) totalUsers, _ := h.userSrvc.Count() totalHeartbeats, _ := h.heartbeatSrvc.Count() - activeUsers, err := h.userSrvc.GetActive() + activeUsers, err := h.userSrvc.GetActive(false) if err != nil { logbuch.Error("failed to retrieve active users for metric – %v", err) return nil, err diff --git a/services/services.go b/services/services.go index 5fca7f4..9e37af1 100644 --- a/services/services.go +++ b/services/services.go @@ -90,7 +90,7 @@ type IUserService interface { GetUserByResetToken(string) (*models.User, error) GetAll() ([]*models.User, error) GetAllByReports(bool) ([]*models.User, error) - GetActive() ([]*models.User, error) + GetActive(bool) ([]*models.User, error) Count() (int64, error) CreateOrGet(*models.Signup, bool) (*models.User, bool, error) Update(*models.User) (*models.User, error) diff --git a/services/user.go b/services/user.go index 575378b..7172edd 100644 --- a/services/user.go +++ b/services/user.go @@ -1,6 +1,7 @@ package services import ( + "fmt" "github.com/leandro-lugaresi/hub" "github.com/muety/wakapi/config" "github.com/muety/wakapi/models" @@ -51,7 +52,7 @@ func (srv *UserService) GetUserByKey(key string) (*models.User, error) { return nil, err } - srv.cache.Set(u.ID, u, cache.DefaultExpiration) + srv.cache.SetDefault(u.ID, u) return u, nil } @@ -71,9 +72,24 @@ func (srv *UserService) GetAllByReports(reportsEnabled bool) ([]*models.User, er return srv.repository.GetAllByReports(reportsEnabled) } -func (srv *UserService) GetActive() ([]*models.User, error) { +func (srv *UserService) GetActive(exact bool) ([]*models.User, error) { minDate := time.Now().Add(-24 * time.Hour * time.Duration(srv.config.App.InactiveDays)) - return srv.repository.GetByLastActiveAfter(minDate) + if !exact { + minDate = utils.FloorDateHour(minDate) + } + + cacheKey := fmt.Sprintf("%s--active", minDate.String()) + if u, ok := srv.cache.Get(cacheKey); ok { + return u.([]*models.User), nil + } + + results, err := srv.repository.GetByLastActiveAfter(minDate) + if err != nil { + return nil, err + } + + srv.cache.SetDefault(cacheKey, results) + return results, nil } func (srv *UserService) Count() (int64, error) { diff --git a/utils/date.go b/utils/date.go index d026120..a23c5ef 100644 --- a/utils/date.go +++ b/utils/date.go @@ -55,6 +55,11 @@ func FloorDate(date time.Time) time.Time { return time.Date(date.Year(), date.Month(), date.Day(), 0, 0, 0, 0, date.Location()) } +// FloorDateHour rounds date down to the start of the current hour and keeps the time zone +func FloorDateHour(date time.Time) time.Time { + return time.Date(date.Year(), date.Month(), date.Day(), date.Hour(), 0, 0, 0, date.Location()) +} + // CeilDate rounds date up to the start of next day if date is not already a start (00:00:00) func CeilDate(date time.Time) time.Time { floored := FloorDate(date)