mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2024-12-29 06:58:50 +00:00
Better anticipation of errors
This commit is contained in:
parent
f9a8cd4e82
commit
faa31f599a
@ -117,7 +117,7 @@ impl QueryInfo {
|
|||||||
|
|
||||||
/// Query just a row
|
/// Query just a row
|
||||||
pub fn query_row<E, F: Fn(&RowResult) -> ProcessRowResult<E>>(self, process_function: F)
|
pub fn query_row<E, F: Fn(&RowResult) -> ProcessRowResult<E>>(self, process_function: F)
|
||||||
-> Result<E, Box<dyn Error>> {
|
-> Result<E, Box<dyn Error>> {
|
||||||
query_row(self, process_function)
|
query_row(self, process_function)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -230,7 +230,7 @@ impl<'a> RowResult<'a> {
|
|||||||
/// Get a MYSQL date as a timestamp
|
/// Get a MYSQL date as a timestamp
|
||||||
pub fn get_date_as_time(&self, name: &str) -> ResultBoxError<u64> {
|
pub fn get_date_as_time(&self, name: &str) -> ResultBoxError<u64> {
|
||||||
let value = self.row.get_opt(self.find_col(name)?);
|
let value = self.row.get_opt(self.find_col(name)?);
|
||||||
let value : Value = value.ok_or(ExecError(format!("Could not find date field {} !", name)))??;
|
let value: Value = value.ok_or(ExecError(format!("Could not find date field {} !", name)))??;
|
||||||
|
|
||||||
// Check if it is a date
|
// Check if it is a date
|
||||||
if let Value::Date(year, month, day, hour, minutes, seconds, mic_secs) = value {
|
if let Value::Date(year, month, day, hour, minutes, seconds, mic_secs) = value {
|
||||||
@ -248,11 +248,14 @@ impl<'a> RowResult<'a> {
|
|||||||
/// Query a single row of the database
|
/// Query a single row of the database
|
||||||
pub fn query_row<E, F: Fn(&RowResult) -> ProcessRowResult<E>>(mut info: QueryInfo,
|
pub fn query_row<E, F: Fn(&RowResult) -> ProcessRowResult<E>>(mut info: QueryInfo,
|
||||||
process_function: F) -> Result<E, Box<dyn Error>> {
|
process_function: F) -> Result<E, Box<dyn Error>> {
|
||||||
|
let table = info.table.clone();
|
||||||
|
|
||||||
info.limit = 1;
|
info.limit = 1;
|
||||||
let mut list = query(info, process_function)?;
|
let mut list = query(info, process_function)?;
|
||||||
|
|
||||||
match list.len() {
|
match list.len() {
|
||||||
0 => Err(ExecError::boxed_new("Request did not return a result!")),
|
0 => Err(ExecError::boxed_string(
|
||||||
|
format!("Database query did not return a result: (table: {}) !", table))),
|
||||||
_ => Ok(list.remove(0))
|
_ => Ok(list.remove(0))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -434,7 +437,7 @@ pub fn delete(query: DeleteQuery) -> ResultBoxError<()> {
|
|||||||
|
|
||||||
get_connection()?.exec_drop(
|
get_connection()?.exec_drop(
|
||||||
query_sql,
|
query_sql,
|
||||||
query.conditions.values().collect::<Vec<&Value>>()
|
query.conditions.values().collect::<Vec<&Value>>(),
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
Loading…
Reference in New Issue
Block a user