1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
//! `enum Event`
use super::payloads::{
BotMessageStampsUpdatedPayload, ChannelCreatedPayload, ChannelTopicChangedPayload,
DirectMessageCreatedPayload, DirectMessageDeletedPayload, DirectMessageUpdatedPayload,
JoinedPayload, LeftPayload, MessageCreatedPayload, MessageDeletedPayload,
MessageUpdatedPayload, PingPayload, StampCreatedPayload, TagAddedPayload, TagRemovedPayload,
UserCreatedPayload,
};
/// イベント全てを網羅するenum
///
/// ## Variants
/// * `Ping` - ボットの接続確認
/// * `Joined` - チャンネルに参加した
/// * `Left` - チャンネルから退出した
/// * `MessageCreated` - メッセージが作成された
/// * `MessageDeleted` - メッセージが削除された
/// * `MessageUpdated` - メッセージが更新された
/// * `DirectMessageCreated` - ダイレクトメッセージが作成された
/// * `DirectMessageDeleted` - ダイレクトメッセージが削除された
/// * `DirectMessageUpdated` - ダイレクトメッセージが更新された
/// * `BotMessageStampsUpdated` - ボットのメッセージにスタンプが付けられた
/// * `ChannelCreated` - チャンネルが作成された
/// * `ChannelTopicChanged` - チャンネルのトピックが変更された
/// * `UserCreated` - ユーザーが作成された
/// * `StampCreated` - スタンプが作成された
/// * `TagAdded` - BOTにタグが追加された
/// * `TagRemoved` - BOTからタグが削除された
///
/// ## Example
/// ```
/// use traq_bot_http::Event;
/// use traq_bot_http::payloads::PingPayload;
/// let payload = r#"{
/// "eventTime": "2019-05-07T04:50:48.582586882Z"
/// }"#;
/// let payload = serde_json::from_str::<PingPayload>(payload).unwrap();
/// let event = Event::Ping(payload);
/// ```
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum Event {
Ping(PingPayload),
Joined(JoinedPayload),
Left(LeftPayload),
MessageCreated(MessageCreatedPayload),
MessageDeleted(MessageDeletedPayload),
MessageUpdated(MessageUpdatedPayload),
DirectMessageCreated(DirectMessageCreatedPayload),
DirectMessageDeleted(DirectMessageDeletedPayload),
DirectMessageUpdated(DirectMessageUpdatedPayload),
BotMessageStampsUpdated(BotMessageStampsUpdatedPayload),
ChannelCreated(ChannelCreatedPayload),
ChannelTopicChanged(ChannelTopicChangedPayload),
UserCreated(UserCreatedPayload),
StampCreated(StampCreatedPayload),
TagAdded(TagAddedPayload),
TagRemoved(TagRemovedPayload),
}