unsubscribe.rs 492 B

123456789101112131415161718
  1. use cdk::ws::{WsResponseResult, WsUnsubscribeRequest, WsUnsubscribeResponse};
  2. use super::{WsContext, WsError};
  3. pub(crate) async fn handle(
  4. context: &mut WsContext,
  5. req: WsUnsubscribeRequest,
  6. ) -> Result<WsResponseResult, WsError> {
  7. if context.subscriptions.remove(&req.sub_id).is_some() {
  8. Ok(WsUnsubscribeResponse {
  9. status: "OK".to_string(),
  10. sub_id: req.sub_id,
  11. }
  12. .into())
  13. } else {
  14. Err(WsError::InvalidParams)
  15. }
  16. }