switching to serde_json for some heavy lifting of json conversions
This commit is contained in:
parent
bb426897d2
commit
19ee2c2577
@ -4,6 +4,7 @@ extern crate dotenv;
|
||||
extern crate getrandom;
|
||||
extern crate bcrypt;
|
||||
extern crate base64;
|
||||
extern crate serde;
|
||||
|
||||
use std::net::SocketAddr;
|
||||
use std::convert::Infallible; // our main dispatcher basically never fails hence why we use this
|
||||
|
@ -4,9 +4,11 @@ use hyper::header::{HeaderName, HeaderValue};
|
||||
use mysql_async::{Conn, Pool, error::Error as MySqlError};
|
||||
use mysql_async::prelude::{params, Queryable};
|
||||
use serde_json::Value;
|
||||
use serde::Serialize;
|
||||
|
||||
use crate::db_types::{UBigInt, BigInt, Integer, VarChar};
|
||||
|
||||
#[derive(Serialize)]
|
||||
pub struct Member {
|
||||
pub id: UBigInt,
|
||||
pub secret: VarChar,
|
||||
@ -16,12 +18,6 @@ pub struct Member {
|
||||
pub permissions: UBigInt,
|
||||
}
|
||||
|
||||
impl Member {
|
||||
pub fn to_json(&self) -> String {
|
||||
unimplemented!()
|
||||
}
|
||||
}
|
||||
|
||||
struct InsertableMember<'n> {
|
||||
name: &'n str,
|
||||
permissions: u64,
|
||||
@ -51,8 +47,8 @@ pub async fn insert_new_member(p: &Pool, name: VarChar, perms: u64) -> Result<Me
|
||||
"INSERT INTO members(secret, name, joindate, status, permissions)
|
||||
VALUES(:secret, :name, :joindate, :status, :permissions)",
|
||||
mysql_async::params!{
|
||||
"secret" => secret.as_ref(),
|
||||
"name" => name.as_ref(),
|
||||
"secret" => secret.clone(),
|
||||
"name" => name.clone(),
|
||||
"joindate" => now,
|
||||
"status" => 0,
|
||||
"permissions" => perms
|
||||
@ -62,7 +58,7 @@ pub async fn insert_new_member(p: &Pool, name: VarChar, perms: u64) -> Result<Me
|
||||
let db_row_result: (Conn, Option<UBigInt>) = conn.first_exec(
|
||||
"SELECT id FROM members WHERE secret = :secret",
|
||||
params!{
|
||||
"secret" => secret.as_ref()
|
||||
"secret" => secret.clone()
|
||||
}).await?;
|
||||
|
||||
Ok(Member {
|
||||
@ -92,7 +88,7 @@ async fn general_new_user(p: &Pool, resp: &mut Response<Body>, params: Value) {
|
||||
let json_hdr_name = HeaderName::from_static("Content-Type");
|
||||
let json_hdr_val = HeaderValue::from_static("application/json");
|
||||
resp.headers_mut().insert(json_hdr_name, json_hdr_val);
|
||||
*resp.body_mut() = Body::from(new_member.to_json());
|
||||
*resp.body_mut() = Body::from(serde_json::to_string(&new_member).unwrap());
|
||||
},
|
||||
Err(_) => {
|
||||
*resp.status_mut() = StatusCode::INTERNAL_SERVER_ERROR;
|
||||
|
Loading…
Reference in New Issue
Block a user