From e6468b012d5b33dd16992652da57f11dd5a6e82f Mon Sep 17 00:00:00 2001 From: Jokler Date: Sun, 21 Jun 2020 06:37:46 +0200 Subject: Initial commit --- src/util.rs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/util.rs (limited to 'src/util.rs') diff --git a/src/util.rs b/src/util.rs new file mode 100644 index 0000000..944feb6 --- /dev/null +++ b/src/util.rs @@ -0,0 +1,37 @@ +use actix::{Handler, Message}; +use diesel::{ExpressionMethods, MysqlConnection, QueryDsl, RunQueryDsl}; + +use crate::error::ServiceError; +use crate::model::{DbExecutor, User}; +use crate::schema::users::{columns as user_columns, dsl::users}; + +pub struct UserRequest(pub String); + +impl Message for UserRequest { + type Result = Result; +} + +impl Handler for DbExecutor { + type Result = Result; + + fn handle(&mut self, req: UserRequest, _: &mut Self::Context) -> Self::Result { + let conn: &MysqlConnection = &self.0.get().unwrap(); + + users + .filter(user_columns::name.eq(req.0)) + .first::(conn) + .map_err(|_| ServiceError::NotFound) + } +} + +pub mod filters { + use num_format::{CustomFormat, ToFormattedString}; + + pub fn fmt_points(amount: &u64) -> Result { + let format = CustomFormat::builder() + .separator(" ") + .build() + .expect("Format is fine"); + Ok(format!("{} JKP", (*amount).to_formatted_string(&format))) + } +} -- cgit v1.2.3-70-g09d2