1
0
mirror of https://gitlab.com/comunic/comunicapiv3 synced 2025-09-25 22:29:45 +00:00

Make all HTTP routes asynchronous

This commit is contained in:
2022-03-11 21:56:08 +01:00
parent 13e73ede8b
commit b2514351a1
24 changed files with 161 additions and 156 deletions

View File

@@ -31,7 +31,7 @@ use crate::utils::string_utils::remove_html_nodes;
use crate::utils::user_data_utils::{delete_user_data_file_if_exists, user_data_path};
/// Create a new conversation
pub fn create(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn create(r: &mut HttpRequestHandler) -> RequestResult {
let mut members = r.post_users_id("users")?;
// Add current user ID if required
@@ -55,14 +55,14 @@ pub fn create(r: &mut HttpRequestHandler) -> RequestResult {
}
/// Get the list of conversations of a user
pub fn get_list(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn get_list(r: &mut HttpRequestHandler) -> RequestResult {
let list = conversations_helper::get_list_user(&r.user_id()?)?;
r.set_response(list.iter().map(|c| ConversationAPI::new(c)).collect::<Vec<ConversationAPI>>())
}
/// Get information about a single conversation
pub fn get_single(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn get_single(r: &mut HttpRequestHandler) -> RequestResult {
let conv = r.post_conv("conversationID")?;
let conv = conversations_helper::get_single(conv.conv_id)?;
@@ -70,7 +70,7 @@ pub fn get_single(r: &mut HttpRequestHandler) -> RequestResult {
}
/// Update the settings of a conversation
pub fn update_settings(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn update_settings(r: &mut HttpRequestHandler) -> RequestResult {
let conv_membership = r.post_conv("conversationID")?;
// Update following state, if required
@@ -105,7 +105,7 @@ pub fn update_settings(r: &mut HttpRequestHandler) -> RequestResult {
}
/// Change conversation image
pub fn change_image(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn change_image(r: &mut HttpRequestHandler) -> RequestResult {
let conv_membership = r.post_conv_admin("convID")?;
let conv = conversations_helper::get_single(conv_membership.conv_id)?;
@@ -119,7 +119,7 @@ pub fn change_image(r: &mut HttpRequestHandler) -> RequestResult {
}
/// Delete conversation image
pub fn delete_image(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn delete_image(r: &mut HttpRequestHandler) -> RequestResult {
let conv_membership = r.post_conv_admin("convID")?;
let conv = conversations_helper::get_single(conv_membership.conv_id)?;
@@ -129,7 +129,7 @@ pub fn delete_image(r: &mut HttpRequestHandler) -> RequestResult {
}
/// Add a new member to a conversation
pub fn add_member(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn add_member(r: &mut HttpRequestHandler) -> RequestResult {
let conv_membership = r.post_conv("convID")?;
let conv = conversations_helper::get_single(conv_membership.conv_id)?;
@@ -153,7 +153,7 @@ pub fn add_member(r: &mut HttpRequestHandler) -> RequestResult {
}
/// Update admin status of a user
pub fn set_admin(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn set_admin(r: &mut HttpRequestHandler) -> RequestResult {
let conv_membership = r.post_conv_admin("convID")?;
let conv = conversations_helper::get_single(conv_membership.conv_id)?;
let user_to_update = r.post_user_id("userID")?;
@@ -177,7 +177,7 @@ pub fn set_admin(r: &mut HttpRequestHandler) -> RequestResult {
}
/// Remove a member from a conversation
pub fn remove_member(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn remove_member(r: &mut HttpRequestHandler) -> RequestResult {
let conv_membership = r.post_conv_admin("convID")?;
let conv = conversations_helper::get_single(conv_membership.conv_id)?;
@@ -201,7 +201,7 @@ pub fn remove_member(r: &mut HttpRequestHandler) -> RequestResult {
}
/// Find a private conversation
pub fn find_private(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn find_private(r: &mut HttpRequestHandler) -> RequestResult {
let other_user = r.post_user_id("otherUser")?;
let allow_create = r.post_bool_opt("allowCreate", false);
@@ -236,7 +236,7 @@ pub fn find_private(r: &mut HttpRequestHandler) -> RequestResult {
}
/// Refresh a single conversation
pub fn refresh_single(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn refresh_single(r: &mut HttpRequestHandler) -> RequestResult {
let conv = r.post_conv("conversationID")?;
let last_message_id = r.post_u64("last_message_id")?;
@@ -262,7 +262,7 @@ pub fn refresh_single(r: &mut HttpRequestHandler) -> RequestResult {
}
/// Get older messages of a conversation
pub fn get_older_messages(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn get_older_messages(r: &mut HttpRequestHandler) -> RequestResult {
let conv = r.post_conv("conversationID")?;
let max_id = r.post_u64("oldest_message_id")? - 1;
@@ -280,7 +280,7 @@ pub fn get_older_messages(r: &mut HttpRequestHandler) -> RequestResult {
}
/// Send a new message
pub fn send_message(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn send_message(r: &mut HttpRequestHandler) -> RequestResult {
let conv = r.post_conv("conversationID")?;
// Get associated file
@@ -401,21 +401,21 @@ pub fn send_message(r: &mut HttpRequestHandler) -> RequestResult {
}
/// Count the number of unread conversation of the user
pub fn count_unread(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn count_unread(r: &mut HttpRequestHandler) -> RequestResult {
let num = conversations_helper::count_unread_for_user(&r.user_id()?)?;
r.set_response(ResultCountUnreadConversations::new(num))
}
/// Get the list of unread conversations of a user
pub fn list_unread(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn list_unread(r: &mut HttpRequestHandler) -> RequestResult {
let list = conversations_helper::get_list_unread(&r.user_id()?)?;
r.set_response(UnreadConversationAPI::for_list(&list)?)
}
/// Delete a conversation
pub fn delete_conversation(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn delete_conversation(r: &mut HttpRequestHandler) -> RequestResult {
let conv_membership = r.post_conv("conversationID")?;
let conv = conversations_helper::get_single(conv_membership.conv_id)?;
@@ -429,7 +429,7 @@ pub fn delete_conversation(r: &mut HttpRequestHandler) -> RequestResult {
}
/// Update a single conversation message
pub fn update_message(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn update_message(r: &mut HttpRequestHandler) -> RequestResult {
let msg_id = r.post_u64("messageID")?;
let new_content = r.post_string_opt("content", MIN_CONVERSATION_MESSAGE_LENGTH, true)?;
@@ -453,7 +453,7 @@ pub fn update_message(r: &mut HttpRequestHandler) -> RequestResult {
}
/// Delete a conversation message
pub fn delete_message(r: &mut HttpRequestHandler) -> RequestResult {
pub async fn delete_message(r: &mut HttpRequestHandler) -> RequestResult {
let msg_id = r.post_u64("messageID")?;
if !conversations_helper::is_message_owner(&r.user_id()?, msg_id)? {