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
|
||
|
}
|