Add oauth token failure model and notification

This will allow me to mark when an oauth token fails and surface it to
the user so that they can re-up on their auth token.
This commit is contained in:
Eli Ribble 2025-11-11 20:09:11 +00:00
parent 0a74bd8345
commit a2e67e3d60
No known key found for this signature in database
28 changed files with 2375 additions and 246 deletions

View file

@ -186,3 +186,73 @@ func (e *Hashtype) Scan(value any) error {
return nil
}
// Enum values for Notificationtype
const (
NotificationtypeOauthTokenInvalidated Notificationtype = "oauth_token_invalidated"
)
func AllNotificationtype() []Notificationtype {
return []Notificationtype{
NotificationtypeOauthTokenInvalidated,
}
}
type Notificationtype string
func (e Notificationtype) String() string {
return string(e)
}
func (e Notificationtype) Valid() bool {
switch e {
case NotificationtypeOauthTokenInvalidated:
return true
default:
return false
}
}
// useful when testing in other packages
func (e Notificationtype) All() []Notificationtype {
return AllNotificationtype()
}
func (e Notificationtype) MarshalText() ([]byte, error) {
return []byte(e), nil
}
func (e *Notificationtype) UnmarshalText(text []byte) error {
return e.Scan(text)
}
func (e Notificationtype) MarshalBinary() ([]byte, error) {
return []byte(e), nil
}
func (e *Notificationtype) UnmarshalBinary(data []byte) error {
return e.Scan(data)
}
func (e Notificationtype) Value() (driver.Value, error) {
return string(e), nil
}
func (e *Notificationtype) Scan(value any) error {
switch x := value.(type) {
case string:
*e = Notificationtype(x)
case []byte:
*e = Notificationtype(x)
case nil:
return fmt.Errorf("cannot nil into Notificationtype")
default:
return fmt.Errorf("cannot scan type %T: %v", value, value)
}
if !e.Valid() {
return fmt.Errorf("invalid Notificationtype value: %s", *e)
}
return nil
}