diff --git a/src/api/dto/content.rs b/src/api/dto/content.rs index f451e33..3ef1366 100644 --- a/src/api/dto/content.rs +++ b/src/api/dto/content.rs @@ -4,6 +4,7 @@ use std::collections::HashMap; pub type SsbHash = String; pub type SsbId = String; +pub type SsbMsgType = String; #[derive(Debug, Serialize, Deserialize)] pub struct Mention { @@ -142,3 +143,22 @@ pub enum TypedMessage { #[serde(rename = "vote")] Vote { vote: Vote }, } + +//op args name args type +//and args [op, ...] +//or args [op, ...] +//type string string +//author feed string + +#[derive(Debug, Serialize, Deserialize)] +#[serde(untagged)] +pub enum SubsetQuery { + // {"op":"type","string":"foo"} + Type { op: String, string: SsbMsgType }, + //#[serde(rename = "author")] + Author { op: String, feed: SsbId }, + //#[serde(rename = "and")] + //And { args: Vec }, + //#[serde(rename = "or")] + //Or { args: Vec }, +} diff --git a/src/api/helper.rs b/src/api/helper.rs index 3401bd3..f1b7584 100644 --- a/src/api/helper.rs +++ b/src/api/helper.rs @@ -1,5 +1,5 @@ use crate::{ - api::dto::content::TypedMessage, + api::dto::content::{SubsetQuery, TypedMessage}, feed::Message, rpc::{Body, BodyType, RequestNo, RpcType, RpcWriter}, };