You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
948 B
38 lines
948 B
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 |
|
}
|
|
|