1
0
mirror of https://gitlab.com/comunic/comunicapiv3 synced 2025-06-21 00:45:18 +00:00

Get information about API client

This commit is contained in:
2020-05-23 11:00:53 +02:00
parent b18f6f4190
commit 665aa1683c
8 changed files with 87 additions and 10 deletions

27
src/helpers/api_helper.rs Normal file
View File

@ -0,0 +1,27 @@
use crate::data::api_client::APIClient;
use crate::helpers::database;
use crate::helpers::database::QueryInfo;
use crate::database_structure::SERVICES_TABLES;
use crate::data::error::ResultBoxError;
/// API helper
///
/// @author Pierre Hubert
/// Get information about a client
pub fn get_client(name: &str, token: &str) -> ResultBoxError<APIClient> {
database::query_row(
QueryInfo::new(SERVICES_TABLES)
.cond("service_name", name)
.cond("token", token),
|res| {
Ok(APIClient {
id: res.get_int64("id")? as u32,
name: res.get_str("service_name")?,
token: res.get_str("token")?,
domain: res.get_optional_str("domain")?,
})
}
)
}

View File

@ -125,6 +125,14 @@ impl<'a> RowResult<'a> {
Some(s) => Ok(s)
}
}
/// Get an optional string
pub fn get_optional_str(&self, name: &str) -> Result<Option<String>, ExecError> {
match self.find_col(name) {
Ok(col) => Ok(self.row.get(col)),
Err(_) => Ok(None),
}
}
}

View File

@ -1 +1,3 @@
pub mod database;
pub mod database;
pub mod api_helper;