diff --git a/coverage/coverage.out b/coverage/coverage.out index e0c9a47..36c0f17 100644 --- a/coverage/coverage.out +++ b/coverage/coverage.out @@ -1,28 +1,11 @@ mode: set -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/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/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 -github.com/muety/wakapi/models/shared.go:42.16,44.3 1 0 -github.com/muety/wakapi/models/shared.go:50.52,56.22 2 0 -github.com/muety/wakapi/models/shared.go:71.2,74.12 3 0 -github.com/muety/wakapi/models/shared.go:57.14,61.17 2 0 -github.com/muety/wakapi/models/shared.go:64.17,66.8 2 0 -github.com/muety/wakapi/models/shared.go:67.10,68.64 1 0 -github.com/muety/wakapi/models/shared.go:61.17,63.4 1 0 -github.com/muety/wakapi/models/shared.go:77.51,80.2 2 0 -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/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.go:19.44,23.2 3 0 +github.com/muety/wakapi/models/mail.go:25.44,29.2 3 0 +github.com/muety/wakapi/models/mail.go:31.32,44.2 1 0 +github.com/muety/wakapi/models/mail.go:46.41,48.2 1 0 github.com/muety/wakapi/models/summary.go:74.29,76.2 1 1 github.com/muety/wakapi/models/summary.go:78.35,80.2 1 0 github.com/muety/wakapi/models/summary.go:82.37,90.2 7 1 @@ -89,43 +72,21 @@ 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/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.go:19.44,23.2 3 0 -github.com/muety/wakapi/models/mail.go:25.44,29.2 3 0 -github.com/muety/wakapi/models/mail.go:31.32,44.2 1 0 -github.com/muety/wakapi/models/mail.go:46.41,48.2 1 0 -github.com/muety/wakapi/models/mail_address.go:15.13,18.2 2 1 -github.com/muety/wakapi/models/mail_address.go:24.38,26.2 1 0 -github.com/muety/wakapi/models/mail_address.go:28.35,30.21 2 1 -github.com/muety/wakapi/models/mail_address.go:36.2,36.11 1 1 -github.com/muety/wakapi/models/mail_address.go:30.21,31.21 1 1 -github.com/muety/wakapi/models/mail_address.go:34.3,34.18 1 1 -github.com/muety/wakapi/models/mail_address.go:31.21,33.4 1 1 -github.com/muety/wakapi/models/mail_address.go:39.35,41.2 1 1 -github.com/muety/wakapi/models/mail_address.go:43.43,45.22 2 0 -github.com/muety/wakapi/models/mail_address.go:48.2,48.12 1 0 -github.com/muety/wakapi/models/mail_address.go:45.22,47.3 1 0 -github.com/muety/wakapi/models/mail_address.go:51.46,53.22 2 1 -github.com/muety/wakapi/models/mail_address.go:56.2,56.12 1 1 -github.com/muety/wakapi/models/mail_address.go:53.22,55.3 1 1 -github.com/muety/wakapi/models/mail_address.go:59.40,60.22 1 1 -github.com/muety/wakapi/models/mail_address.go:65.2,65.13 1 1 -github.com/muety/wakapi/models/mail_address.go:60.22,61.17 1 1 -github.com/muety/wakapi/models/mail_address.go:61.17,63.4 1 1 -github.com/muety/wakapi/models/models.go:3.14,5.2 0 1 -github.com/muety/wakapi/models/project_label.go:11.39,13.2 1 0 +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/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 @@ -164,184 +125,60 @@ github.com/muety/wakapi/models/heartbeat.go:68.37,84.2 1 0 github.com/muety/wakapi/models/heartbeat.go:92.41,94.16 2 0 github.com/muety/wakapi/models/heartbeat.go:97.2,98.10 2 0 github.com/muety/wakapi/models/heartbeat.go:94.16,96.3 1 0 -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/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,114.91 1 0 -github.com/muety/wakapi/config/sentry.go:114.91,115.29 1 0 -github.com/muety/wakapi/config/sentry.go:119.4,122.38 3 0 -github.com/muety/wakapi/config/sentry.go:127.4,127.39 1 0 -github.com/muety/wakapi/config/sentry.go:130.4,130.69 1 0 -github.com/muety/wakapi/config/sentry.go:115.29,117.5 1 0 -github.com/muety/wakapi/config/sentry.go:122.38,123.38 1 0 -github.com/muety/wakapi/config/sentry.go:123.38,125.6 1 0 -github.com/muety/wakapi/config/sentry.go:127.39,129.5 1 0 -github.com/muety/wakapi/config/sentry.go:132.79,133.27 1 0 -github.com/muety/wakapi/config/sentry.go:140.4,140.16 1 0 -github.com/muety/wakapi/config/sentry.go:133.27,134.84 1 0 -github.com/muety/wakapi/config/sentry.go:134.84,135.42 1 0 -github.com/muety/wakapi/config/sentry.go:135.42,137.7 1 0 -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:151.70,153.2 1 0 -github.com/muety/wakapi/config/config.go:155.65,157.2 1 0 -github.com/muety/wakapi/config/config.go:159.82,169.2 1 0 -github.com/muety/wakapi/config/config.go:171.31,173.2 1 0 -github.com/muety/wakapi/config/config.go:175.32,177.2 1 0 -github.com/muety/wakapi/config/config.go:179.74,180.19 1 0 -github.com/muety/wakapi/config/config.go:181.10,182.34 1 0 -github.com/muety/wakapi/config/config.go:182.34,183.90 1 0 -github.com/muety/wakapi/config/config.go:186.4,186.100 1 0 -github.com/muety/wakapi/config/config.go:189.4,189.91 1 0 -github.com/muety/wakapi/config/config.go:192.4,192.95 1 0 -github.com/muety/wakapi/config/config.go:195.4,195.93 1 0 -github.com/muety/wakapi/config/config.go:198.4,198.97 1 0 -github.com/muety/wakapi/config/config.go:201.4,201.101 1 0 -github.com/muety/wakapi/config/config.go:204.4,204.98 1 0 -github.com/muety/wakapi/config/config.go:207.4,207.97 1 0 -github.com/muety/wakapi/config/config.go:210.4,210.14 1 0 -github.com/muety/wakapi/config/config.go:183.90,185.5 1 0 -github.com/muety/wakapi/config/config.go:186.100,188.5 1 0 -github.com/muety/wakapi/config/config.go:189.91,191.5 1 0 -github.com/muety/wakapi/config/config.go:192.95,194.5 1 0 -github.com/muety/wakapi/config/config.go:195.93,197.5 1 0 -github.com/muety/wakapi/config/config.go:198.97,200.5 1 0 -github.com/muety/wakapi/config/config.go:201.101,203.5 1 0 -github.com/muety/wakapi/config/config.go:204.98,206.5 1 0 -github.com/muety/wakapi/config/config.go:207.97,209.5 1 0 -github.com/muety/wakapi/config/config.go:215.60,217.2 1 0 -github.com/muety/wakapi/config/config.go:219.59,221.2 1 0 -github.com/muety/wakapi/config/config.go:223.57,225.2 1 0 -github.com/muety/wakapi/config/config.go:227.53,229.2 1 0 -github.com/muety/wakapi/config/config.go:231.55,234.2 2 0 -github.com/muety/wakapi/config/config.go:236.50,238.2 1 0 -github.com/muety/wakapi/config/config.go:240.46,242.2 1 0 -github.com/muety/wakapi/config/config.go:244.43,246.2 1 0 -github.com/muety/wakapi/config/config.go:248.29,250.2 1 1 -github.com/muety/wakapi/config/config.go:252.48,263.16 2 0 -github.com/muety/wakapi/config/config.go:267.2,268.53 2 0 -github.com/muety/wakapi/config/config.go:272.2,272.15 1 0 -github.com/muety/wakapi/config/config.go:263.16,265.3 1 0 -github.com/muety/wakapi/config/config.go:268.53,270.3 1 0 -github.com/muety/wakapi/config/config.go:275.38,276.43 1 0 -github.com/muety/wakapi/config/config.go:279.2,279.15 1 0 -github.com/muety/wakapi/config/config.go:276.43,278.3 1 0 -github.com/muety/wakapi/config/config.go:282.45,283.27 1 0 -github.com/muety/wakapi/config/config.go:286.2,286.15 1 0 -github.com/muety/wakapi/config/config.go:283.27,285.3 1 0 -github.com/muety/wakapi/config/config.go:289.77,290.29 1 0 -github.com/muety/wakapi/config/config.go:295.2,295.19 1 0 -github.com/muety/wakapi/config/config.go:290.29,291.18 1 0 -github.com/muety/wakapi/config/config.go:291.18,293.4 1 0 -github.com/muety/wakapi/config/config.go:298.42,299.28 1 0 -github.com/muety/wakapi/config/config.go:315.2,315.20 1 0 -github.com/muety/wakapi/config/config.go:300.52,301.21 1 0 -github.com/muety/wakapi/config/config.go:302.53,303.22 1 0 -github.com/muety/wakapi/config/config.go:304.55,305.24 1 0 -github.com/muety/wakapi/config/config.go:306.54,307.23 1 0 -github.com/muety/wakapi/config/config.go:308.52,309.21 1 0 -github.com/muety/wakapi/config/config.go:310.54,311.23 1 0 -github.com/muety/wakapi/config/config.go:312.52,313.21 1 0 -github.com/muety/wakapi/config/config.go:318.26,320.2 1 0 -github.com/muety/wakapi/config/config.go:322.20,324.2 1 0 -github.com/muety/wakapi/config/config.go:326.35,331.96 3 0 -github.com/muety/wakapi/config/config.go:335.2,344.52 6 0 -github.com/muety/wakapi/config/config.go:348.2,348.47 1 0 -github.com/muety/wakapi/config/config.go:354.2,354.29 1 0 -github.com/muety/wakapi/config/config.go:360.2,360.106 1 0 -github.com/muety/wakapi/config/config.go:363.2,363.28 1 0 -github.com/muety/wakapi/config/config.go:366.2,366.94 1 0 -github.com/muety/wakapi/config/config.go:369.2,369.81 1 0 -github.com/muety/wakapi/config/config.go:372.2,372.75 1 0 -github.com/muety/wakapi/config/config.go:376.2,377.14 2 0 -github.com/muety/wakapi/config/config.go:331.96,333.3 1 0 -github.com/muety/wakapi/config/config.go:344.52,346.3 1 0 -github.com/muety/wakapi/config/config.go:348.47,349.14 1 0 -github.com/muety/wakapi/config/config.go:349.14,351.4 1 0 -github.com/muety/wakapi/config/config.go:354.29,357.3 2 0 -github.com/muety/wakapi/config/config.go:360.106,362.3 1 0 -github.com/muety/wakapi/config/config.go:363.28,365.3 1 0 -github.com/muety/wakapi/config/config.go:366.94,368.3 1 0 -github.com/muety/wakapi/config/config.go:369.81,371.3 1 0 -github.com/muety/wakapi/config/config.go:372.75,374.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:26.13,28.2 1 1 -github.com/muety/wakapi/config/eventbus.go:30.26,32.2 1 0 -github.com/muety/wakapi/config/fs.go:9.56,10.19 1 0 -github.com/muety/wakapi/config/fs.go:13.2,13.19 1 0 -github.com/muety/wakapi/config/fs.go:10.19,12.3 1 0 -github.com/muety/wakapi/middlewares/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 -github.com/muety/wakapi/middlewares/authenticate.go:37.71,38.71 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:38.71,40.3 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:43.107,47.16 3 0 -github.com/muety/wakapi/middlewares/authenticate.go:51.2,51.31 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:67.2,68.12 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:47.16,49.3 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:51.31,52.31 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:57.3,57.29 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:64.3,64.9 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:52.31,55.4 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:57.29,60.4 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:60.9,63.4 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:71.70,72.39 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:77.2,77.14 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:72.39,73.60 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:73.60,75.4 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:80.92,82.16 2 1 -github.com/muety/wakapi/middlewares/authenticate.go:86.2,89.16 4 1 -github.com/muety/wakapi/middlewares/authenticate.go:92.2,92.18 1 1 -github.com/muety/wakapi/middlewares/authenticate.go:82.16,84.3 1 1 -github.com/muety/wakapi/middlewares/authenticate.go:89.16,91.3 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:95.92,97.16 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:101.2,102.16 2 0 -github.com/muety/wakapi/middlewares/authenticate.go:109.2,109.18 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:97.16,99.3 1 0 -github.com/muety/wakapi/middlewares/authenticate.go:102.16,104.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/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/project_label.go:11.39,13.2 1 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/models.go:3.14,5.2 0 1 +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 +github.com/muety/wakapi/models/shared.go:42.16,44.3 1 0 +github.com/muety/wakapi/models/shared.go:50.52,56.22 2 0 +github.com/muety/wakapi/models/shared.go:71.2,74.12 3 0 +github.com/muety/wakapi/models/shared.go:57.14,61.17 2 0 +github.com/muety/wakapi/models/shared.go:64.17,66.8 2 0 +github.com/muety/wakapi/models/shared.go:67.10,68.64 1 0 +github.com/muety/wakapi/models/shared.go:61.17,63.4 1 0 +github.com/muety/wakapi/models/shared.go:77.51,80.2 2 0 +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/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 @@ -396,86 +233,323 @@ 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/heartbeat.go:25.141,39.33 3 0 -github.com/muety/wakapi/services/heartbeat.go:47.2,47.12 1 0 -github.com/muety/wakapi/services/heartbeat.go:39.33,40.31 1 0 -github.com/muety/wakapi/services/heartbeat.go:40.31,44.4 3 0 -github.com/muety/wakapi/services/heartbeat.go:50.72,53.2 2 0 -github.com/muety/wakapi/services/heartbeat.go:55.80,60.32 3 0 -github.com/muety/wakapi/services/heartbeat.go:68.2,69.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:72.2,72.12 1 0 -github.com/muety/wakapi/services/heartbeat.go:60.32,61.36 1 0 -github.com/muety/wakapi/services/heartbeat.go:65.3,65.43 1 0 -github.com/muety/wakapi/services/heartbeat.go:61.36,64.4 2 0 -github.com/muety/wakapi/services/heartbeat.go:69.16,71.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:75.53,77.8 2 0 -github.com/muety/wakapi/services/heartbeat.go:80.2,81.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:84.2,84.19 1 0 -github.com/muety/wakapi/services/heartbeat.go:77.8,79.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:81.16,83.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:87.76,90.8 3 0 -github.com/muety/wakapi/services/heartbeat.go:93.2,94.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:97.2,97.19 1 0 -github.com/muety/wakapi/services/heartbeat.go:90.8,92.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:94.16,96.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:100.96,104.26 3 0 -github.com/muety/wakapi/services/heartbeat.go:114.2,115.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:119.2,119.28 1 0 -github.com/muety/wakapi/services/heartbeat.go:125.2,125.24 1 0 -github.com/muety/wakapi/services/heartbeat.go:104.26,107.9 3 0 -github.com/muety/wakapi/services/heartbeat.go:107.9,109.4 1 0 -github.com/muety/wakapi/services/heartbeat.go:109.9,111.4 1 0 -github.com/muety/wakapi/services/heartbeat.go:115.16,117.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:119.28,123.3 3 0 -github.com/muety/wakapi/services/heartbeat.go:128.111,130.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:133.2,133.43 1 0 -github.com/muety/wakapi/services/heartbeat.go:130.16,132.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:136.92,138.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:140.116,142.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:144.78,146.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:148.104,150.55 2 0 -github.com/muety/wakapi/services/heartbeat.go:154.2,155.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:159.2,160.28 2 0 -github.com/muety/wakapi/services/heartbeat.go:166.2,167.22 2 0 -github.com/muety/wakapi/services/heartbeat.go:150.55,152.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:155.16,157.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:160.28,161.33 1 0 -github.com/muety/wakapi/services/heartbeat.go:161.33,163.4 1 0 -github.com/muety/wakapi/services/heartbeat.go:170.62,172.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:174.116,176.16 2 0 -github.com/muety/wakapi/services/heartbeat.go:180.2,180.28 1 0 -github.com/muety/wakapi/services/heartbeat.go:184.2,184.24 1 0 -github.com/muety/wakapi/services/heartbeat.go:176.16,178.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:180.28,182.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:187.96,189.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:191.107,193.56 2 0 -github.com/muety/wakapi/services/heartbeat.go:193.56,194.58 1 0 -github.com/muety/wakapi/services/heartbeat.go:194.58,198.4 1 0 -github.com/muety/wakapi/services/heartbeat.go:202.85,208.2 5 0 -github.com/muety/wakapi/services/heartbeat.go:210.74,211.32 1 0 -github.com/muety/wakapi/services/heartbeat.go:211.32,216.3 1 0 -github.com/muety/wakapi/services/heartbeat.go:219.72,221.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:223.58,225.2 1 0 -github.com/muety/wakapi/services/heartbeat.go:227.60,229.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/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 0 +github.com/muety/wakapi/middlewares/authenticate.go:120.2,120.18 1 0 +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/config/config.go:152.70,154.2 1 0 +github.com/muety/wakapi/config/config.go:156.65,158.2 1 0 +github.com/muety/wakapi/config/config.go:160.82,170.2 1 0 +github.com/muety/wakapi/config/config.go:172.31,174.2 1 0 +github.com/muety/wakapi/config/config.go:176.32,178.2 1 0 +github.com/muety/wakapi/config/config.go:180.74,181.19 1 0 +github.com/muety/wakapi/config/config.go:182.10,183.34 1 0 +github.com/muety/wakapi/config/config.go:183.34,184.90 1 0 +github.com/muety/wakapi/config/config.go:187.4,187.100 1 0 +github.com/muety/wakapi/config/config.go:190.4,190.91 1 0 +github.com/muety/wakapi/config/config.go:193.4,193.95 1 0 +github.com/muety/wakapi/config/config.go:196.4,196.93 1 0 +github.com/muety/wakapi/config/config.go:199.4,199.97 1 0 +github.com/muety/wakapi/config/config.go:202.4,202.101 1 0 +github.com/muety/wakapi/config/config.go:205.4,205.98 1 0 +github.com/muety/wakapi/config/config.go:208.4,208.97 1 0 +github.com/muety/wakapi/config/config.go:211.4,211.14 1 0 +github.com/muety/wakapi/config/config.go:184.90,186.5 1 0 +github.com/muety/wakapi/config/config.go:187.100,189.5 1 0 +github.com/muety/wakapi/config/config.go:190.91,192.5 1 0 +github.com/muety/wakapi/config/config.go:193.95,195.5 1 0 +github.com/muety/wakapi/config/config.go:196.93,198.5 1 0 +github.com/muety/wakapi/config/config.go:199.97,201.5 1 0 +github.com/muety/wakapi/config/config.go:202.101,204.5 1 0 +github.com/muety/wakapi/config/config.go:205.98,207.5 1 0 +github.com/muety/wakapi/config/config.go:208.97,210.5 1 0 +github.com/muety/wakapi/config/config.go:216.60,218.2 1 0 +github.com/muety/wakapi/config/config.go:220.59,222.2 1 0 +github.com/muety/wakapi/config/config.go:224.57,226.2 1 0 +github.com/muety/wakapi/config/config.go:228.53,230.2 1 0 +github.com/muety/wakapi/config/config.go:232.55,235.2 2 0 +github.com/muety/wakapi/config/config.go:237.50,239.2 1 0 +github.com/muety/wakapi/config/config.go:241.46,243.2 1 0 +github.com/muety/wakapi/config/config.go:245.43,247.2 1 0 +github.com/muety/wakapi/config/config.go:249.29,251.2 1 1 +github.com/muety/wakapi/config/config.go:253.48,264.16 2 0 +github.com/muety/wakapi/config/config.go:268.2,269.53 2 0 +github.com/muety/wakapi/config/config.go:273.2,273.15 1 0 +github.com/muety/wakapi/config/config.go:264.16,266.3 1 0 +github.com/muety/wakapi/config/config.go:269.53,271.3 1 0 +github.com/muety/wakapi/config/config.go:276.38,277.43 1 0 +github.com/muety/wakapi/config/config.go:280.2,280.15 1 0 +github.com/muety/wakapi/config/config.go:277.43,279.3 1 0 +github.com/muety/wakapi/config/config.go:283.45,284.27 1 0 +github.com/muety/wakapi/config/config.go:287.2,287.15 1 0 +github.com/muety/wakapi/config/config.go:284.27,286.3 1 0 +github.com/muety/wakapi/config/config.go:290.77,291.29 1 0 +github.com/muety/wakapi/config/config.go:296.2,296.19 1 0 +github.com/muety/wakapi/config/config.go:291.29,292.18 1 0 +github.com/muety/wakapi/config/config.go:292.18,294.4 1 0 +github.com/muety/wakapi/config/config.go:299.42,300.28 1 0 +github.com/muety/wakapi/config/config.go:316.2,316.20 1 0 +github.com/muety/wakapi/config/config.go:301.52,302.21 1 0 +github.com/muety/wakapi/config/config.go:303.53,304.22 1 0 +github.com/muety/wakapi/config/config.go:305.55,306.24 1 0 +github.com/muety/wakapi/config/config.go:307.54,308.23 1 0 +github.com/muety/wakapi/config/config.go:309.52,310.21 1 0 +github.com/muety/wakapi/config/config.go:311.54,312.23 1 0 +github.com/muety/wakapi/config/config.go:313.52,314.21 1 0 +github.com/muety/wakapi/config/config.go:319.26,321.2 1 0 +github.com/muety/wakapi/config/config.go:323.20,325.2 1 0 +github.com/muety/wakapi/config/config.go:327.35,332.96 3 0 +github.com/muety/wakapi/config/config.go:336.2,345.52 6 0 +github.com/muety/wakapi/config/config.go:349.2,349.47 1 0 +github.com/muety/wakapi/config/config.go:355.2,355.29 1 0 +github.com/muety/wakapi/config/config.go:361.2,361.106 1 0 +github.com/muety/wakapi/config/config.go:364.2,364.28 1 0 +github.com/muety/wakapi/config/config.go:367.2,367.94 1 0 +github.com/muety/wakapi/config/config.go:370.2,370.81 1 0 +github.com/muety/wakapi/config/config.go:373.2,373.75 1 0 +github.com/muety/wakapi/config/config.go:377.2,378.14 2 0 +github.com/muety/wakapi/config/config.go:332.96,334.3 1 0 +github.com/muety/wakapi/config/config.go:345.52,347.3 1 0 +github.com/muety/wakapi/config/config.go:349.47,350.14 1 0 +github.com/muety/wakapi/config/config.go:350.14,352.4 1 0 +github.com/muety/wakapi/config/config.go:355.29,358.3 2 0 +github.com/muety/wakapi/config/config.go:361.106,363.3 1 0 +github.com/muety/wakapi/config/config.go:364.28,366.3 1 0 +github.com/muety/wakapi/config/config.go:367.94,369.3 1 0 +github.com/muety/wakapi/config/config.go:370.81,372.3 1 0 +github.com/muety/wakapi/config/config.go:373.75,375.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: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,114.91 1 0 +github.com/muety/wakapi/config/sentry.go:114.91,115.29 1 0 +github.com/muety/wakapi/config/sentry.go:119.4,122.38 3 0 +github.com/muety/wakapi/config/sentry.go:127.4,127.39 1 0 +github.com/muety/wakapi/config/sentry.go:130.4,130.69 1 0 +github.com/muety/wakapi/config/sentry.go:115.29,117.5 1 0 +github.com/muety/wakapi/config/sentry.go:122.38,123.38 1 0 +github.com/muety/wakapi/config/sentry.go:123.38,125.6 1 0 +github.com/muety/wakapi/config/sentry.go:127.39,129.5 1 0 +github.com/muety/wakapi/config/sentry.go:132.79,133.27 1 0 +github.com/muety/wakapi/config/sentry.go:140.4,140.16 1 0 +github.com/muety/wakapi/config/sentry.go:133.27,134.84 1 0 +github.com/muety/wakapi/config/sentry.go:134.84,135.42 1 0 +github.com/muety/wakapi/config/sentry.go:135.42,137.7 1 0 +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/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/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/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/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/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/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/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/services/project_label.go:20.111,27.2 1 0 github.com/muety/wakapi/services/project_label.go:29.80,31.2 1 0 github.com/muety/wakapi/services/project_label.go:33.90,34.51 1 0 @@ -499,34 +573,6 @@ github.com/muety/wakapi/services/project_label.go:76.24,78.3 1 0 github.com/muety/wakapi/services/project_label.go:85.89,87.14 2 0 github.com/muety/wakapi/services/project_label.go:90.2,93.4 1 0 github.com/muety/wakapi/services/project_label.go:87.14,89.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/summary.go:32.191,44.33 3 1 github.com/muety/wakapi/services/summary.go:55.2,55.12 1 1 github.com/muety/wakapi/services/summary.go:44.33,45.31 1 1 @@ -639,6 +685,95 @@ github.com/muety/wakapi/services/summary.go:413.59,415.2 1 1 github.com/muety/wakapi/services/summary.go:417.63,418.37 1 0 github.com/muety/wakapi/services/summary.go:418.37,419.36 1 0 github.com/muety/wakapi/services/summary.go:419.36,421.4 1 0 +github.com/muety/wakapi/services/diagnostics.go:14.101,19.2 1 0 +github.com/muety/wakapi/services/diagnostics.go:21.101,23.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:25.141,39.33 3 0 +github.com/muety/wakapi/services/heartbeat.go:47.2,47.12 1 0 +github.com/muety/wakapi/services/heartbeat.go:39.33,40.31 1 0 +github.com/muety/wakapi/services/heartbeat.go:40.31,44.4 3 0 +github.com/muety/wakapi/services/heartbeat.go:50.72,53.2 2 0 +github.com/muety/wakapi/services/heartbeat.go:55.80,60.32 3 0 +github.com/muety/wakapi/services/heartbeat.go:68.2,69.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:72.2,72.12 1 0 +github.com/muety/wakapi/services/heartbeat.go:60.32,61.36 1 0 +github.com/muety/wakapi/services/heartbeat.go:65.3,65.43 1 0 +github.com/muety/wakapi/services/heartbeat.go:61.36,64.4 2 0 +github.com/muety/wakapi/services/heartbeat.go:69.16,71.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:75.53,77.8 2 0 +github.com/muety/wakapi/services/heartbeat.go:80.2,81.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:84.2,84.19 1 0 +github.com/muety/wakapi/services/heartbeat.go:77.8,79.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:81.16,83.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:87.76,90.8 3 0 +github.com/muety/wakapi/services/heartbeat.go:93.2,94.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:97.2,97.19 1 0 +github.com/muety/wakapi/services/heartbeat.go:90.8,92.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:94.16,96.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:100.96,104.26 3 0 +github.com/muety/wakapi/services/heartbeat.go:114.2,115.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:119.2,119.28 1 0 +github.com/muety/wakapi/services/heartbeat.go:125.2,125.24 1 0 +github.com/muety/wakapi/services/heartbeat.go:104.26,107.9 3 0 +github.com/muety/wakapi/services/heartbeat.go:107.9,109.4 1 0 +github.com/muety/wakapi/services/heartbeat.go:109.9,111.4 1 0 +github.com/muety/wakapi/services/heartbeat.go:115.16,117.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:119.28,123.3 3 0 +github.com/muety/wakapi/services/heartbeat.go:128.111,130.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:133.2,133.43 1 0 +github.com/muety/wakapi/services/heartbeat.go:130.16,132.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:136.92,138.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:140.116,142.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:144.78,146.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:148.104,150.55 2 0 +github.com/muety/wakapi/services/heartbeat.go:154.2,155.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:159.2,160.28 2 0 +github.com/muety/wakapi/services/heartbeat.go:166.2,167.22 2 0 +github.com/muety/wakapi/services/heartbeat.go:150.55,152.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:155.16,157.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:160.28,161.33 1 0 +github.com/muety/wakapi/services/heartbeat.go:161.33,163.4 1 0 +github.com/muety/wakapi/services/heartbeat.go:170.62,172.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:174.116,176.16 2 0 +github.com/muety/wakapi/services/heartbeat.go:180.2,180.28 1 0 +github.com/muety/wakapi/services/heartbeat.go:184.2,184.24 1 0 +github.com/muety/wakapi/services/heartbeat.go:176.16,178.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:180.28,182.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:187.96,189.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:191.107,193.56 2 0 +github.com/muety/wakapi/services/heartbeat.go:193.56,194.58 1 0 +github.com/muety/wakapi/services/heartbeat.go:194.58,198.4 1 0 +github.com/muety/wakapi/services/heartbeat.go:202.85,208.2 5 0 +github.com/muety/wakapi/services/heartbeat.go:210.74,211.32 1 0 +github.com/muety/wakapi/services/heartbeat.go:211.32,216.3 1 0 +github.com/muety/wakapi/services/heartbeat.go:219.72,221.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:223.58,225.2 1 0 +github.com/muety/wakapi/services/heartbeat.go:227.60,229.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/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/user.go:24.99,34.33 3 0 github.com/muety/wakapi/services/user.go:55.2,55.12 1 0 github.com/muety/wakapi/services/user.go:34.33,35.31 1 0 @@ -770,15 +905,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/diagnostics.go:14.101,19.2 1 0 -github.com/muety/wakapi/services/diagnostics.go:21.101,23.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,42.48 1 0 github.com/muety/wakapi/services/misc.go:46.2,48.19 3 0 @@ -800,150 +926,31 @@ 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/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/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/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/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/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/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/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/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/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/middlewares/authenticate.go b/middlewares/authenticate.go index ba175cd..2756938 100644 --- a/middlewares/authenticate.go +++ b/middlewares/authenticate.go @@ -1,12 +1,23 @@ package middlewares import ( + "fmt" + "net/http" + "strings" + conf "github.com/muety/wakapi/config" "github.com/muety/wakapi/models" "github.com/muety/wakapi/services" "github.com/muety/wakapi/utils" - "net/http" - "strings" +) + +const ( + // queryApiKey is the query parameter name for api key. + queryApiKey = "api_key" +) + +var ( + errEmptyKey = fmt.Errorf("the api_key is empty") ) type AuthenticateMiddleware struct { @@ -45,7 +56,10 @@ func (m *AuthenticateMiddleware) ServeHTTP(w http.ResponseWriter, r *http.Reques user, err := m.tryGetUserByCookie(r) if err != nil { - user, err = m.tryGetUserByApiKey(r) + user, err = m.tryGetUserByApiKeyHeader(r) + } + if err != nil { + user, err = m.tryGetUserByApiKeyQuery(r) } if err != nil || user == nil { @@ -77,7 +91,7 @@ func (m *AuthenticateMiddleware) isOptional(requestPath string) bool { return false } -func (m *AuthenticateMiddleware) tryGetUserByApiKey(r *http.Request) (*models.User, error) { +func (m *AuthenticateMiddleware) tryGetUserByApiKeyHeader(r *http.Request) (*models.User, error) { key, err := utils.ExtractBearerAuth(r) if err != nil { return nil, err @@ -92,6 +106,20 @@ func (m *AuthenticateMiddleware) tryGetUserByApiKey(r *http.Request) (*models.Us return user, nil } +func (m *AuthenticateMiddleware) tryGetUserByApiKeyQuery(r *http.Request) (*models.User, error) { + key := r.URL.Query().Get(queryApiKey) + var user *models.User + userKey := strings.TrimSpace(key) + if userKey == "" { + return nil, errEmptyKey + } + user, err := m.userSrvc.GetUserByKey(userKey) + if err != nil { + return nil, err + } + return user, nil +} + func (m *AuthenticateMiddleware) tryGetUserByCookie(r *http.Request) (*models.User, error) { username, err := utils.ExtractCookieAuth(r, m.config) if err != nil { diff --git a/middlewares/authenticate_test.go b/middlewares/authenticate_test.go index 2d4201f..019a5b8 100644 --- a/middlewares/authenticate_test.go +++ b/middlewares/authenticate_test.go @@ -3,14 +3,16 @@ package middlewares import ( "encoding/base64" "fmt" + "net/http" + "net/url" + "testing" + "github.com/muety/wakapi/mocks" "github.com/muety/wakapi/models" "github.com/stretchr/testify/assert" - "net/http" - "testing" ) -func TestAuthenticateMiddleware_tryGetUserByApiKey_Success(t *testing.T) { +func TestAuthenticateMiddleware_tryGetUserByApiKeyHeader_Success(t *testing.T) { testApiKey := "z5uig69cn9ut93n" testToken := base64.StdEncoding.EncodeToString([]byte(testApiKey)) testUser := &models.User{ApiKey: testApiKey} @@ -26,13 +28,13 @@ func TestAuthenticateMiddleware_tryGetUserByApiKey_Success(t *testing.T) { sut := NewAuthenticateMiddleware(userServiceMock) - result, err := sut.tryGetUserByApiKey(mockRequest) + result, err := sut.tryGetUserByApiKeyHeader(mockRequest) assert.Nil(t, err) assert.Equal(t, testUser, result) } -func TestAuthenticateMiddleware_tryGetUserByApiKey_InvalidHeader(t *testing.T) { +func TestAuthenticateMiddleware_tryGetUserByApiKeyHeader_Invalid(t *testing.T) { testApiKey := "z5uig69cn9ut93n" testToken := base64.StdEncoding.EncodeToString([]byte(testApiKey)) @@ -47,10 +49,52 @@ func TestAuthenticateMiddleware_tryGetUserByApiKey_InvalidHeader(t *testing.T) { sut := NewAuthenticateMiddleware(userServiceMock) - result, err := sut.tryGetUserByApiKey(mockRequest) + result, err := sut.tryGetUserByApiKeyHeader(mockRequest) assert.Error(t, err) assert.Nil(t, result) } +func TestAuthenticateMiddleware_tryGetUserByApiKeyQuery_Success(t *testing.T) { + testApiKey := "z5uig69cn9ut93n" + testUser := &models.User{ApiKey: testApiKey} + + mockRequest := &http.Request{ + URL: &url.URL{ + RawQuery: fmt.Sprintf("api_token=%s", testApiKey), + }, + } + + userServiceMock := new(mocks.UserServiceMock) + userServiceMock.On("GetUserByKey", testApiKey).Return(testUser, nil) + + sut := NewAuthenticateMiddleware(userServiceMock) + + result, err := sut.tryGetUserByApiKeyQuery(mockRequest) + + assert.Nil(t, err) + assert.Equal(t, testUser, result) +} + +func TestAuthenticateMiddleware_tryGetUserByApiKeyQuery_Invalid(t *testing.T) { + testApiKey := "z5uig69cn9ut93n" + + mockRequest := &http.Request{ + URL: &url.URL{ + // Use the wrong parameter name. + RawQuery: fmt.Sprintf("token=%s", testApiKey), + }, + } + + userServiceMock := new(mocks.UserServiceMock) + + sut := NewAuthenticateMiddleware(userServiceMock) + + result, actualErr := sut.tryGetUserByApiKeyQuery(mockRequest) + + assert.Error(t, actualErr) + assert.Equal(t, errEmptyKey, actualErr) + assert.Nil(t, result) +} + // TODO: somehow test cookie auth function diff --git a/testing/Wakapi API Tests.postman_collection.json b/testing/Wakapi API Tests.postman_collection.json index 44f2327..eb1d577 100644 --- a/testing/Wakapi API Tests.postman_collection.json +++ b/testing/Wakapi API Tests.postman_collection.json @@ -1,6 +1,6 @@ { "info": { - "_postman_id": "36595622-81dc-4f4a-826e-345ae63fc83b", + "_postman_id": "da93a75e-e931-4f00-80b8-428f0e7ae824", "name": "Wakapi API Tests", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, @@ -251,6 +251,105 @@ } }, "response": [] + }, + { + "name": "Authenticate (header)", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Status code is 200\", function () {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disableCookies": true, + "followRedirects": false + }, + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{WRITEUSER_TOKEN}}", + "type": "string" + } + ] + }, + "method": "GET", + "header": [], + "url": { + "raw": "{{BASE_URL}}/api/summary?interval=today", + "host": [ + "{{BASE_URL}}" + ], + "path": [ + "api", + "summary" + ], + "query": [ + { + "key": "interval", + "value": "today" + } + ] + } + }, + "response": [] + }, + { + "name": "Authenticate (query param)", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.test(\"Status code is 200\", function () {", + " pm.response.to.have.status(200);", + "});" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disableCookies": true, + "followRedirects": false + }, + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [], + "url": { + "raw": "{{BASE_URL}}/api/summary?interval=today&api_key={{WRITEUSER_API_KEY}}", + "host": [ + "{{BASE_URL}}" + ], + "path": [ + "api", + "summary" + ], + "query": [ + { + "key": "interval", + "value": "today" + }, + { + "key": "api_key", + "value": "{{WRITEUSER_API_KEY}}" + } + ] + } + }, + "response": [] } ] }, diff --git a/testing/run_api_tests.sh b/testing/run_api_tests.sh index 6c0c9ac..8155d02 100755 --- a/testing/run_api_tests.sh +++ b/testing/run_api_tests.sh @@ -1,9 +1,7 @@ #!/bin/bash -if [ ! -f "wakapi" ]; then - echo "Wakapi executable not found. Compiling." - go build -fi +echo "Compiling." +go build if ! command -v newman &> /dev/null then