use crate::state::{ChannelId, Seq};
use crate::sync_session::IncrementChannel;
pub fn parse_increment_channel(data: &serde_json::Value) -> Option<IncrementChannel> {
let channel_id = data
.get("id")
.and_then(|v| v.as_str())
.and_then(ChannelId::from_str)?;
let last_event_seq = Seq(data
.get("lastEventSeq")
.and_then(|v| v.as_u64())
.unwrap_or(0));
let need_sync = data
.get("needSync")
.and_then(|v| v.as_bool())
.unwrap_or(true);
let raw = bytes::Bytes::from(serde_json::to_vec(data).ok()?);
Some(IncrementChannel {
channel_id,
last_event_seq,
need_sync,
raw,
})
}