router.rs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. use crate::{
  2. routers::utils::parse_from_payload,
  3. workspace_service::workspace::{
  4. create_workspace,
  5. delete_workspace,
  6. read_workspace,
  7. update_workspace,
  8. },
  9. };
  10. use actix_identity::Identity;
  11. use actix_web::{
  12. web::{Data, Payload},
  13. Error,
  14. HttpRequest,
  15. HttpResponse,
  16. };
  17. use flowy_net::errors::ServerError;
  18. use flowy_workspace::protobuf::{
  19. CreateWorkspaceParams,
  20. DeleteWorkspaceParams,
  21. QueryWorkspaceParams,
  22. UpdateWorkspaceParams,
  23. };
  24. use sqlx::PgPool;
  25. pub async fn create_handler(
  26. payload: Payload,
  27. pool: Data<PgPool>,
  28. ) -> Result<HttpResponse, ServerError> {
  29. let params: CreateWorkspaceParams = parse_from_payload(payload).await?;
  30. let resp = create_workspace(pool.get_ref(), params).await?;
  31. Ok(resp.into())
  32. }
  33. pub async fn read_handler(
  34. payload: Payload,
  35. pool: Data<PgPool>,
  36. ) -> Result<HttpResponse, ServerError> {
  37. let params: QueryWorkspaceParams = parse_from_payload(payload).await?;
  38. let resp = read_workspace(pool.get_ref(), params).await?;
  39. Ok(resp.into())
  40. }
  41. pub async fn delete_handler(
  42. payload: Payload,
  43. pool: Data<PgPool>,
  44. ) -> Result<HttpResponse, ServerError> {
  45. let params: DeleteWorkspaceParams = parse_from_payload(payload).await?;
  46. let resp = delete_workspace(pool.get_ref(), params).await?;
  47. Ok(resp.into())
  48. }
  49. pub async fn update_handler(
  50. payload: Payload,
  51. id: Identity,
  52. pool: Data<PgPool>,
  53. ) -> Result<HttpResponse, ServerError> {
  54. let params: UpdateWorkspaceParams = parse_from_payload(payload).await?;
  55. let resp = update_workspace(pool.get_ref(), params).await?;
  56. Ok(resp.into())
  57. }