github.com/stakater/IngressMonitorController@v1.0.103/pkg/monitors/uptimerobot/uptime-mappers.go (about) 1 package uptimerobot 2 3 import ( 4 "strconv" 5 "strings" 6 7 "github.com/stakater/IngressMonitorController/pkg/models" 8 "github.com/stakater/IngressMonitorController/pkg/util" 9 ) 10 11 func UptimeMonitorMonitorToBaseMonitorMapper(uptimeMonitor UptimeMonitorMonitor) *models.Monitor { 12 var m models.Monitor 13 14 m.Name = uptimeMonitor.FriendlyName 15 m.URL = uptimeMonitor.URL 16 m.ID = strconv.Itoa(uptimeMonitor.ID) 17 18 var annotations = map[string]string{ 19 "uptimerobot.monitor.stakater.com/interval": strconv.Itoa(uptimeMonitor.Interval), 20 } 21 22 alertContacts := make([]string,0) 23 if uptimeMonitor.AlertContacts != nil { 24 for _, alertContact := range uptimeMonitor.AlertContacts { 25 contact := alertContact.ID + "_" + strconv.Itoa(alertContact.Threshold) + "_" + strconv.Itoa(alertContact.Recurrence) 26 alertContacts = append(alertContacts, contact) 27 } 28 annotations["uptimerobot.monitor.stakater.com/alert-contacts"] = strings.Join(alertContacts,"-") 29 } 30 31 m.Annotations = annotations 32 33 return &m 34 } 35 36 func UptimeMonitorMonitorsToBaseMonitorsMapper(uptimeMonitors []UptimeMonitorMonitor) []models.Monitor { 37 var monitors []models.Monitor 38 39 for index := 0; index < len(uptimeMonitors); index++ { 40 monitors = append(monitors, *UptimeMonitorMonitorToBaseMonitorMapper(uptimeMonitors[index])) 41 } 42 43 return monitors 44 } 45 46 func UptimeStatusPageToBaseStatusPageMapper(uptimePublicStatusPage UptimePublicStatusPage) *UpTimeStatusPage { 47 var s UpTimeStatusPage 48 49 s.Name = uptimePublicStatusPage.FriendlyName 50 s.Monitors = util.SliceItoa(uptimePublicStatusPage.Monitors) 51 s.ID = strconv.Itoa(uptimePublicStatusPage.ID) 52 53 return &s 54 }