This repository has been archived on 2023-04-18. You can view files and clone it, but cannot push or open issues or pull requests.
notificationarr/internal/domain/sonarr_webhook_payload.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
}