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"
|
path = "src/login/main.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
futures-preview = "=0.3.0-alpha.16"
|
|
||||||
libpso = { path = "../libpso" }
|
libpso = { path = "../libpso" }
|
||||||
rand = "0.6.5"
|
rand = "0.6.5"
|
||||||
walkdir = "2"
|
|
||||||
mio = "0.6"
|
mio = "0.6"
|
||||||
crc = "^1.0.0"
|
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"
|
bcrypt = "0.4"
|
||||||
r2d2 = "*"
|
|
@ -1,7 +1,3 @@
|
|||||||
#![feature(const_generics)]
|
#![feature(const_generics)]
|
||||||
|
|
||||||
#[macro_use]
|
|
||||||
extern crate diesel;
|
|
||||||
|
|
||||||
pub mod common;
|
pub mod common;
|
||||||
pub mod schema;
|
|
||||||
|
@ -18,7 +18,8 @@ use elseware::common::util::array_to_utf8;
|
|||||||
|
|
||||||
use crate::dataaccess::DataAccess;
|
use crate::dataaccess::DataAccess;
|
||||||
use crate::login::{SharedLoginState, get_login_status};
|
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;
|
pub const CHARACTER_PORT: u16 = 12001;
|
||||||
|
|
||||||
@ -154,7 +155,7 @@ pub fn new_client<DA: DataAccess + 'static>(socket: mio::tcp::TcpStream, shared_
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test {
|
mod test {
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::models::{EUserSettings, UserSettings};
|
use crate::entities::UserSettings;
|
||||||
use libpso::character::settings;
|
use libpso::character::settings;
|
||||||
use std::time::SystemTime;
|
use std::time::SystemTime;
|
||||||
|
|
||||||
@ -168,7 +169,7 @@ mod test {
|
|||||||
Some(UserSettings {
|
Some(UserSettings {
|
||||||
id: 0,
|
id: 0,
|
||||||
user_id: 0,
|
user_id: 0,
|
||||||
settings: EUserSettings(settings::UserSettings::default())
|
settings: settings::UserSettings::default()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
use std::default::Default;
|
use std::default::Default;
|
||||||
|
|
||||||
use diesel::r2d2;
|
//use diesel::r2d2;
|
||||||
use diesel::prelude::*;
|
//use diesel::prelude::*;
|
||||||
use diesel::pg::PgConnection;
|
//use diesel::pg::PgConnection;
|
||||||
|
|
||||||
use libpso::character::settings;
|
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 {
|
pub trait DataAccess {
|
||||||
fn get_user_by_id(&self, _id: u32) -> Option<UserAccount> {
|
fn get_user_by_id(&self, _id: u32) -> Option<UserAccount> {
|
||||||
@ -27,7 +28,7 @@ pub trait DataAccess {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone)]
|
/*#[derive(Clone)]
|
||||||
pub struct DBAccess {
|
pub struct DBAccess {
|
||||||
connection_pool: ConnectionPool,
|
connection_pool: ConnectionPool,
|
||||||
}
|
}
|
||||||
@ -40,7 +41,6 @@ impl DBAccess {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
impl DataAccess for DBAccess {
|
impl DataAccess for DBAccess {
|
||||||
fn get_user_by_name(&self, name: String) -> Option<UserAccount> {
|
fn get_user_by_name(&self, name: String) -> Option<UserAccount> {
|
||||||
use elseware::schema::user_accounts::dsl::{user_accounts, username};
|
use elseware::schema::user_accounts::dsl::{user_accounts, username};
|
||||||
@ -72,3 +72,4 @@ impl DataAccess for DBAccess {
|
|||||||
}).unwrap()
|
}).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 elseware::common::util::array_to_utf8;
|
||||||
|
|
||||||
use crate::dataaccess::DataAccess;
|
use crate::dataaccess::DataAccess;
|
||||||
use crate::models::UserAccount;
|
use crate::entities::UserAccount;
|
||||||
|
|
||||||
pub const LOGIN_PORT: u16 = 12000;
|
pub const LOGIN_PORT: u16 = 12000;
|
||||||
|
|
||||||
|
@ -3,7 +3,8 @@
|
|||||||
mod login;
|
mod login;
|
||||||
mod character;
|
mod character;
|
||||||
mod dataaccess;
|
mod dataaccess;
|
||||||
mod models;
|
mod entities;
|
||||||
|
|
||||||
|
|
||||||
use std::net::{SocketAddr, Ipv4Addr};
|
use std::net::{SocketAddr, Ipv4Addr};
|
||||||
//use std::net;
|
//use std::net;
|
||||||
@ -12,18 +13,27 @@ use std::env;
|
|||||||
|
|
||||||
use mio::tcp::TcpListener;
|
use mio::tcp::TcpListener;
|
||||||
use mio::{Events, Poll, Token, Ready, PollOpt};
|
use mio::{Events, Poll, Token, Ready, PollOpt};
|
||||||
use dotenv::dotenv;
|
//use dotenv::dotenv;
|
||||||
|
|
||||||
use diesel::r2d2;
|
//use diesel::r2d2;
|
||||||
//use diesel::prelude::*;
|
//use diesel::prelude::*;
|
||||||
use diesel::pg::PgConnection;
|
//use diesel::pg::PgConnection;
|
||||||
|
|
||||||
//use models::{NewUser, UserAccount, UserSettings, NewUserSettings};
|
//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() {
|
fn main() {
|
||||||
dotenv().ok();
|
//dotenv().ok();
|
||||||
let database_url = env::var("DATABASE_URL").unwrap();
|
//let database_url = env::var("DATABASE_URL").unwrap();
|
||||||
|
|
||||||
/*if let Some(arg) = env::args().nth(1) {
|
/*if let Some(arg) = env::args().nth(1) {
|
||||||
if arg == "dbstuff" {
|
if arg == "dbstuff" {
|
||||||
@ -59,14 +69,15 @@ fn main() {
|
|||||||
|
|
||||||
println!("[login+character] starting server");
|
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()
|
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 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 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();
|
let poll = Poll::new().unwrap();
|
||||||
poll.register(&login_listener, Token(0), Ready::readable(), PollOpt::edge()).unwrap();
|
poll.register(&login_listener, Token(0), Ready::readable(), PollOpt::edge()).unwrap();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user