workspace_request.rs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. use flowy_net::{config::HEADER_TOKEN, errors::ServerError, request::HttpRequestBuilder};
  2. use flowy_workspace_infra::entities::prelude::*;
  3. pub(crate) fn request_builder() -> HttpRequestBuilder {
  4. HttpRequestBuilder::new().middleware(super::middleware::BACKEND_API_MIDDLEWARE.clone())
  5. }
  6. pub async fn create_workspace_request(
  7. token: &str,
  8. params: CreateWorkspaceParams,
  9. url: &str,
  10. ) -> Result<Workspace, ServerError> {
  11. let workspace = request_builder()
  12. .post(&url.to_owned())
  13. .header(HEADER_TOKEN, token)
  14. .protobuf(params)?
  15. .response()
  16. .await?;
  17. Ok(workspace)
  18. }
  19. pub async fn read_workspaces_request(
  20. token: &str,
  21. params: WorkspaceIdentifier,
  22. url: &str,
  23. ) -> Result<RepeatedWorkspace, ServerError> {
  24. let repeated_workspace = request_builder()
  25. .get(&url.to_owned())
  26. .header(HEADER_TOKEN, token)
  27. .protobuf(params)?
  28. .response::<RepeatedWorkspace>()
  29. .await?;
  30. Ok(repeated_workspace)
  31. }
  32. pub async fn update_workspace_request(
  33. token: &str,
  34. params: UpdateWorkspaceParams,
  35. url: &str,
  36. ) -> Result<(), ServerError> {
  37. let _ = request_builder()
  38. .patch(&url.to_owned())
  39. .header(HEADER_TOKEN, token)
  40. .protobuf(params)?
  41. .send()
  42. .await?;
  43. Ok(())
  44. }
  45. pub async fn delete_workspace_request(
  46. token: &str,
  47. params: DeleteWorkspaceParams,
  48. url: &str,
  49. ) -> Result<(), ServerError> {
  50. let _ = request_builder()
  51. .delete(url)
  52. .header(HEADER_TOKEN, token)
  53. .protobuf(params)?
  54. .send()
  55. .await?;
  56. Ok(())
  57. }
  58. // App
  59. pub async fn create_app_request(token: &str, params: CreateAppParams, url: &str) -> Result<App, ServerError> {
  60. let app = request_builder()
  61. .post(&url.to_owned())
  62. .header(HEADER_TOKEN, token)
  63. .protobuf(params)?
  64. .response()
  65. .await?;
  66. Ok(app)
  67. }
  68. pub async fn read_app_request(token: &str, params: AppIdentifier, url: &str) -> Result<Option<App>, ServerError> {
  69. let app = request_builder()
  70. .get(&url.to_owned())
  71. .header(HEADER_TOKEN, token)
  72. .protobuf(params)?
  73. .option_response()
  74. .await?;
  75. Ok(app)
  76. }
  77. pub async fn update_app_request(token: &str, params: UpdateAppParams, url: &str) -> Result<(), ServerError> {
  78. let _ = request_builder()
  79. .patch(&url.to_owned())
  80. .header(HEADER_TOKEN, token)
  81. .protobuf(params)?
  82. .send()
  83. .await?;
  84. Ok(())
  85. }
  86. pub async fn delete_app_request(token: &str, params: AppIdentifier, url: &str) -> Result<(), ServerError> {
  87. let _ = request_builder()
  88. .delete(&url.to_owned())
  89. .header(HEADER_TOKEN, token)
  90. .protobuf(params)?
  91. .send()
  92. .await?;
  93. Ok(())
  94. }
  95. // View
  96. pub async fn create_view_request(token: &str, params: CreateViewParams, url: &str) -> Result<View, ServerError> {
  97. let view = request_builder()
  98. .post(&url.to_owned())
  99. .header(HEADER_TOKEN, token)
  100. .protobuf(params)?
  101. .response()
  102. .await?;
  103. Ok(view)
  104. }
  105. pub async fn read_view_request(token: &str, params: ViewIdentifier, url: &str) -> Result<Option<View>, ServerError> {
  106. let view = request_builder()
  107. .get(&url.to_owned())
  108. .header(HEADER_TOKEN, token)
  109. .protobuf(params)?
  110. .option_response()
  111. .await?;
  112. Ok(view)
  113. }
  114. pub async fn update_view_request(token: &str, params: UpdateViewParams, url: &str) -> Result<(), ServerError> {
  115. let _ = request_builder()
  116. .patch(&url.to_owned())
  117. .header(HEADER_TOKEN, token)
  118. .protobuf(params)?
  119. .send()
  120. .await?;
  121. Ok(())
  122. }
  123. pub async fn delete_view_request(token: &str, params: ViewIdentifiers, url: &str) -> Result<(), ServerError> {
  124. let _ = request_builder()
  125. .delete(&url.to_owned())
  126. .header(HEADER_TOKEN, token)
  127. .protobuf(params)?
  128. .send()
  129. .await?;
  130. Ok(())
  131. }
  132. pub async fn create_trash_request(token: &str, params: TrashIdentifiers, url: &str) -> Result<(), ServerError> {
  133. let _ = request_builder()
  134. .post(&url.to_owned())
  135. .header(HEADER_TOKEN, token)
  136. .protobuf(params)?
  137. .send()
  138. .await?;
  139. Ok(())
  140. }
  141. pub async fn delete_trash_request(token: &str, params: TrashIdentifiers, url: &str) -> Result<(), ServerError> {
  142. let _ = request_builder()
  143. .delete(&url.to_owned())
  144. .header(HEADER_TOKEN, token)
  145. .protobuf(params)?
  146. .send()
  147. .await?;
  148. Ok(())
  149. }
  150. pub async fn read_trash_request(token: &str, url: &str) -> Result<RepeatedTrash, ServerError> {
  151. let repeated_trash = request_builder()
  152. .get(&url.to_owned())
  153. .header(HEADER_TOKEN, token)
  154. .response::<RepeatedTrash>()
  155. .await?;
  156. Ok(repeated_trash)
  157. }