pub struct NotificationChannel {
pub id: Uuid,
pub org_id: Uuid,
pub name: String,
pub kind: String,
pub config: Value,
pub enabled: bool,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
}Fields§
§id: Uuid§org_id: Uuid§name: String§kind: Stringemail | slack | pagerduty | webhook
config: ValuePer-kind settings (recipients, webhook URL, integration key, …). Sensitive fields are stored encrypted; callers handling them should round-trip through settings::encrypt_api_key.
enabled: bool§created_at: DateTime<Utc>§updated_at: DateTime<Utc>Implementations§
Source§impl NotificationChannel
impl NotificationChannel
pub async fn list_by_org( pool: &Pool<Postgres>, org_id: Uuid, ) -> Result<Vec<NotificationChannel>, Error>
pub async fn find_by_id( pool: &Pool<Postgres>, id: Uuid, ) -> Result<Option<NotificationChannel>, Error>
pub async fn create( pool: &Pool<Postgres>, input: CreateNotificationChannel<'_>, ) -> Result<NotificationChannel, Error>
Sourcepub async fn update(
pool: &Pool<Postgres>,
id: Uuid,
name: Option<&str>,
config: Option<&Value>,
enabled: Option<bool>,
) -> Result<Option<NotificationChannel>, Error>
pub async fn update( pool: &Pool<Postgres>, id: Uuid, name: Option<&str>, config: Option<&Value>, enabled: Option<bool>, ) -> Result<Option<NotificationChannel>, Error>
PATCH-style update. Any Some(_) field overwrites; None leaves it.
pub async fn delete(pool: &Pool<Postgres>, id: Uuid) -> Result<bool, Error>
Trait Implementations§
Source§impl Clone for NotificationChannel
impl Clone for NotificationChannel
Source§fn clone(&self) -> NotificationChannel
fn clone(&self) -> NotificationChannel
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for NotificationChannel
impl Debug for NotificationChannel
Source§impl<'de> Deserialize<'de> for NotificationChannel
impl<'de> Deserialize<'de> for NotificationChannel
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<NotificationChannel, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<NotificationChannel, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<'a, R> FromRow<'a, R> for NotificationChannelwhere
R: Row,
&'a str: ColumnIndex<R>,
Uuid: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
String: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
Value: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
bool: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
DateTime<Utc>: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
impl<'a, R> FromRow<'a, R> for NotificationChannelwhere
R: Row,
&'a str: ColumnIndex<R>,
Uuid: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
String: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
Value: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
bool: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
DateTime<Utc>: Decode<'a, <R as Row>::Database> + Type<<R as Row>::Database>,
Source§impl Serialize for NotificationChannel
impl Serialize for NotificationChannel
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for NotificationChannel
impl RefUnwindSafe for NotificationChannel
impl Send for NotificationChannel
impl Sync for NotificationChannel
impl Unpin for NotificationChannel
impl UnsafeUnpin for NotificationChannel
impl UnwindSafe for NotificationChannel
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreCreates a shared type from an unshared type.