Adding new routes for /members/get_online & /members/me
Passing the previous tests as well
This commit is contained in:
@@ -9,7 +9,7 @@ use serde::Serialize;
|
||||
use crate::{Response, no_conn, sql_err};
|
||||
use crate::{UBigInt, BigInt, Integer, VarChar};
|
||||
|
||||
use crate::common::{FromDB};
|
||||
use crate::common::FromDB;
|
||||
|
||||
#[derive(Debug, Serialize)]
|
||||
pub struct Member {
|
||||
@@ -38,6 +38,8 @@ impl FromDB<Member, Integer> for Member {
|
||||
type Row = Option<(VarChar, VarChar, BigInt, Integer, UBigInt)>;
|
||||
|
||||
async fn get(p: &Pool, id: UBigInt) -> Response<Self> {
|
||||
//! @returns Row on success
|
||||
//! @returns Other on failure
|
||||
if let Ok(conn) = p.get_conn().await {
|
||||
let q = "SELECT secret, name, joindate, status, permissions FROM members WHERE id = :id";
|
||||
let db_res : Result<(Conn, Self::Row), SqlError>
|
||||
@@ -45,7 +47,7 @@ impl FromDB<Member, Integer> for Member {
|
||||
if let Ok((_, row)) = db_res {
|
||||
return match row {
|
||||
Some(row) => Response::Row(Self {
|
||||
id: id,
|
||||
id,
|
||||
secret: row.0,
|
||||
name: row.1,
|
||||
joindate: row.2,
|
||||
@@ -114,20 +116,20 @@ impl FromDB<Member, Integer> for Member {
|
||||
// i.e. we should be able to get user 100 -> 150 instead of just the
|
||||
// first 1000 people
|
||||
let q =
|
||||
"SELECT id, name, status, permissions FROM memebrs
|
||||
WHERE status = :stat LIMIT 1000"; // high limit for now
|
||||
"SELECT id, name, status, permissions FROM members
|
||||
WHERE status = :stat LIMIT 100"; // high limit for now
|
||||
if let Ok(query) = conn.prep_exec(q, params!{"stat" => status}).await {
|
||||
let mapping_r = query.map_and_drop(|row| {
|
||||
let (id, name, status, permissions): (UBigInt, VarChar, Integer, UBigInt) =
|
||||
mysql_async::from_row(row);
|
||||
|
||||
Member {
|
||||
id: id,
|
||||
id,
|
||||
secret: "".into(), // no show for obv reasons
|
||||
name: name,
|
||||
name,
|
||||
joindate: 0, // doesn't matter
|
||||
status: status,
|
||||
permissions: permissions
|
||||
status,
|
||||
permissions
|
||||
}
|
||||
}).await;
|
||||
match mapping_r {
|
||||
@@ -136,7 +138,7 @@ impl FromDB<Member, Integer> for Member {
|
||||
}
|
||||
}
|
||||
else {
|
||||
Response::Other(sql_err!("db::Members::filter"))
|
||||
Response::Other(sql_err!("Initial query faile: db::Members::filter"))
|
||||
}
|
||||
}
|
||||
_ => Response::Other(sql_err!("err"))
|
||||
@@ -183,7 +185,7 @@ impl Member {
|
||||
|
||||
if let Some(id) = opt_id {
|
||||
return Ok(Response::Row(Self {
|
||||
id: id,
|
||||
id,
|
||||
secret: secret.into(),
|
||||
name: name.into(),
|
||||
joindate: now,
|
||||
|
||||
Reference in New Issue
Block a user