46 lines
869 B
Go
46 lines
869 B
Go
package domain
|
|
|
|
type SonarrEventType string
|
|
|
|
const (
|
|
SonarrEventTypeDownload SonarrEventType = "Download"
|
|
SonarrEventTypeTest SonarrEventType = "Test"
|
|
)
|
|
|
|
var (
|
|
ErrUnsupportedSonarrEventType = NewError(WithCode(ErrorCodeValidation), WithMessage("unsupported event type"))
|
|
)
|
|
|
|
func NewSonarrEventType(s string) (SonarrEventType, error) {
|
|
conv := SonarrEventType(s)
|
|
switch conv {
|
|
case SonarrEventTypeDownload,
|
|
SonarrEventTypeTest:
|
|
return conv, nil
|
|
default:
|
|
return "", ErrUnsupportedSonarrEventType
|
|
}
|
|
}
|
|
|
|
func (s SonarrEventType) String() string {
|
|
return string(s)
|
|
}
|
|
|
|
type SonarrSeries struct {
|
|
ID int64
|
|
Title string
|
|
}
|
|
|
|
type SonarrEpisode struct {
|
|
ID int64
|
|
EpisodeNumber int16
|
|
SeasonNumber int16
|
|
Title string
|
|
}
|
|
|
|
type SonarrWebhookPayload struct {
|
|
EventType SonarrEventType
|
|
Series SonarrSeries
|
|
Episodes []SonarrEpisode
|
|
}
|