mirror of
				https://gitlab.com/comunic/comunicapiv3
				synced 2025-10-30 23:24:42 +00:00 
			
		
		
		
	Can get a user id included in a POST request
This commit is contained in:
		| @@ -48,5 +48,8 @@ pub fn get_multiple(request: &mut HttpRequestHandler) -> RequestResult { | ||||
|  | ||||
| /// Get advanced information about a user | ||||
| pub fn get_advanced_info(request: &mut HttpRequestHandler) -> RequestResult { | ||||
|     let user_id = request.post_user_id("userID")?; | ||||
|  | ||||
|  | ||||
|     request.success("get user info") | ||||
| } | ||||
| @@ -12,7 +12,7 @@ use crate::data::api_client::APIClient; | ||||
| use crate::data::config::conf; | ||||
| use crate::data::error::{ExecError, ResultBoxError}; | ||||
| use crate::data::user::UserID; | ||||
| use crate::helpers::{account_helper, api_helper}; | ||||
| use crate::helpers::{account_helper, api_helper, user_helper}; | ||||
|  | ||||
| /// Http request handler | ||||
| /// | ||||
| @@ -303,4 +303,19 @@ impl HttpRequestHandler { | ||||
|  | ||||
|         Ok(list) | ||||
|     } | ||||
|  | ||||
|     /// Get the ID of a user included in a POST request | ||||
|     pub fn post_user_id(&mut self, name: &str) -> ResultBoxError<UserID> { | ||||
|         let user_id = self.post_i64(name)?; | ||||
|  | ||||
|         if user_id < 1 { | ||||
|             self.bad_request(format!("Invalid user specified in '{}'!", name))?; | ||||
|         } | ||||
|  | ||||
|         if !user_helper::exists(user_id)? { | ||||
|             self.not_found(format!("User with ID {} not found!", user_id))?; | ||||
|         } | ||||
|  | ||||
|         Ok(user_id) | ||||
|     } | ||||
| } | ||||
| @@ -107,6 +107,11 @@ impl QueryInfo { | ||||
|                                                              -> Result<Vec<E>, Box<dyn Error>> { | ||||
|         query(self, process_function) | ||||
|     } | ||||
|  | ||||
|     /// Execute count query | ||||
|     pub fn exec_count(self) -> ResultBoxError<usize> { | ||||
|         count(self) | ||||
|     } | ||||
| } | ||||
|  | ||||
| /// Struct used to read the result of a request | ||||
|   | ||||
| @@ -52,4 +52,11 @@ fn exec_get_user_query(query: database::QueryInfo) -> ResultBoxError<User> { | ||||
|             account_image_visibility, | ||||
|         }) | ||||
|     }) | ||||
| } | ||||
|  | ||||
| /// Check out whether a given id maps to a user or not | ||||
| pub fn exists(id: UserID) -> ResultBoxError<bool> { | ||||
|     Ok(database::QueryInfo::new(USERS_TABLE) | ||||
|         .cond_i64("ID", id) | ||||
|         .exec_count()? > 0) | ||||
| } | ||||
		Reference in New Issue
	
	Block a user