first steps into an invite system

This commit is contained in:
shockrah
2020-01-30 00:04:03 -08:00
parent 113aff4955
commit 0518a896d6
4 changed files with 310 additions and 144 deletions

19
server/src/invites.rs Normal file
View File

@@ -0,0 +1,19 @@
// Module handles creating invites for potentially new users
use rand::random;
use chrono::{DateTime, Duration, Utc};
#[derive(Debug)]
struct Invite {
hash: u64,
uses: i32,
expire: DateTime<Utc>,
}
#[get("/generate")]
pub fn generate_invite() -> String {
format!("{:?}", Invite {
hash: random::<u64>(),
uses: 1,
expire: Utc::now() + Duration::minutes(30),
})
}

View File

@@ -4,15 +4,17 @@
#[macro_use] extern crate serde_derive;
#[macro_use] extern crate rocket;
extern crate rocket_contrib;
extern crate chrono;
use dotenv;
use rocket_contrib::serve::StaticFiles;
use rocket_contrib::templates::Template;
mod website;
use website::*;
mod invites;
use invites::*;
fn rocket() -> rocket::Rocket {
rocket::ignite()
@@ -21,6 +23,9 @@ fn rocket() -> rocket::Rocket {
homepage, about_page, server_info,
static_css, static_js, static_media
])
.mount("/invite", routes![
generate_invite
])
.attach(Template::fairing())
}