only use std duration in config
This commit is contained in:
parent
344b7e07a2
commit
a83a099f34
2 changed files with 10 additions and 20 deletions
|
@ -1,8 +1,7 @@
|
||||||
use std::net::SocketAddr;
|
use std::net::SocketAddr;
|
||||||
use std::time::Duration as StdDuration;
|
use std::time::Duration;
|
||||||
|
|
||||||
use serde::{Deserialize, Deserializer};
|
use serde::{Deserialize, Deserializer};
|
||||||
use chrono::Duration as ChronoDuration;
|
|
||||||
|
|
||||||
use crate::models::name::SerdeName;
|
use crate::models::name::SerdeName;
|
||||||
use crate::dns::TsigAlgorithm;
|
use crate::dns::TsigAlgorithm;
|
||||||
|
@ -18,7 +17,7 @@ pub struct Config {
|
||||||
pub struct DnsClientConfig {
|
pub struct DnsClientConfig {
|
||||||
pub server: SocketAddr,
|
pub server: SocketAddr,
|
||||||
#[serde(deserialize_with = "from_std_duration")]
|
#[serde(deserialize_with = "from_std_duration")]
|
||||||
pub timeout: StdDuration,
|
pub timeout: Duration,
|
||||||
pub tsig: Option<TsigConfig>,
|
pub tsig: Option<TsigConfig>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,12 +32,12 @@ pub struct TsigConfig {
|
||||||
|
|
||||||
#[derive(Debug, Deserialize)]
|
#[derive(Debug, Deserialize)]
|
||||||
pub struct WebAppConfig {
|
pub struct WebAppConfig {
|
||||||
#[serde(deserialize_with = "from_chrono_duration")]
|
#[serde(deserialize_with = "from_std_duration")]
|
||||||
pub token_duration: ChronoDuration,
|
pub token_duration: Duration,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fn from_std_duration<'de, D>(deserializer: D) -> Result<StdDuration, D::Error>
|
fn from_std_duration<'de, D>(deserializer: D) -> Result<Duration, D::Error>
|
||||||
where D: Deserializer<'de>
|
where D: Deserializer<'de>
|
||||||
{
|
{
|
||||||
use serde::de::Error;
|
use serde::de::Error;
|
||||||
|
@ -46,16 +45,6 @@ fn from_std_duration<'de, D>(deserializer: D) -> Result<StdDuration, D::Error>
|
||||||
.and_then(|string| humantime::parse_duration(&string).map_err(|err| Error::custom(err.to_string())))
|
.and_then(|string| humantime::parse_duration(&string).map_err(|err| Error::custom(err.to_string())))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn from_chrono_duration<'de, D>(deserializer: D) -> Result<ChronoDuration, D::Error>
|
|
||||||
where D: Deserializer<'de>
|
|
||||||
{
|
|
||||||
use serde::de::Error;
|
|
||||||
String::deserialize(deserializer)
|
|
||||||
.and_then(|string| humantime::parse_duration(&string).map_err(|err| Error::custom(err.to_string())))
|
|
||||||
.and_then(|duration| ChronoDuration::from_std(duration).map_err(|err| Error::custom(err.to_string())))
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
fn from_base64<'de, D>(deserializer: D) -> Result<Vec<u8>, D::Error>
|
fn from_base64<'de, D>(deserializer: D) -> Result<Vec<u8>, D::Error>
|
||||||
where D: Deserializer<'de>
|
where D: Deserializer<'de>
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
|
use std::time::Duration as StdDuration;
|
||||||
|
|
||||||
use serde::{Serialize, Deserialize};
|
use serde::{Serialize, Deserialize};
|
||||||
use chrono::naive::serde::ts_seconds::serialize as ts_seconds_naive;
|
use chrono::naive::serde::ts_seconds::serialize as ts_seconds_naive;
|
||||||
use chrono::{Duration, NaiveDateTime, Utc, DateTime};
|
use chrono::{Duration as ChronoDuration, NaiveDateTime, Utc, DateTime};
|
||||||
|
|
||||||
use diesel::prelude::*;
|
use diesel::prelude::*;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
use rand::rngs::OsRng;
|
use rand::rngs::OsRng;
|
||||||
|
@ -55,10 +56,10 @@ impl Session {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(conn: &diesel::SqliteConnection, user_info: &UserInfo, token_duration: Duration) -> Result<Session, UserError> {
|
pub fn new(conn: &diesel::SqliteConnection, user_info: &UserInfo, token_duration: StdDuration) -> Result<Session, UserError> {
|
||||||
use crate::schema::session::dsl::*;
|
use crate::schema::session::dsl::*;
|
||||||
|
|
||||||
let expires = Utc::now() + token_duration;
|
let expires = Utc::now() + ChronoDuration::from_std(token_duration).unwrap();
|
||||||
|
|
||||||
let user_session = Session {
|
let user_session = Session {
|
||||||
session_id: Session::generate_id(),
|
session_id: Session::generate_id(),
|
||||||
|
|
Loading…
Reference in a new issue