Add call update and delete

This commit is contained in:
kozabrada123 2023-05-14 08:39:23 +02:00
parent 262cd0e780
commit 40b459b974
2 changed files with 34 additions and 3 deletions

View File

@ -1272,8 +1272,8 @@ impl WebSocketEvent for GuildEmojisUpdate {}
/// {"t":"CALL_CREATE","s":2,"op":0,"d":{"voice_states":[],"ringing":[],"region":"milan","message_id":"1107187514906775613","embedded_activities":[],"channel_id":"837609115475771392"}} /// {"t":"CALL_CREATE","s":2,"op":0,"d":{"voice_states":[],"ringing":[],"region":"milan","message_id":"1107187514906775613","embedded_activities":[],"channel_id":"837609115475771392"}}
pub struct CallCreate { pub struct CallCreate {
pub voice_states: Vec<VoiceStateObject>, pub voice_states: Vec<VoiceStateObject>,
/// What is this? /// Seems like a vec of channel ids
pub ringing: Vec<serde_json::Value>, pub ringing: Vec<String>,
pub region: String, // milan pub region: String, // milan
pub message_id: String, pub message_id: String,
/// What is this? /// What is this?
@ -1282,6 +1282,27 @@ pub struct CallCreate {
} }
impl WebSocketEvent for CallCreate {} impl WebSocketEvent for CallCreate {}
#[derive(Debug, Deserialize, Serialize, Default)]
/// Undocumented
/// {"t":"CALL_UPDATE","s":5,"op":0,"d":{"ringing":["837606544539254834"],"region":"milan","message_id":"1107191540234846308","guild_id":null,"channel_id":"837609115475771392"}}
pub struct CallUpdate {
/// Seems like a vec of channel ids
pub ringing: Vec<String>,
pub region: String, // milan
pub message_id: String,
pub guild_id: Option<String>,
pub channel_id: String,
}
impl WebSocketEvent for CallUpdate {}
#[derive(Debug, Deserialize, Serialize, Default)]
/// Undocumented
/// {"t":"CALL_DELETE","s":8,"op":0,"d":{"channel_id":"837609115475771392"}}
pub struct CallDelete {
pub channel_id: String,
}
impl WebSocketEvent for CallDelete {}
#[derive(Debug, Default, Deserialize, Serialize)] #[derive(Debug, Default, Deserialize, Serialize)]
pub struct GatewayPayload { pub struct GatewayPayload {
pub op: u8, pub op: u8,

View File

@ -216,6 +216,14 @@ impl Gateway {
"CALL_CREATE" => { "CALL_CREATE" => {
let new_data: CallCreate = serde_json::from_value(gateway_payload.d.unwrap()).unwrap(); let new_data: CallCreate = serde_json::from_value(gateway_payload.d.unwrap()).unwrap();
self.events.lock().await.call.create.update_data(new_data).await; self.events.lock().await.call.create.update_data(new_data).await;
},
"CALL_UPDATE" => {
let new_data: CallUpdate = serde_json::from_value(gateway_payload.d.unwrap()).unwrap();
self.events.lock().await.call.update.update_data(new_data).await;
}
"CALL_DELETE" => {
let new_data: CallDelete = serde_json::from_value(gateway_payload.d.unwrap()).unwrap();
self.events.lock().await.call.delete.update_data(new_data).await;
} }
"THREAD_CREATE" => { "THREAD_CREATE" => {
let thread: Channel = serde_json::from_value(gateway_payload.d.unwrap()).unwrap(); let thread: Channel = serde_json::from_value(gateway_payload.d.unwrap()).unwrap();
@ -604,7 +612,9 @@ mod events {
#[derive(Default, Debug)] #[derive(Default, Debug)]
pub struct Call { pub struct Call {
pub create: GatewayEvent<CallCreate> pub create: GatewayEvent<CallCreate>,
pub update: GatewayEvent<CallUpdate>,
pub delete: GatewayEvent<CallDelete>
} }
} }