]> Untitled Git - lemmy.git/commitdiff
Use .map_err in api code (fixes #1573) (#1575)
authorNutomic <me@nutomic.com>
Fri, 16 Apr 2021 13:10:43 +0000 (13:10 +0000)
committerGitHub <noreply@github.com>
Fri, 16 Apr 2021 13:10:43 +0000 (09:10 -0400)
* Use .map_err in api code (fixes #1573)

* forgot some

23 files changed:
crates/api/src/comment.rs
crates/api/src/comment_report.rs
crates/api/src/community.rs
crates/api/src/local_user.rs
crates/api/src/post.rs
crates/api/src/post_report.rs
crates/api/src/private_message.rs
crates/api/src/site.rs
crates/api_common/src/lib.rs
crates/api_crud/src/comment/create.rs
crates/api_crud/src/comment/delete.rs
crates/api_crud/src/comment/read.rs
crates/api_crud/src/comment/update.rs
crates/api_crud/src/community/create.rs
crates/api_crud/src/community/delete.rs
crates/api_crud/src/community/read.rs
crates/api_crud/src/post/create.rs
crates/api_crud/src/post/read.rs
crates/api_crud/src/private_message/create.rs
crates/api_crud/src/private_message/delete.rs
crates/api_crud/src/private_message/update.rs
crates/api_crud/src/user/create.rs
crates/api_crud/src/user/read.rs

index 2237204f45d8fc6602d9abba4c5be0cdba1b4b6b..dd373cb107503cea2a246af01c70b93641747176 100644 (file)
@@ -46,14 +46,11 @@ impl Perform for MarkCommentAsRead {
 
     // Do the mark as read
     let read = data.read;
-    match blocking(context.pool(), move |conn| {
+    blocking(context.pool(), move |conn| {
       Comment::update_read(conn, comment_id, read)
     })
     .await?
-    {
-      Ok(comment) => comment,
-      Err(_e) => return Err(ApiError::err("couldnt_update_comment").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_update_comment"))?;
 
     // Refetch it
     let comment_id = data.comment_id;
index 9cd504b5e725003013e5df394002682c271daf9c..5cdf697c23dc85f5431873f5060c28fcd3c0f015 100644 (file)
@@ -59,14 +59,11 @@ impl Perform for CreateCommentReport {
       reason: data.reason.to_owned(),
     };
 
-    let report = match blocking(context.pool(), move |conn| {
+    let report = blocking(context.pool(), move |conn| {
       CommentReport::report(conn, &report_form)
     })
     .await?
-    {
-      Ok(report) => report,
-      Err(_e) => return Err(ApiError::err("couldnt_create_report").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_create_report"))?;
 
     let res = CreateCommentReportResponse { success: true };
 
index c451cbef79e56862ce7e117c54823c0e2879add2..fec943343f09a446c8ecc7f2fd0534dacb833cba 100644 (file)
@@ -414,24 +414,18 @@ impl Perform for TransferCommunity {
 
     let community_id = data.community_id;
     let person_id = local_user_view.person.id;
-    let community_view = match blocking(context.pool(), move |conn| {
+    let community_view = blocking(context.pool(), move |conn| {
       CommunityView::read(conn, community_id, Some(person_id))
     })
     .await?
-    {
-      Ok(community) => community,
-      Err(_e) => return Err(ApiError::err("couldnt_find_community").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_find_community"))?;
 
     let community_id = data.community_id;
-    let moderators = match blocking(context.pool(), move |conn| {
+    let moderators = blocking(context.pool(), move |conn| {
       CommunityModeratorView::for_community(conn, community_id)
     })
     .await?
-    {
-      Ok(moderators) => moderators,
-      Err(_e) => return Err(ApiError::err("couldnt_find_community").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_find_community"))?;
 
     // Return the jwt
     Ok(GetCommunityResponse {
index 0acb29f1572c37a71791b7e0e6bffd8d1ab7eb14..241e3405f4e4543cbf3c10f53f3be08cfbce550d 100644 (file)
@@ -83,14 +83,11 @@ impl Perform for Login {
 
     // Fetch that username / email
     let username_or_email = data.username_or_email.clone();
-    let local_user_view = match blocking(context.pool(), move |conn| {
+    let local_user_view = blocking(context.pool(), move |conn| {
       LocalUserView::find_by_email_or_name(conn, &username_or_email)
     })
     .await?
-    {
-      Ok(uv) => uv,
-      Err(_e) => return Err(ApiError::err("couldnt_find_that_username_or_email").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_find_that_username_or_email"))?;
 
     // Verify the password
     let valid: bool = verify(
@@ -629,14 +626,11 @@ impl Perform for PasswordReset {
 
     // Fetch that email
     let email = data.email.clone();
-    let local_user_view = match blocking(context.pool(), move |conn| {
+    let local_user_view = blocking(context.pool(), move |conn| {
       LocalUserView::find_by_email(conn, &email)
     })
     .await?
-    {
-      Ok(lu) => lu,
-      Err(_e) => return Err(ApiError::err("couldnt_find_that_username_or_email").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_find_that_username_or_email"))?;
 
     // Generate a random token
     let token = generate_random_string();
@@ -655,10 +649,8 @@ impl Perform for PasswordReset {
     let subject = &format!("Password reset for {}", local_user_view.person.name);
     let hostname = &Settings::get().get_protocol_and_hostname();
     let html = &format!("<h1>Password Reset Request for {}</h1><br><a href={}/password_change/{}>Click here to reset your password</a>", local_user_view.person.name, hostname, &token);
-    match send_email(subject, email, &local_user_view.person.name, html) {
-      Ok(_o) => _o,
-      Err(_e) => return Err(ApiError::err(&_e).into()),
-    };
+    send_email(subject, email, &local_user_view.person.name, html)
+      .map_err(|e| ApiError::err(&e))?;
 
     Ok(PasswordResetResponse {})
   }
@@ -691,14 +683,11 @@ impl Perform for PasswordChange {
 
     // Update the user with the new password
     let password = data.password.clone();
-    let updated_local_user = match blocking(context.pool(), move |conn| {
+    let updated_local_user = blocking(context.pool(), move |conn| {
       LocalUser::update_password(conn, local_user_id, &password)
     })
     .await?
-    {
-      Ok(u) => u,
-      Err(_e) => return Err(ApiError::err("couldnt_update_user").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_update_user"))?;
 
     // Return the jwt
     Ok(LoginResponse {
@@ -776,14 +765,11 @@ impl Perform for GetFollowedCommunities {
     let local_user_view = get_local_user_view_from_jwt(&data.auth, context.pool()).await?;
 
     let person_id = local_user_view.person.id;
-    let communities = match blocking(context.pool(), move |conn| {
+    let communities = blocking(context.pool(), move |conn| {
       CommunityFollowerView::for_person(conn, person_id)
     })
     .await?
-    {
-      Ok(communities) => communities,
-      _ => return Err(ApiError::err("system_err_login").into()),
-    };
+    .map_err(|_| ApiError::err("system_err_login"))?;
 
     // Return the jwt
     Ok(GetFollowedCommunitiesResponse { communities })
index be39cf53cd896989be62f270cd3d32dd01549bbf..34c9c4116a1bc09bd113cbe70cd2250496cf71da 100644 (file)
@@ -71,14 +71,11 @@ impl Perform for CreatePostLike {
 
     let post_id = data.post_id;
     let person_id = local_user_view.person.id;
-    let post_view = match blocking(context.pool(), move |conn| {
+    let post_view = blocking(context.pool(), move |conn| {
       PostView::read(conn, post_id, Some(person_id))
     })
     .await?
-    {
-      Ok(post) => post,
-      Err(_e) => return Err(ApiError::err("couldnt_find_post").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_find_post"))?;
 
     let res = PostResponse { post_view };
 
index c81ee2aa29c69ce751bc1a285adcc98efd82a77a..b2ebbaf243cc7120327e21a0830a48fcc43ea34b 100644 (file)
@@ -68,14 +68,11 @@ impl Perform for CreatePostReport {
       reason: data.reason.to_owned(),
     };
 
-    let report = match blocking(context.pool(), move |conn| {
+    let report = blocking(context.pool(), move |conn| {
       PostReport::report(conn, &report_form)
     })
     .await?
-    {
-      Ok(report) => report,
-      Err(_e) => return Err(ApiError::err("couldnt_create_report").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_create_report"))?;
 
     let res = CreatePostReportResponse { success: true };
 
index 5420084d66d462d98ed4c378c40b7e79ff72b10a..d0163dcf1345c101e9227b4aa4aab007f19c62d3 100644 (file)
@@ -36,14 +36,11 @@ impl Perform for MarkPrivateMessageAsRead {
     // Doing the update
     let private_message_id = data.private_message_id;
     let read = data.read;
-    match blocking(context.pool(), move |conn| {
+    blocking(context.pool(), move |conn| {
       PrivateMessage::update_read(conn, private_message_id, read)
     })
     .await?
-    {
-      Ok(private_message) => private_message,
-      Err(_e) => return Err(ApiError::err("couldnt_update_private_message").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_update_private_message"))?;
 
     // No need to send an apub update
     let private_message_id = data.private_message_id;
index 91402da1a24e882ea90bf27b6597542b98dec748..cc61b520688e9e02af8c3d17b75dc2d086f9ba71 100644 (file)
@@ -388,10 +388,8 @@ impl Perform for SaveSiteConfig {
     is_admin(&local_user_view)?;
 
     // Make sure docker doesn't have :ro at the end of the volume, so its not a read-only filesystem
-    let config_hjson = match Settings::save_config_file(&data.config_hjson) {
-      Ok(config_hjson) => config_hjson,
-      Err(_e) => return Err(ApiError::err("couldnt_update_site").into()),
-    };
+    let config_hjson = Settings::save_config_file(&data.config_hjson)
+      .map_err(|_| ApiError::err("couldnt_update_site"))?;
 
     Ok(GetSiteConfigResponse { config_hjson })
   }
index 2f820f1a296cb8397cc440b9dabfcb4c31e0845e..dca09b97e8a473f04da5d41c0d7325d4a4b8dc93 100644 (file)
@@ -237,20 +237,18 @@ pub fn is_admin(local_user_view: &LocalUserView) -> Result<(), LemmyError> {
 }
 
 pub async fn get_post(post_id: PostId, pool: &DbPool) -> Result<Post, LemmyError> {
-  match blocking(pool, move |conn| Post::read(conn, post_id)).await? {
-    Ok(post) => Ok(post),
-    Err(_e) => Err(ApiError::err("couldnt_find_post").into()),
-  }
+  blocking(pool, move |conn| Post::read(conn, post_id))
+    .await?
+    .map_err(|_| ApiError::err("couldnt_find_post").into())
 }
 
 pub async fn get_local_user_view_from_jwt(
   jwt: &str,
   pool: &DbPool,
 ) -> Result<LocalUserView, LemmyError> {
-  let claims = match Claims::decode(&jwt) {
-    Ok(claims) => claims.claims,
-    Err(_e) => return Err(ApiError::err("not_logged_in").into()),
-  };
+  let claims = Claims::decode(&jwt)
+    .map_err(|_| ApiError::err("not_logged_in"))?
+    .claims;
   let local_user_id = LocalUserId(claims.sub);
   let local_user_view =
     blocking(pool, move |conn| LocalUserView::read(conn, local_user_id)).await??;
@@ -291,10 +289,9 @@ pub async fn get_local_user_settings_view_from_jwt(
   jwt: &str,
   pool: &DbPool,
 ) -> Result<LocalUserSettingsView, LemmyError> {
-  let claims = match Claims::decode(&jwt) {
-    Ok(claims) => claims.claims,
-    Err(_e) => return Err(ApiError::err("not_logged_in").into()),
-  };
+  let claims = Claims::decode(&jwt)
+    .map_err(|_| ApiError::err("not_logged_in"))?
+    .claims;
   let local_user_id = LocalUserId(claims.sub);
   let local_user_view = blocking(pool, move |conn| {
     LocalUserSettingsView::read(conn, local_user_id)
index 0cdde729f5c5828bc8281280700f25de07193393..4f1037c3ffac224acd29508434ccc6ba5d345ab3 100644 (file)
@@ -48,11 +48,9 @@ impl PerformCrud for CreateComment {
     // If there's a parent_id, check to make sure that comment is in that post
     if let Some(parent_id) = data.parent_id {
       // Make sure the parent comment exists
-      let parent =
-        match blocking(context.pool(), move |conn| Comment::read(&conn, parent_id)).await? {
-          Ok(comment) => comment,
-          Err(_e) => return Err(ApiError::err("couldnt_create_comment").into()),
-        };
+      let parent = blocking(context.pool(), move |conn| Comment::read(&conn, parent_id))
+        .await?
+        .map_err(|_| ApiError::err("couldnt_create_comment"))?;
       if parent.post_id != post_id {
         return Err(ApiError::err("couldnt_create_comment").into());
       }
@@ -68,28 +66,22 @@ impl PerformCrud for CreateComment {
 
     // Create the comment
     let comment_form2 = comment_form.clone();
-    let inserted_comment = match blocking(context.pool(), move |conn| {
+    let inserted_comment = blocking(context.pool(), move |conn| {
       Comment::create(&conn, &comment_form2)
     })
     .await?
-    {
-      Ok(comment) => comment,
-      Err(_e) => return Err(ApiError::err("couldnt_create_comment").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_create_comment"))?;
 
     // Necessary to update the ap_id
     let inserted_comment_id = inserted_comment.id;
     let updated_comment: Comment =
-      match blocking(context.pool(), move |conn| -> Result<Comment, LemmyError> {
+      blocking(context.pool(), move |conn| -> Result<Comment, LemmyError> {
         let apub_id =
           generate_apub_endpoint(EndpointType::Comment, &inserted_comment_id.to_string())?;
         Ok(Comment::update_ap_id(&conn, inserted_comment_id, apub_id)?)
       })
       .await?
-      {
-        Ok(comment) => comment,
-        Err(_e) => return Err(ApiError::err("couldnt_create_comment").into()),
-      };
+      .map_err(|_| ApiError::err("couldnt_create_comment"))?;
 
     updated_comment
       .send_create(&local_user_view.person, context)
@@ -134,14 +126,11 @@ impl PerformCrud for CreateComment {
     // If its a comment to yourself, mark it as read
     let comment_id = comment_view.comment.id;
     if local_user_view.person.id == comment_view.get_recipient_id() {
-      match blocking(context.pool(), move |conn| {
+      blocking(context.pool(), move |conn| {
         Comment::update_read(conn, comment_id, true)
       })
       .await?
-      {
-        Ok(comment) => comment,
-        Err(_e) => return Err(ApiError::err("couldnt_update_comment").into()),
-      };
+      .map_err(|_| ApiError::err("couldnt_update_comment"))?;
       comment_view.comment.read = true;
     }
 
index bbac9c84b7e6c04db4208d11475edea307869e4f..8f928096576bd9602d5123374f404fc213dbe845 100644 (file)
@@ -47,14 +47,11 @@ impl PerformCrud for DeleteComment {
 
     // Do the delete
     let deleted = data.deleted;
-    let updated_comment = match blocking(context.pool(), move |conn| {
+    let updated_comment = blocking(context.pool(), move |conn| {
       Comment::update_deleted(conn, comment_id, deleted)
     })
     .await?
-    {
-      Ok(comment) => comment,
-      Err(_e) => return Err(ApiError::err("couldnt_update_comment").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_update_comment"))?;
 
     // Send the apub message
     if deleted {
@@ -139,14 +136,11 @@ impl PerformCrud for RemoveComment {
 
     // Do the remove
     let removed = data.removed;
-    let updated_comment = match blocking(context.pool(), move |conn| {
+    let updated_comment = blocking(context.pool(), move |conn| {
       Comment::update_removed(conn, comment_id, removed)
     })
     .await?
-    {
-      Ok(comment) => comment,
-      Err(_e) => return Err(ApiError::err("couldnt_update_comment").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_update_comment"))?;
 
     // Mod tables
     let form = ModRemoveCommentForm {
index a7ad3aca2fbf0da8a3cccbac02a604690f1f7788..17f3a57d106c31d6efe052efb54b7b7da53f801f 100644 (file)
@@ -40,11 +40,8 @@ impl PerformCrud for GetComments {
         .limit(limit)
         .list()
     })
-    .await?;
-    let comments = match comments {
-      Ok(comments) => comments,
-      Err(_) => return Err(ApiError::err("couldnt_get_comments").into()),
-    };
+    .await?
+    .map_err(|_| ApiError::err("couldnt_get_comments"))?;
 
     Ok(GetCommentsResponse { comments })
   }
index fb6bdaf1128ec37ca34601b35564b9a4003227c0..e26a9884e0f64cf397c4dfc7c4ce8fe09f0dc64f 100644 (file)
@@ -52,14 +52,11 @@ impl PerformCrud for EditComment {
     // Do the update
     let content_slurs_removed = remove_slurs(&data.content.to_owned());
     let comment_id = data.comment_id;
-    let updated_comment = match blocking(context.pool(), move |conn| {
+    let updated_comment = blocking(context.pool(), move |conn| {
       Comment::update_content(conn, comment_id, &content_slurs_removed)
     })
     .await?
-    {
-      Ok(comment) => comment,
-      Err(_e) => return Err(ApiError::err("couldnt_update_comment").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_update_comment"))?;
 
     // Send the apub update
     updated_comment
index 393b3746a22c4168b4d762e681d5164e89380f4a..d733966ca8e1818c8fd71c31b2cfa3f9650648c5 100644 (file)
@@ -85,14 +85,11 @@ impl PerformCrud for CreateCommunity {
       ..CommunityForm::default()
     };
 
-    let inserted_community = match blocking(context.pool(), move |conn| {
+    let inserted_community = blocking(context.pool(), move |conn| {
       Community::create(conn, &community_form)
     })
     .await?
-    {
-      Ok(community) => community,
-      Err(_e) => return Err(ApiError::err("community_already_exists").into()),
-    };
+    .map_err(|_| ApiError::err("community_already_exists"))?;
 
     // The community creator becomes a moderator
     let community_moderator_form = CommunityModeratorForm {
index fb01b08ec4cbfcb7ec54493c043cd68c8ddf1647..9511a2caaf3facc4ab38baa96547428b3be31204 100644 (file)
@@ -41,14 +41,11 @@ impl PerformCrud for DeleteCommunity {
     // Do the delete
     let community_id = data.community_id;
     let deleted = data.deleted;
-    let updated_community = match blocking(context.pool(), move |conn| {
+    let updated_community = blocking(context.pool(), move |conn| {
       Community::update_deleted(conn, community_id, deleted)
     })
     .await?
-    {
-      Ok(community) => community,
-      Err(_e) => return Err(ApiError::err("couldnt_update_community").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_update_community"))?;
 
     // Send apub messages
     if deleted {
@@ -99,14 +96,11 @@ impl PerformCrud for RemoveCommunity {
     // Do the remove
     let community_id = data.community_id;
     let removed = data.removed;
-    let updated_community = match blocking(context.pool(), move |conn| {
+    let updated_community = blocking(context.pool(), move |conn| {
       Community::update_removed(conn, community_id, removed)
     })
     .await?
-    {
-      Ok(community) => community,
-      Err(_e) => return Err(ApiError::err("couldnt_update_community").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_update_community"))?;
 
     // Mod tables
     let expires = data.expires.map(naive_from_unix);
index 08982aa15b64573e04beffeaab7f16a7f2316b87..422161ae175ba9e9f851e326c1865b752b09064d 100644 (file)
@@ -28,35 +28,26 @@ impl PerformCrud for GetCommunity {
       Some(id) => id,
       None => {
         let name = data.name.to_owned().unwrap_or_else(|| "main".to_string());
-        match blocking(context.pool(), move |conn| {
+        blocking(context.pool(), move |conn| {
           Community::read_from_name(conn, &name)
         })
         .await?
-        {
-          Ok(community) => community,
-          Err(_e) => return Err(ApiError::err("couldnt_find_community").into()),
-        }
+        .map_err(|_| ApiError::err("couldnt_find_community"))?
         .id
       }
     };
 
-    let community_view = match blocking(context.pool(), move |conn| {
+    let community_view = blocking(context.pool(), move |conn| {
       CommunityView::read(conn, community_id, person_id)
     })
     .await?
-    {
-      Ok(community) => community,
-      Err(_e) => return Err(ApiError::err("couldnt_find_community").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_find_community"))?;
 
-    let moderators: Vec<CommunityModeratorView> = match blocking(context.pool(), move |conn| {
+    let moderators: Vec<CommunityModeratorView> = blocking(context.pool(), move |conn| {
       CommunityModeratorView::for_community(conn, community_id)
     })
     .await?
-    {
-      Ok(moderators) => moderators,
-      Err(_e) => return Err(ApiError::err("couldnt_find_community").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_find_community"))?;
 
     let online = context
       .chat_server()
index 2fe86414f30a17d699c68f042f2f142203cd4cd7..3a2311a768e751b51ce115c70753f7f2a78f9a89 100644 (file)
@@ -69,15 +69,12 @@ impl PerformCrud for CreatePost {
       };
 
     let inserted_post_id = inserted_post.id;
-    let updated_post = match blocking(context.pool(), move |conn| -> Result<Post, LemmyError> {
+    let updated_post = blocking(context.pool(), move |conn| -> Result<Post, LemmyError> {
       let apub_id = generate_apub_endpoint(EndpointType::Post, &inserted_post_id.to_string())?;
       Ok(Post::update_ap_id(conn, inserted_post_id, apub_id)?)
     })
     .await?
-    {
-      Ok(post) => post,
-      Err(_e) => return Err(ApiError::err("couldnt_create_post").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_create_post"))?;
 
     updated_post
       .send_create(&local_user_view.person, context)
@@ -101,14 +98,11 @@ impl PerformCrud for CreatePost {
 
     // Refetch the view
     let inserted_post_id = inserted_post.id;
-    let post_view = match blocking(context.pool(), move |conn| {
+    let post_view = blocking(context.pool(), move |conn| {
       PostView::read(conn, inserted_post_id, Some(local_user_view.person.id))
     })
     .await?
-    {
-      Ok(post) => post,
-      Err(_e) => return Err(ApiError::err("couldnt_find_post").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_find_post"))?;
 
     let res = PostResponse { post_view };
 
index d8897317acb7bcd454e469e134ad211b1cab5138..32388910180521b4ea594c3428588e19eb555577 100644 (file)
@@ -28,14 +28,11 @@ impl PerformCrud for GetPost {
     let person_id = local_user_view.map(|u| u.person.id);
 
     let id = data.id;
-    let post_view = match blocking(context.pool(), move |conn| {
+    let post_view = blocking(context.pool(), move |conn| {
       PostView::read(conn, id, person_id)
     })
     .await?
-    {
-      Ok(post) => post,
-      Err(_e) => return Err(ApiError::err("couldnt_find_post").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_find_post"))?;
 
     let id = data.id;
     let comments = blocking(context.pool(), move |conn| {
@@ -54,14 +51,11 @@ impl PerformCrud for GetPost {
     .await??;
 
     // Necessary for the sidebar
-    let community_view = match blocking(context.pool(), move |conn| {
+    let community_view = blocking(context.pool(), move |conn| {
       CommunityView::read(conn, community_id, person_id)
     })
     .await?
-    {
-      Ok(community) => community,
-      Err(_e) => return Err(ApiError::err("couldnt_find_community").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_find_community"))?;
 
     let online = context
       .chat_server()
@@ -108,7 +102,7 @@ impl PerformCrud for GetPosts {
     let community_name = data.community_name.to_owned();
     let saved_only = data.saved_only;
 
-    let posts = match blocking(context.pool(), move |conn| {
+    let posts = blocking(context.pool(), move |conn| {
       PostQueryBuilder::create(conn)
         .listing_type(&type_)
         .sort(&sort)
@@ -122,10 +116,7 @@ impl PerformCrud for GetPosts {
         .list()
     })
     .await?
-    {
-      Ok(posts) => posts,
-      Err(_e) => return Err(ApiError::err("couldnt_get_posts").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_get_posts"))?;
 
     Ok(GetPostsResponse { posts })
   }
index 53c0b950f245f107f09307fadf3450762a5139d0..2dc223ec01173dac476fff3f0e33cba767a168e5 100644 (file)
@@ -46,7 +46,7 @@ impl PerformCrud for CreatePrivateMessage {
     };
 
     let inserted_private_message_id = inserted_private_message.id;
-    let updated_private_message = match blocking(
+    let updated_private_message = blocking(
       context.pool(),
       move |conn| -> Result<PrivateMessage, LemmyError> {
         let apub_id = generate_apub_endpoint(
@@ -61,10 +61,7 @@ impl PerformCrud for CreatePrivateMessage {
       },
     )
     .await?
-    {
-      Ok(private_message) => private_message,
-      Err(_e) => return Err(ApiError::err("couldnt_create_private_message").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_create_private_message"))?;
 
     updated_private_message
       .send_create(&local_user_view.person, context)
index 506b0490a16c82f06978d3a8cb378a6e3179ecf6..65c0022ceba656deb0e351a53acd182e8f54a1ad 100644 (file)
@@ -37,14 +37,11 @@ impl PerformCrud for DeletePrivateMessage {
     // Doing the update
     let private_message_id = data.private_message_id;
     let deleted = data.deleted;
-    let updated_private_message = match blocking(context.pool(), move |conn| {
+    let updated_private_message = blocking(context.pool(), move |conn| {
       PrivateMessage::update_deleted(conn, private_message_id, deleted)
     })
     .await?
-    {
-      Ok(private_message) => private_message,
-      Err(_e) => return Err(ApiError::err("couldnt_update_private_message").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_update_private_message"))?;
 
     // Send the apub update
     if data.deleted {
index 4bfb1bb9993eecea91534b3205e7d293b66241ac..b073c928c0b98973d3e9073bd93f22a6cb271006 100644 (file)
@@ -37,14 +37,11 @@ impl PerformCrud for EditPrivateMessage {
     // Doing the update
     let content_slurs_removed = remove_slurs(&data.content);
     let private_message_id = data.private_message_id;
-    let updated_private_message = match blocking(context.pool(), move |conn| {
+    let updated_private_message = blocking(context.pool(), move |conn| {
       PrivateMessage::update_content(conn, private_message_id, &content_slurs_removed)
     })
     .await?
-    {
-      Ok(private_message) => private_message,
-      Err(_e) => return Err(ApiError::err("couldnt_update_private_message").into()),
-    };
+    .map_err(|_| ApiError::err("couldnt_update_private_message"))?;
 
     // Send the apub update
     updated_private_message
index 96bc3be9ac34aca8359d9070138f0cc918b0e792..be9fdbed9aaa5cd6e6c8e9983f1902b8bf4427aa 100644 (file)
@@ -111,16 +111,11 @@ impl PerformCrud for Register {
     };
 
     // insert the person
-    let inserted_person = match blocking(context.pool(), move |conn| {
+    let inserted_person = blocking(context.pool(), move |conn| {
       Person::create(conn, &person_form)
     })
     .await?
-    {
-      Ok(u) => u,
-      Err(_) => {
-        return Err(ApiError::err("user_already_exists").into());
-      }
-    };
+    .map_err(|_| ApiError::err("user_already_exists"))?;
 
     // Create the local user
     let local_user_form = LocalUserForm {
index 3136e100f89b060fe0ff7dec5cbbd2f43d35be4d..710bccb755aa74c90b8f9306192d7b2e9c0b35e9 100644 (file)
@@ -43,10 +43,9 @@ impl PerformCrud for GetPersonDetails {
           Person::find_by_name(conn, &username)
         })
         .await?;
-        match person {
-          Ok(p) => p.id,
-          Err(_e) => return Err(ApiError::err("couldnt_find_that_username_or_email").into()),
-        }
+        person
+          .map_err(|_| ApiError::err("couldnt_find_that_username_or_email"))?
+          .id
       }
     };