workspace_request.rs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. use crate::{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(crate::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(token: &str, params: WorkspaceIdentifier, url: &str) -> Result<(), ServerError> {
  46. let _ = request_builder()
  47. .delete(url)
  48. .header(HEADER_TOKEN, token)
  49. .protobuf(params)?
  50. .send()
  51. .await?;
  52. Ok(())
  53. }
  54. // App
  55. pub async fn create_app_request(token: &str, params: CreateAppParams, url: &str) -> Result<App, ServerError> {
  56. let app = request_builder()
  57. .post(&url.to_owned())
  58. .header(HEADER_TOKEN, token)
  59. .protobuf(params)?
  60. .response()
  61. .await?;
  62. Ok(app)
  63. }
  64. pub async fn read_app_request(token: &str, params: AppIdentifier, url: &str) -> Result<Option<App>, ServerError> {
  65. let app = request_builder()
  66. .get(&url.to_owned())
  67. .header(HEADER_TOKEN, token)
  68. .protobuf(params)?
  69. .option_response()
  70. .await?;
  71. Ok(app)
  72. }
  73. pub async fn update_app_request(token: &str, params: UpdateAppParams, url: &str) -> Result<(), ServerError> {
  74. let _ = request_builder()
  75. .patch(&url.to_owned())
  76. .header(HEADER_TOKEN, token)
  77. .protobuf(params)?
  78. .send()
  79. .await?;
  80. Ok(())
  81. }
  82. pub async fn delete_app_request(token: &str, params: AppIdentifier, url: &str) -> Result<(), ServerError> {
  83. let _ = request_builder()
  84. .delete(&url.to_owned())
  85. .header(HEADER_TOKEN, token)
  86. .protobuf(params)?
  87. .send()
  88. .await?;
  89. Ok(())
  90. }
  91. // View
  92. pub async fn create_view_request(token: &str, params: CreateViewParams, url: &str) -> Result<View, ServerError> {
  93. let view = request_builder()
  94. .post(&url.to_owned())
  95. .header(HEADER_TOKEN, token)
  96. .protobuf(params)?
  97. .response()
  98. .await?;
  99. Ok(view)
  100. }
  101. pub async fn read_view_request(token: &str, params: ViewIdentifier, url: &str) -> Result<Option<View>, ServerError> {
  102. let view = request_builder()
  103. .get(&url.to_owned())
  104. .header(HEADER_TOKEN, token)
  105. .protobuf(params)?
  106. .option_response()
  107. .await?;
  108. Ok(view)
  109. }
  110. pub async fn update_view_request(token: &str, params: UpdateViewParams, url: &str) -> Result<(), ServerError> {
  111. let _ = request_builder()
  112. .patch(&url.to_owned())
  113. .header(HEADER_TOKEN, token)
  114. .protobuf(params)?
  115. .send()
  116. .await?;
  117. Ok(())
  118. }
  119. pub async fn delete_view_request(token: &str, params: ViewIdentifiers, url: &str) -> Result<(), ServerError> {
  120. let _ = request_builder()
  121. .delete(&url.to_owned())
  122. .header(HEADER_TOKEN, token)
  123. .protobuf(params)?
  124. .send()
  125. .await?;
  126. Ok(())
  127. }
  128. pub async fn create_trash_request(token: &str, params: TrashIdentifiers, url: &str) -> Result<(), ServerError> {
  129. let _ = request_builder()
  130. .post(&url.to_owned())
  131. .header(HEADER_TOKEN, token)
  132. .protobuf(params)?
  133. .send()
  134. .await?;
  135. Ok(())
  136. }
  137. pub async fn delete_trash_request(token: &str, params: TrashIdentifiers, url: &str) -> Result<(), ServerError> {
  138. let _ = request_builder()
  139. .delete(&url.to_owned())
  140. .header(HEADER_TOKEN, token)
  141. .protobuf(params)?
  142. .send()
  143. .await?;
  144. Ok(())
  145. }
  146. pub async fn read_trash_request(token: &str, url: &str) -> Result<RepeatedTrash, ServerError> {
  147. let repeated_trash = request_builder()
  148. .get(&url.to_owned())
  149. .header(HEADER_TOKEN, token)
  150. .response::<RepeatedTrash>()
  151. .await?;
  152. Ok(repeated_trash)
  153. }