mirror of
				https://github.com/owncast/owncast.git
				synced 2025-10-31 18:18:06 +08:00 
			
		
		
		
	 85e7af3d5f
			
		
	
	85e7af3d5f
	
	
	
		
			
			* chore(go): update go version to 1.20. Closes #2185 * chore(go): run better align against project To optimize struct field order. Closes #2870 * chore(go): update CI jobs to use Go 1.20 * fix(go): linter warnings for Go 1.20 update
		
			
				
	
	
		
			39 lines
		
	
	
		
			948 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			948 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package models
 | |
| 
 | |
| import (
 | |
| 	"time"
 | |
| 
 | |
| 	"github.com/owncast/owncast/utils"
 | |
| )
 | |
| 
 | |
| // Webhook is an event that is sent to 3rd party, external services with details about something that took place within an Owncast server.
 | |
| type Webhook struct {
 | |
| 	Timestamp time.Time   `json:"timestamp"`
 | |
| 	LastUsed  *time.Time  `json:"lastUsed"`
 | |
| 	URL       string      `json:"url"`
 | |
| 	Events    []EventType `json:"events"`
 | |
| 	ID        int         `json:"id"`
 | |
| }
 | |
| 
 | |
| // For an event to be seen as "valid" it must live in this slice.
 | |
| var validEvents = []EventType{
 | |
| 	MessageSent,
 | |
| 	UserJoined,
 | |
| 	UserNameChanged,
 | |
| 	VisibiltyToggled,
 | |
| 	StreamStarted,
 | |
| 	StreamStopped,
 | |
| 	StreamTitleUpdated,
 | |
| }
 | |
| 
 | |
| // HasValidEvents will verify that all the events provided are valid.
 | |
| // This is not a efficient method.
 | |
| func HasValidEvents(events []EventType) bool {
 | |
| 	for _, event := range events {
 | |
| 		if _, foundInSlice := utils.FindInSlice(validEvents, event); !foundInSlice {
 | |
| 			return false
 | |
| 		}
 | |
| 	}
 | |
| 	return true
 | |
| }
 |