first steps into an invite system
This commit is contained in:
19
server/src/invites.rs
Normal file
19
server/src/invites.rs
Normal 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),
|
||||
})
|
||||
}
|
||||
@@ -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())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user