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  }