move away from diesel requirement to run
This commit is contained in:
parent
6f0bacd64e
commit
9db9a5e248
@ -13,14 +13,8 @@ name = "login"
|
||||
path = "src/login/main.rs"
|
||||
|
||||
[dependencies]
|
||||
futures-preview = "=0.3.0-alpha.16"
|
||||
libpso = { path = "../libpso" }
|
||||
rand = "0.6.5"
|
||||
walkdir = "2"
|
||||
mio = "0.6"
|
||||
crc = "^1.0.0"
|
||||
dotenv = "0.14.1"
|
||||
diesel = { version = "1.4.2", features = ["r2d2", "postgres", "chrono"] }
|
||||
diesel-derive-enum = { version = "0.4", features = ["postgres"]}
|
||||
bcrypt = "0.4"
|
||||
r2d2 = "*"
|
||||
bcrypt = "0.4"
|
@ -1,7 +1,3 @@
|
||||
#![feature(const_generics)]
|
||||
|
||||
#[macro_use]
|
||||
extern crate diesel;
|
||||
|
||||
pub mod common;
|
||||
pub mod schema;
|
||||
|
@ -18,7 +18,8 @@ use elseware::common::util::array_to_utf8;
|
||||
|
||||
use crate::dataaccess::DataAccess;
|
||||
use crate::login::{SharedLoginState, get_login_status};
|
||||
use crate::models::UserAccount;
|
||||
//use crate::models::UserAccount;
|
||||
use crate::entities::UserAccount;
|
||||
|
||||
pub const CHARACTER_PORT: u16 = 12001;
|
||||
|
||||
@ -154,7 +155,7 @@ pub fn new_client<DA: DataAccess + 'static>(socket: mio::tcp::TcpStream, shared_
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
use crate::models::{EUserSettings, UserSettings};
|
||||
use crate::entities::UserSettings;
|
||||
use libpso::character::settings;
|
||||
use std::time::SystemTime;
|
||||
|
||||
@ -168,7 +169,7 @@ mod test {
|
||||
Some(UserSettings {
|
||||
id: 0,
|
||||
user_id: 0,
|
||||
settings: EUserSettings(settings::UserSettings::default())
|
||||
settings: settings::UserSettings::default()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -1,13 +1,14 @@
|
||||
use std::default::Default;
|
||||
|
||||
use diesel::r2d2;
|
||||
use diesel::prelude::*;
|
||||
use diesel::pg::PgConnection;
|
||||
//use diesel::r2d2;
|
||||
//use diesel::prelude::*;
|
||||
//use diesel::pg::PgConnection;
|
||||
|
||||
use libpso::character::settings;
|
||||
use crate::models::*;
|
||||
use crate::entities::*;
|
||||
//use crate::models::*;
|
||||
|
||||
type ConnectionPool = r2d2::Pool<r2d2::ConnectionManager<PgConnection>>;
|
||||
//type ConnectionPool = r2d2::Pool<r2d2::ConnectionManager<PgConnection>>;
|
||||
|
||||
pub trait DataAccess {
|
||||
fn get_user_by_id(&self, _id: u32) -> Option<UserAccount> {
|
||||
@ -27,7 +28,7 @@ pub trait DataAccess {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
/*#[derive(Clone)]
|
||||
pub struct DBAccess {
|
||||
connection_pool: ConnectionPool,
|
||||
}
|
||||
@ -40,7 +41,6 @@ impl DBAccess {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
impl DataAccess for DBAccess {
|
||||
fn get_user_by_name(&self, name: String) -> Option<UserAccount> {
|
||||
use elseware::schema::user_accounts::dsl::{user_accounts, username};
|
||||
@ -72,3 +72,4 @@ impl DataAccess for DBAccess {
|
||||
}).unwrap()
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
20
src/login/entities.rs
Normal file
20
src/login/entities.rs
Normal file
@ -0,0 +1,20 @@
|
||||
use std::time::SystemTime;
|
||||
|
||||
use libpso::character::settings;
|
||||
|
||||
|
||||
pub struct UserAccount {
|
||||
pub id: i32,
|
||||
pub username: String,
|
||||
pub password: String,
|
||||
pub guildcard: Option<i32>,
|
||||
pub team_id: Option<i32>,
|
||||
pub banned: bool,
|
||||
pub muted_until: SystemTime,
|
||||
pub created_at: SystemTime,
|
||||
}
|
||||
pub struct UserSettings {
|
||||
pub id: i32,
|
||||
pub user_id: i32,
|
||||
pub settings: settings::UserSettings,
|
||||
}
|
@ -19,7 +19,7 @@ use elseware::common::serverstate::{SendServerPacket, RecvServerPacket, ServerS
|
||||
use elseware::common::util::array_to_utf8;
|
||||
|
||||
use crate::dataaccess::DataAccess;
|
||||
use crate::models::UserAccount;
|
||||
use crate::entities::UserAccount;
|
||||
|
||||
pub const LOGIN_PORT: u16 = 12000;
|
||||
|
||||
|
@ -3,7 +3,8 @@
|
||||
mod login;
|
||||
mod character;
|
||||
mod dataaccess;
|
||||
mod models;
|
||||
mod entities;
|
||||
|
||||
|
||||
use std::net::{SocketAddr, Ipv4Addr};
|
||||
//use std::net;
|
||||
@ -12,18 +13,27 @@ use std::env;
|
||||
|
||||
use mio::tcp::TcpListener;
|
||||
use mio::{Events, Poll, Token, Ready, PollOpt};
|
||||
use dotenv::dotenv;
|
||||
//use dotenv::dotenv;
|
||||
|
||||
use diesel::r2d2;
|
||||
//use diesel::r2d2;
|
||||
//use diesel::prelude::*;
|
||||
use diesel::pg::PgConnection;
|
||||
//use diesel::pg::PgConnection;
|
||||
|
||||
//use models::{NewUser, UserAccount, UserSettings, NewUserSettings};
|
||||
use dataaccess::DBAccess;
|
||||
//use dataaccess::DBAccess;
|
||||
use dataaccess::DataAccess;
|
||||
|
||||
#[derive(Clone)]
|
||||
struct LoginStubData {
|
||||
}
|
||||
|
||||
impl DataAccess for LoginStubData {
|
||||
|
||||
}
|
||||
|
||||
fn main() {
|
||||
dotenv().ok();
|
||||
let database_url = env::var("DATABASE_URL").unwrap();
|
||||
//dotenv().ok();
|
||||
//let database_url = env::var("DATABASE_URL").unwrap();
|
||||
|
||||
/*if let Some(arg) = env::args().nth(1) {
|
||||
if arg == "dbstuff" {
|
||||
@ -59,14 +69,15 @@ fn main() {
|
||||
|
||||
println!("[login+character] starting server");
|
||||
|
||||
let connection_manager = r2d2::ConnectionManager::<PgConnection>::new(database_url);
|
||||
/*let connection_manager = r2d2::ConnectionManager::<PgConnection>::new(database_url);
|
||||
let connection_pool = r2d2::Pool::builder()
|
||||
.build(connection_manager).unwrap();
|
||||
.build(connection_manager).unwrap();*/
|
||||
|
||||
let login_listener = TcpListener::bind(&SocketAddr::from((Ipv4Addr::new(0,0,0,0), login::LOGIN_PORT))).unwrap();
|
||||
let character_listener = TcpListener::bind(&SocketAddr::from((Ipv4Addr::new(0,0,0,0), character::CHARACTER_PORT))).unwrap();
|
||||
|
||||
let login_shared_state = login::SharedLoginState::new(DBAccess::new(connection_pool));
|
||||
//let login_shared_state = login::SharedLoginState::new(DBAccess::new(connection_pool));
|
||||
let login_shared_state = login::SharedLoginState::new(LoginStubData {});
|
||||
|
||||
let poll = Poll::new().unwrap();
|
||||
poll.register(&login_listener, Token(0), Ready::readable(), PollOpt::edge()).unwrap();
|
||||
|
Loading…
x
Reference in New Issue
Block a user