mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
32 lines
1.2 KiB
Rust
32 lines
1.2 KiB
Rust
use crate::{
|
|
services::document::persistence::{create_doc, read_doc, update_doc},
|
|
util::serde_ext::parse_from_payload,
|
|
};
|
|
use actix_web::{
|
|
web::{Data, Payload},
|
|
HttpResponse,
|
|
};
|
|
use backend_service::{errors::ServerError, response::FlowyResponse};
|
|
use flowy_collaboration::protobuf::{CreateDocParams, DocIdentifier, UpdateDocParams};
|
|
use sqlx::PgPool;
|
|
|
|
pub async fn create_handler(payload: Payload, pool: Data<PgPool>) -> Result<HttpResponse, ServerError> {
|
|
let params: CreateDocParams = parse_from_payload(payload).await?;
|
|
let _ = create_doc(&pool, params).await?;
|
|
Ok(FlowyResponse::success().into())
|
|
}
|
|
|
|
#[tracing::instrument(level = "debug", skip(payload, pool), err)]
|
|
pub async fn read_handler(payload: Payload, pool: Data<PgPool>) -> Result<HttpResponse, ServerError> {
|
|
let params: DocIdentifier = parse_from_payload(payload).await?;
|
|
let doc = read_doc(pool.get_ref(), params).await?;
|
|
let response = FlowyResponse::success().pb(doc)?;
|
|
Ok(response.into())
|
|
}
|
|
|
|
pub async fn update_handler(payload: Payload, pool: Data<PgPool>) -> Result<HttpResponse, ServerError> {
|
|
let params: UpdateDocParams = parse_from_payload(payload).await?;
|
|
let _ = update_doc(pool.get_ref(), params).await?;
|
|
Ok(FlowyResponse::success().into())
|
|
}
|