use canapi::Provider; use rocket::http::uri::Origin; use rocket_contrib::Json; use serde_json; use serde_qs; use plume_api::posts::PostEndpoint; use plume_models::{ Connection, db_conn::DbConn, posts::Post, search::Searcher as UnmanagedSearcher, }; use api::authorization::*; use Searcher; #[get("/posts/")] fn get(id: i32, conn: DbConn, auth: Option>, search: Searcher) -> Json { let post = )>>::get(&(&*conn, &search, auth.map(|a| a.0.user_id)), id).ok(); Json(json!(post)) } #[get("/posts")] fn list(conn: DbConn, uri: &Origin, auth: Option>, search: Searcher) -> Json { let query: PostEndpoint = serde_qs::from_str(uri.query().unwrap_or("")).expect("api::list: invalid query error"); let post = )>>::list(&(&*conn, &search, auth.map(|a| a.0.user_id)), query); Json(json!(post)) }