mirror of https://github.com/statping/statping
				
				
				
			
		
			
				
	
	
		
			34 lines
		
	
	
		
			884 B
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			884 B
		
	
	
	
		
			Go
		
	
	
| package services
 | |
| 
 | |
| import (
 | |
| 	"github.com/statping/statping/types/failures"
 | |
| 	"github.com/statping/statping/types/notifications"
 | |
| )
 | |
| 
 | |
| var (
 | |
| 	allNotifiers = make(map[string]ServiceNotifier)
 | |
| )
 | |
| 
 | |
| func AllNotifiers() map[string]ServiceNotifier {
 | |
| 	return allNotifiers
 | |
| }
 | |
| 
 | |
| func ReturnNotifier(method string) ServiceNotifier {
 | |
| 	return allNotifiers[method]
 | |
| }
 | |
| 
 | |
| func FindNotifier(method string) *notifications.Notification {
 | |
| 	n := allNotifiers[method]
 | |
| 	if n != nil {
 | |
| 		return n.Select()
 | |
| 	}
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| type ServiceNotifier interface {
 | |
| 	OnSuccess(*Service) error                    // OnSuccess is triggered when a service is successful
 | |
| 	OnFailure(*Service, *failures.Failure) error // OnFailure is triggered when a service is failing
 | |
| 	OnTest() (string, error)                     // OnTest is triggered for testing
 | |
| 	Select() *notifications.Notification         // OnTest is triggered for testing
 | |
| }
 |