diff --git a/CHANGELOG.md b/CHANGELOG.md
index b80f70fe..5dc37530 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,11 @@
+# 0.90.79 (01-24-2022)
+- Updated Russian Language - Thanks meatlayer
+- Docker file fix for BASE_PATH and health checks - Thanks michaelkrieger
+- Removed statping emailer notifier (not SMTP Mail)
+- Fixes for notification failures (Issue statping#911) - Thanks glanchow
+- Updated Home page uptime wording (24hr/7days) - Thanks Jonathanrbarney & thatInfrastructureGuy
+- [GITHUB] Removed mailer tests
+
# 0.90.78 (09-15-2021)
- HTTP Webhooks accept multiple HTTP Headers
- Modified Telegram notifier to allow chat_ids
diff --git a/Dockerfile b/Dockerfile
index ca503f78..18aac4fc 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -60,9 +60,10 @@ ENV IS_DOCKER=true
ENV SASS=/usr/local/bin/sassc
ENV STATPING_DIR=/app
ENV PORT=8080
+ENV BASE_PATH=""
EXPOSE $PORT
-HEALTHCHECK --interval=60s --timeout=10s --retries=3 CMD curl -s "http://localhost:$PORT/health" | jq -r -e ".online==true"
+HEALTHCHECK --interval=60s --timeout=10s --retries=3 CMD if [ -z "$BASE_PATH" ]; then HEALTHPATH="/health"; else HEALTHPATH="/$BASE_PATH/health" ; fi && curl -s "http://localhost:80$HEALTHPATH" | jq -r -e ".online==true"
CMD statping --port $PORT
diff --git a/dev/postman.json b/dev/postman.json
index 3e2f60ff..cd061232 100644
--- a/dev/postman.json
+++ b/dev/postman.json
@@ -4205,7 +4205,7 @@
"",
"pm.test(\"View All Notifiers\", function () {",
" var jsonData = pm.response.json();",
- " pm.expect(jsonData.length).to.eql(14);",
+ " pm.expect(jsonData.length).to.eql(13);",
"});"
],
"type": "text/javascript"
@@ -4598,56 +4598,6 @@
"body": "{\n \"success\": true,\n \"response\": \"
There's been a glitch… | SlackThere’s been a glitch…
We’re not quite sure what went wrong. You can go back, or try looking on our Help Center if you need a hand.
\\n\\n\\n\\n\"\n}"
}
]
- },
- {
- "name": "Statping Emailer",
- "event": [
- {
- "listen": "test",
- "script": {
- "id": "00f5c79e-e927-4305-b276-265b4d51b1e1",
- "exec": [
- ""
- ],
- "type": "text/javascript"
- }
- }
- ],
- "request": {
- "auth": {
- "type": "noauth"
- },
- "method": "POST",
- "header": [
- {
- "key": "Content-Type",
- "name": "Content-Type",
- "type": "text",
- "value": "application/json"
- }
- ],
- "body": {
- "mode": "raw",
- "raw": "{\n \"email\": \"info@socialeck.com\",\n \"core\": {\n \"allow_reports\": true,\n \"created_at\": \"2020-06-21T05:00:12.735144154Z\",\n \"description\": \"This status page has sample data included\",\n \"domain\": \"http://localhost:8080\",\n \"footer\": null,\n \"language\": \"en\",\n \"migration_id\": 1592715612,\n \"name\": \"Statping Sample Data\",\n \"setup\": true,\n \"started_on\": \"2020-06-21T05:01:01.406134998Z\",\n \"updated_at\": \"2020-06-21T05:00:59.652965634Z\",\n \"using_cdn\": false,\n \"version\": \"0.90.54\"\n },\n \"service\": {\n \"name\": \"Statping Website\",\n \"domain\": \"https://statping.com\",\n \"last_error\": \"2020-06-21T01:01:01.406134998Z\",\n \"last_success\": \"2020-06-21T05:01:01.406134998Z\",\n \"expected\": \"\",\n \"online\": true,\n \"expected_status\": 200,\n \"check_interval\": 30,\n \"type\": \"http\",\n \"method\": \"GET\",\n \"post_data\": \"\",\n \"port\": 0,\n \"timeout\": 30,\n \"order_id\": 0\n },\n \"failure\": {\n \"created_at\": \"2020-06-21T05:01:00.67942464Z\",\n \"error_code\": 406,\n \"id\": 1613,\n \"issue\": \"HTTP Status Code 406 did not match 200\",\n \"method_id\": 0,\n \"ping\": 10889\n }\n}",
- "options": {
- "raw": {}
- }
- },
- "url": {
- "raw": "https://news.statping.com/notifier",
- "protocol": "https",
- "host": [
- "news",
- "statping",
- "com"
- ],
- "path": [
- "notifier"
- ]
- },
- "description": "This endpoint will send emails from our servers rather than you using your own SMTP email settings. Once you save the Statping Emailer Notifier, we will send you a verification email. Once you've confirmed your email address you will recieve emails whenever your service status changes."
- },
- "response": []
}
],
"description": "Statping contains multiple notifiers that will send you a notification whenever a service become offline, or online. You can create your own 3rd party notifier by reading more on the [Notifiers Wiki](https://github.com/statping-ng/statping-ng/wiki/Notifiers) on the Github repo.",
diff --git a/frontend/src/components/Service/ServiceTopStats.vue b/frontend/src/components/Service/ServiceTopStats.vue
index 9104b549..0a9a48ef 100644
--- a/frontend/src/components/Service/ServiceTopStats.vue
+++ b/frontend/src/components/Service/ServiceTopStats.vue
@@ -6,11 +6,11 @@
{{service.online_24_hours}} %
- {{$t('last_uptime', [24, $tc('hour', 24)])}}
+ {{$t('last_uptime')}} 24 {{$tc('hour', 24)}}
{{service.online_7_days}} %
- {{$t('last_uptime', [7, $tc('day', 7)])}}
+ {{$t('last_uptime')}} 7 {{$tc('day', 7)}}
diff --git a/frontend/src/languages/chinese.js b/frontend/src/languages/chinese.js
index e594cf48..f8ecb465 100755
--- a/frontend/src/languages/chinese.js
+++ b/frontend/src/languages/chinese.js
@@ -52,8 +52,8 @@ const chinese = {
days_ago: "天前",
today: "今天",
week: "周",
- month: "月份",
- day: "日",
+ month: "月份 | 月数",
+ day: "日 | 天数",
hour: "小时",
minute: "分钟",
failures_24_hours: "过去 24 小时失败",
@@ -139,4 +139,4 @@ const chinese = {
service_create: "创建服务"
}
-export default chinese
\ No newline at end of file
+export default chinese
diff --git a/frontend/src/languages/english.js b/frontend/src/languages/english.js
index cd34b643..b55843e1 100644
--- a/frontend/src/languages/english.js
+++ b/frontend/src/languages/english.js
@@ -51,11 +51,11 @@ const english = {
service_offline_time: "Service has been offline for",
days_ago: "Days Ago",
today: "Today",
- week: "Week",
- month: "Month",
- day: "Day",
- hour: "Hour",
- minute: "Minute",
+ week: "Week | Weeks",
+ month: "Month | Months",
+ day: "Day | Days",
+ hour: "Hour | Hours",
+ minute: "Minute | Minutes",
failures_24_hours: "Failures last 24 hours",
no_services: "You currently don't have any services!",
theme: "Theme",
@@ -139,4 +139,4 @@ const english = {
service_create: "Create Service"
}
-export default english
\ No newline at end of file
+export default english
diff --git a/frontend/src/languages/french.js b/frontend/src/languages/french.js
index 4115f01c..68b204a8 100644
--- a/frontend/src/languages/french.js
+++ b/frontend/src/languages/french.js
@@ -51,11 +51,11 @@ const french = {
service_offline_time: "Le service a été hors ligne pour",
days_ago: "Il y a jours",
today: "Aujourd'hui",
- week: "Semaine",
+ week: "Semaine | Semaines",
month: "Mois",
- day: "Jour",
- hour: "Heure",
- minute: "Minute",
+ day: "Jour | Jours",
+ hour: "Heure | Heures",
+ minute: "Minute | Minutes",
failures_24_hours: "Les échecs durent 24 heures",
no_services: "Vous n'avez actuellement aucun service !",
theme: "Thème",
@@ -109,7 +109,7 @@ const french = {
notify_before: "Avertir avant",
message_create: "Créer une annonce",
message_edit: "Modifier l'annonce",
- minutes: "Procès-Verbal",
+ minutes: "Minutes",
hours: "Heures",
days: "Jours",
user_create: "Créer un utilisateur",
@@ -139,4 +139,4 @@ const french = {
service_create: "Créer un service"
}
-export default french
\ No newline at end of file
+export default french
diff --git a/frontend/src/languages/german.js b/frontend/src/languages/german.js
index 362d37a4..acffafa1 100644
--- a/frontend/src/languages/german.js
+++ b/frontend/src/languages/german.js
@@ -51,11 +51,11 @@ const german = {
service_offline_time: "Dienst war offline für",
days_ago: "Tage vergangen",
today: "Heute",
- week: "Woche",
- month: "Monat",
- day: "Tag",
- hour: "Stunde",
- minute: "Minute",
+ week: "Woche | Wochen",
+ month: "Monat | Monate",
+ day: "Tag | Tage",
+ hour: "Stunde | Stunden",
+ minute: "Minute | Minuten",
failures_24_hours: "Ausfälle letzte 24 Stunden",
no_services: "Sie haben derzeit keine Dienste!",
theme: "Thema",
diff --git a/frontend/src/languages/italian.js b/frontend/src/languages/italian.js
index ccf9a417..fcdc38dd 100755
--- a/frontend/src/languages/italian.js
+++ b/frontend/src/languages/italian.js
@@ -51,10 +51,10 @@ const italian = {
service_offline_time: "Il servizio è stato offline per",
days_ago: "Giorni fa",
today: "Oggi",
- week: "Settimana",
- month: "Mese",
- day: "Giorno",
- hour: "Ora",
+ week: "Settimana | Settimane",
+ month: "Mese | Mesi",
+ day: "Giorno | Giorni",
+ hour: "Ora | Ore",
minute: "Minuti",
failures_24_hours: "Errori nelle ultime 24 ore",
no_services: "Al momento non hai alcun servizio!",
@@ -139,4 +139,4 @@ const italian = {
service_create: "Crea servizio"
}
-export default italian
\ No newline at end of file
+export default italian
diff --git a/frontend/src/languages/japanese.js b/frontend/src/languages/japanese.js
index eed5a90c..9c8fea1e 100755
--- a/frontend/src/languages/japanese.js
+++ b/frontend/src/languages/japanese.js
@@ -51,11 +51,11 @@ const japanese = {
service_offline_time: "のサービスがオフラインになりました",
days_ago: "日前",
today: "今日",
- week: "週数",
- month: "月",
- day: "日",
- hour: "アワー",
- minute: "分",
+ week: "週数 | 週",
+ month: "月 | ヶ月",
+ day: "日 | 日数",
+ hour: "アワー | 時間",
+ minute: "分 | 議事録",
failures_24_hours: "過去 24 時間の障害",
no_services: "現在、サービスをお持ちになりません。",
theme: "テーマ",
@@ -139,4 +139,4 @@ const japanese = {
service_create: "サービスの作成"
}
-export default japanese
\ No newline at end of file
+export default japanese
diff --git a/frontend/src/languages/korean.js b/frontend/src/languages/korean.js
index 2cba872f..4edf140b 100755
--- a/frontend/src/languages/korean.js
+++ b/frontend/src/languages/korean.js
@@ -55,7 +55,7 @@ const korean = {
month: "월",
day: "일",
hour: "시간",
- minute: "분",
+ minute: "분 | 의사록",
failures_24_hours: "지난 24시간 동안 장애 발생",
no_services: "현재 서비스가 없습니다!",
theme: "테마",
@@ -139,4 +139,4 @@ const korean = {
service_create: "서비스 만들기"
}
-export default korean
\ No newline at end of file
+export default korean
diff --git a/frontend/src/languages/russian.js b/frontend/src/languages/russian.js
index 4a578938..90288d44 100644
--- a/frontend/src/languages/russian.js
+++ b/frontend/src/languages/russian.js
@@ -1,12 +1,12 @@
const russian = {
settings: "Настройки",
- dashboard: "Панель управления",
- services: "служб",
- service: "обслуживания",
+ dashboard: "Панель",
+ services: "Сервисы",
+ service: "Сервис",
failures: "Сбои",
users: "Пользователи",
login: "Войти",
- logout: "Выход из системы",
+ logout: "Выход",
online: "Онлайн",
offline: "Оффлайн",
configs: "Конфигурация",
@@ -22,42 +22,42 @@ const russian = {
regen_api: "Регенерация ключей API",
regen_desc: "API Secret используется для чтения создания обновлений и удаления маршрутов. Вы можете регенерировать ключи API, если вам нужно.",
visibility: "Видимость",
- group: "Группы",
+ group: "Группа",
group_create: "Создать группу",
group_update: "Обновить группу",
- group_public_desc: "Показать групповые услуги публике",
+ group_public_desc: "Показавать группу публично всем",
groups: "Группы",
no_group: "Нет группы",
- public: "Общественный",
- private: "Частные",
+ public: "Публичный",
+ private: "Приватный",
announcements: "Объявления",
- notifiers: "Уведомлятели",
+ notifiers: "Способы уведомлений",
logs: "Журналы",
- help: "Помогите",
+ help: "Помощь",
type: "Тип",
edit: "Редактировать",
update: "Обновить",
- create: "Создайте",
+ create: "Создать",
view: "Посмотреть",
save: "Сохранить",
title: "Название",
- status: "положению",
- begins: "Начинается",
- total_services: "Всего услуг",
+ status: "Статус",
+ begins: "Начало",
+ total_services: "Всего сервисов",
online_services: "Онлайн-сервисы",
request_timeout: "Тайм-аут запроса",
service_never_online: "Сервис никогда не был в сети",
service_online_check: "Проверено онлайн",
- service_offline_time: "Служба была отключена для",
+ service_offline_time: "Сервис был отключен для",
days_ago: "Дней назад",
today: "Сегодня",
week: "Недели",
- month: "Месяц",
- day: "День",
- hour: "Час",
- minute: "Минута",
+ month: "Месяц | Месяцы",
+ day: "День | Дней",
+ hour: "Час | Часов",
+ minute: "Минута | Минуты",
failures_24_hours: "Сбои за 24 часа",
- no_services: "В настоящее время у вас нет услуг!",
+ no_services: "В настоящее время у вас нет сервисов!",
theme: "Тема",
cache: "Кэш",
authentication: "Проверка подлинности",
@@ -76,20 +76,20 @@ const russian = {
db_password: "Пароль базы данных",
db_database: "Имя базы данных",
send_reports: "Отправка отчетов об ошибках",
- send_reports_desc: "Отправить ошибки в Statping для отладки",
+ send_reports_desc: "Отправлять ошибки в Statping для отладки",
project_name: "Имя страницы состояния",
description: "Описание",
domain: "Домен",
enable_cdn: "Включить CDN",
- newsletter: "Информационный бюллетень",
- newsletter_note: "Мы отправим вам только сообщение по электронной почте для серьезных изменений",
+ newsletter: "Рассылка новостей",
+ newsletter_note: "Мы отправим вам электронное письмо только в случае серьезных изменений",
loading: "Загрузка",
save_settings: "Сохранить настройки",
average_response: "Средний ответ",
last_uptime: "Время безотказной работы",
sign_in: "Войти",
last_login: "Последний вход",
- admin: "Администратор",
+ admin: "Админ",
user: "Пользователя",
failed: "Не удалось",
wrong_login: "Неверное имя пользователя или пароль",
@@ -99,7 +99,7 @@ const russian = {
assets_btn: "Включить локальные ресурсы",
assets_loading: "Создание компонентов",
assets_dir: "Каталог активов",
- footer: "Подколонтитул",
+ footer: "Нижний колонтитул (footer)",
footer_notes: "Вы можете использовать HTML-теги в нижнем колонтитуле",
global_announcement: "Глобальное объявление",
announcement_date: "Диапазон дат объявления",
@@ -114,29 +114,29 @@ const russian = {
days: "Дни",
user_create: "Создать пользователя",
user_update: "Обновить пользователя",
- administrator: "Администратора",
- checkins: "Чеккинс",
+ administrator: "Администратор",
+ checkins: "Проверки",
incidents: "Инциденты",
service_info: "Информация о сервисе",
- service_name: "Имя службы",
- service_type: "Тип услуги",
+ service_name: "Имя сервиса",
+ service_type: "Тип сервиса",
permalink: "URL-адрес Постоянной ссылки",
- service_public: "Государственная служба",
+ service_public: "Видимость публично",
check_interval: "Интервал проверки",
- service_endpoint: "Конечная точка службы",
- service_check: "Тип проверки службы",
+ service_endpoint: "Адрес проверяемого хоста",
+ service_check: "Тип проверки",
service_timeout: "Тайм-аут запроса",
expected_resp: "Ожидаемый ответ",
expected_code: "Код ожидаемого состояния",
- follow_redir: "Следуйте за перенаправленными",
- verify_ssl: "Проверить SSL",
+ follow_redir: "Вкл. следование по редиректам",
+ verify_ssl: "Проверять SSL",
tls_cert: "Использовать сертификат TLS",
notification_opts: "Параметры уведомления",
notifications_enable: "Включить уведомления",
notify_after: "Уведомлять после сбоев",
notify_all: "Уведомлять обо всех изменениях",
- service_update: "Обновить службу",
- service_create: "Создать службу"
+ service_update: "Обновить сервис",
+ service_create: "Создать сервис"
}
-export default russian
\ No newline at end of file
+export default russian
diff --git a/frontend/src/languages/spanish.js b/frontend/src/languages/spanish.js
index ea6e4293..09ae1453 100644
--- a/frontend/src/languages/spanish.js
+++ b/frontend/src/languages/spanish.js
@@ -51,11 +51,11 @@ const spanish = {
service_offline_time: "El servicio ha estado desconectado para",
days_ago: "Hace días",
today: "Hoy",
- week: "Semana",
- month: "Mes",
- day: "Día",
- hour: "Hora",
- minute: "Minuto",
+ week: "Semana | Semanas",
+ month: "Mes | Meses",
+ day: "Día | Días",
+ hour: "Hora | Horas",
+ minute: "Minuto | Minutos",
failures_24_hours: "Fallos de las últimas 24 horas",
no_services: "¡Actualmente no tienes ningún servicio!",
theme: "Tema",
@@ -139,4 +139,4 @@ const spanish = {
service_create: "Crear servicio"
}
-export default spanish
\ No newline at end of file
+export default spanish
diff --git a/notifiers/notifiers.go b/notifiers/notifiers.go
index 1ffc2848..fe740aed 100644
--- a/notifiers/notifiers.go
+++ b/notifiers/notifiers.go
@@ -36,7 +36,6 @@ func InitNotifiers() {
Webhook,
Mobile,
Pushover,
- statpingMailer,
Gotify,
AmazonSNS,
)
diff --git a/notifiers/statping_emailer.go b/notifiers/statping_emailer.go
deleted file mode 100644
index c6026c0e..00000000
--- a/notifiers/statping_emailer.go
+++ /dev/null
@@ -1,106 +0,0 @@
-package notifiers
-
-import (
- "bytes"
- "encoding/json"
- "github.com/statping-ng/statping-ng/types/core"
- "github.com/statping-ng/statping-ng/types/failures"
- "github.com/statping-ng/statping-ng/types/notifications"
- "github.com/statping-ng/statping-ng/types/notifier"
- "github.com/statping-ng/statping-ng/types/services"
- "github.com/statping-ng/statping-ng/utils"
- "time"
-)
-
-var _ notifier.Notifier = (*statpingEmailer)(nil)
-
-const (
- statpingEmailerName = "statping_emailer"
- statpingEmailerHost = "https://news.statping.com"
-)
-
-type statpingEmailer struct {
- *notifications.Notification
-}
-
-func (s *statpingEmailer) Select() *notifications.Notification {
- return s.Notification
-}
-
-func (s *statpingEmailer) Valid(values notifications.Values) error {
- return nil
-}
-
-var statpingMailer = &statpingEmailer{¬ifications.Notification{
- Method: statpingEmailerName,
- Title: "Email",
- Description: "Send an email when a service becomes offline or back online using Statping's email service. You will need to verify your email address.",
- Author: "Hunter Long",
- AuthorUrl: "https://github.com/hunterlong",
- Delay: time.Duration(10 * time.Second),
- Icon: "fas envelope-square",
- Limits: 60,
- Form: []notifications.NotificationForm{{
- Type: "email",
- Title: "Send to Email Address",
- Placeholder: "info@statping.com",
- DbField: "Host",
- Required: true,
- }}},
-}
-
-// Send will send a HTTP Post to the slack webhooker API. It accepts type: string
-func (s *statpingEmailer) sendStatpingEmail(msg statpingMail) (string, error) {
- data, _ := json.Marshal(msg)
- resp, _, err := utils.HttpRequest(statpingEmailerHost+"/notifier", "POST", "application/json", nil, bytes.NewBuffer(data), time.Duration(10*time.Second), true, nil)
- if err != nil {
- return "", err
- }
- return string(resp), nil
-}
-
-func (s *statpingEmailer) OnTest() (string, error) {
- return "", nil
-}
-
-type statpingMail struct {
- Email string `json:"email"`
- Core core.Core `json:"core,omitempty"`
- Service services.Service `json:"service,omitempty"`
- Failure failures.Failure `json:"failure,omitempty"`
-}
-
-// OnFailure will trigger failing service
-func (s *statpingEmailer) OnFailure(srv services.Service, f failures.Failure) (string, error) {
- ee := statpingMail{
- Email: s.Host.String,
- Core: *core.App,
- Service: srv,
- Failure: f,
- }
- return s.sendStatpingEmail(ee)
-}
-
-// OnSuccess will trigger successful service
-func (s *statpingEmailer) OnSuccess(srv services.Service) (string, error) {
- ee := statpingMail{
- Email: s.Host.String,
- Core: *core.App,
- Service: srv,
- Failure: failures.Failure{},
- }
- return s.sendStatpingEmail(ee)
-}
-
-// OnSave will trigger when this notifier is saved
-func (s *statpingEmailer) OnSave() (string, error) {
- ee := statpingMail{
- Email: s.Host.String,
- Core: *core.App,
- Service: services.Service{},
- Failure: failures.Failure{},
- }
- out, err := s.sendStatpingEmail(ee)
- log.Println("statping emailer response", out)
- return out, err
-}
diff --git a/notifiers/statping_emailer_test.go b/notifiers/statping_emailer_test.go
deleted file mode 100644
index 4c72b3f9..00000000
--- a/notifiers/statping_emailer_test.go
+++ /dev/null
@@ -1,70 +0,0 @@
-package notifiers
-
-import (
- "github.com/statping-ng/statping-ng/database"
- "github.com/statping-ng/statping-ng/types/core"
- "github.com/statping-ng/statping-ng/types/failures"
- "github.com/statping-ng/statping-ng/types/notifications"
- "github.com/statping-ng/statping-ng/types/null"
- "github.com/statping-ng/statping-ng/types/services"
- "github.com/statping-ng/statping-ng/utils"
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
- "testing"
- "time"
-)
-
-var (
- testEmail string
-)
-
-func TestStatpingEmailerNotifier(t *testing.T) {
- err := utils.InitLogs()
- require.Nil(t, err)
-
- t.Parallel()
- db, err := database.OpenTester()
- require.Nil(t, err)
- db.AutoMigrate(¬ifications.Notification{})
- notifications.SetDB(db)
- core.Example()
-
- testEmail = utils.Params.GetString("TEST_EMAIL")
- statpingMailer.Host = null.NewNullString(testEmail)
- statpingMailer.Enabled = null.NewNullBool(true)
-
- if testEmail == "" {
- t.Log("statping email notifier testing skipped, missing TEST_EMAIL environment variable")
- t.SkipNow()
- }
-
- t.Run("Load statping emailer", func(t *testing.T) {
- statpingMailer.Host = null.NewNullString(testEmail)
- statpingMailer.Delay = time.Duration(100 * time.Millisecond)
- statpingMailer.Limits = 3
- Add(statpingMailer)
- assert.Equal(t, "Hunter Long", statpingMailer.Author)
- assert.Equal(t, testEmail, statpingMailer.Host.String)
- })
-
- t.Run("statping emailer Within Limits", func(t *testing.T) {
- ok := statpingMailer.CanSend()
- assert.True(t, ok)
- })
-
- t.Run("statping emailer OnSave", func(t *testing.T) {
- _, err := statpingMailer.OnSave()
- assert.Nil(t, err)
- })
-
- t.Run("statping emailer OnFailure", func(t *testing.T) {
- _, err := statpingMailer.OnFailure(services.Example(false), failures.Example())
- assert.Nil(t, err)
- })
-
- t.Run("statping emailer OnSuccess", func(t *testing.T) {
- _, err := statpingMailer.OnSuccess(services.Example(true))
- assert.Nil(t, err)
- })
-
-}
diff --git a/types/services/notifications.go b/types/services/notifications.go
index f8ee67b1..c8a71374 100644
--- a/types/services/notifications.go
+++ b/types/services/notifications.go
@@ -23,9 +23,12 @@ func sendSuccess(s *Service) {
return
}
+ s.notifyAfterCount = 0
+
if s.prevOnline == s.Online {
return
}
+ s.prevOnline = true
for _, n := range allNotifiers {
notif := n.Select()
@@ -42,9 +45,6 @@ func sendSuccess(s *Service) {
notif.LastSent = utils.Now()
}
}
-
- s.prevOnline = true
- s.notifyAfterCount++
}
func sendFailure(s *Service, f *failures.Failure) {
@@ -63,6 +63,8 @@ func sendFailure(s *Service, f *failures.Failure) {
}
}
+ s.prevOnline = false
+
for _, n := range allNotifiers {
notif := n.Select()
if notif.CanSend() {
@@ -78,9 +80,6 @@ func sendFailure(s *Service, f *failures.Failure) {
notif.LastSent = utils.Now()
}
}
-
- s.prevOnline = false
- s.notifyAfterCount++
}
func logMessage(method string, msg string, error error, onSuccesss bool, serviceId int64) {
diff --git a/version.txt b/version.txt
index a8c28c37..d070d29d 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-0.90.78
+0.90.79