soup-sdk 0.3.2

채팅 이벤트 수신 SDK
Documentation
use crate::chat::{
    events::{EventMeta, SubscribeEvent},
    parser::{
        raw::{ParseResult, RawMessage},
        util::normalize_user_id,
    },
};

pub fn parse_subscribe_event(raw: RawMessage) -> ParseResult<SubscribeEvent> {
    Ok(SubscribeEvent {
        meta: EventMeta {
            received_time: raw.received_time,
        },
        user_id: normalize_user_id(raw.field(2)?),
        label: raw.field_string(3)?,
        tier: raw.parse_u32_or_default(7, 0),
        // 갱신이 아닌 경우는 0으로 할당
        renew: 0,
    })
}

pub fn parse_subscribe_renew_event(raw: RawMessage) -> ParseResult<SubscribeEvent> {
    Ok(SubscribeEvent {
        meta: EventMeta {
            received_time: raw.received_time,
        },
        user_id: normalize_user_id(raw.field(1)?),
        label: raw.field_string(2)?,
        tier: raw.parse_u32_or_default(7, 0),
        // 갱신이 아닌 경우는 0으로 할당
        renew: raw.parse_u32_or_default(3, 1),
    })
}