Backport to Rocket v0.4, fix all warnings & errors
parent
57b97ffe94
commit
d7f0747090
File diff suppressed because it is too large
Load Diff
11
Cargo.toml
11
Cargo.toml
|
@ -7,17 +7,12 @@ edition = "2018"
|
|||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
rocket = "0.5.0-rc.1"
|
||||
serde = "1.0.126"
|
||||
rocket = "0.4.10"
|
||||
serde = { version = "1.0.126", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
sha1 = "0.6.0"
|
||||
uuid = { version = "0.8.1", features = ["serde", "v4"] }
|
||||
log = "0.4.0"
|
||||
env_logger = "0.8.4"
|
||||
chrono = { version = "0.4.11", features = ["serde"] }
|
||||
serde_derive = "1.0"
|
||||
|
||||
[dependencies.rocket_contrib]
|
||||
version = "0.4.10"
|
||||
default-features = false
|
||||
features = ["json"]
|
||||
rocket_contrib = { version = "0.4.10", default-features = false, features = ["json"] }
|
||||
|
|
16
src/auth.rs
16
src/auth.rs
|
@ -2,7 +2,7 @@ extern crate log;
|
|||
use crate::user::User;
|
||||
use crate::file_io::{read_json, append_json, write_json};
|
||||
extern crate sha1;
|
||||
use serde_json::Result;
|
||||
|
||||
|
||||
#[get("/")]
|
||||
pub fn index() -> &'static str {
|
||||
|
@ -23,7 +23,7 @@ pub fn index() -> &'static str {
|
|||
|
||||
// Post request to register a user and pin
|
||||
#[post("/api/register/<name>/<pin>/<pronouns>")]
|
||||
pub fn register_user(name: &str, pin: i32, pronouns: &str) -> String {
|
||||
pub fn register_user(name: String, pin: i32, pronouns: String) -> String {
|
||||
let mut users: Vec<User> = read_json(); // Create an array of users out of parsed json
|
||||
for i in &users { // loop through elements of the vector
|
||||
if i.name == name.to_lowercase() {
|
||||
|
@ -38,7 +38,7 @@ pub fn register_user(name: &str, pin: i32, pronouns: &str) -> String {
|
|||
name: name.to_string().to_lowercase(),
|
||||
pin_hashed: pin_hashed,
|
||||
pronouns: pronouns.to_string().to_lowercase(),
|
||||
sessionToken: "NULL".to_string()
|
||||
session_token: "NULL".to_string()
|
||||
}); // append the user to the vec
|
||||
|
||||
// append to the json file
|
||||
|
@ -53,7 +53,7 @@ pub fn register_user(name: &str, pin: i32, pronouns: &str) -> String {
|
|||
|
||||
// Check if pin matches user
|
||||
#[get("/api/users/<name>/<pin>")]
|
||||
pub fn check_pin(name: &str, pin: i32) -> String {
|
||||
pub fn check_pin(name: String, pin: i32) -> String {
|
||||
let users: Vec<User> = read_json();
|
||||
let hashed_pin_input = sha1::Sha1::from(&pin.to_string()).digest().to_string();
|
||||
for i in &users { // loop through the vector
|
||||
|
@ -73,7 +73,7 @@ pub fn check_pin(name: &str, pin: i32) -> String {
|
|||
|
||||
// Change a users pin/name
|
||||
#[post("/api/users/change/<name>/<pin>/<new_name>/<new_pin>")]
|
||||
pub fn change(name: &str, pin: i32, new_name: &str, new_pin: i32) -> String {
|
||||
pub fn change(name: String, pin: i32, new_name: String, new_pin: i32) -> String {
|
||||
let mut users: Vec<User> = read_json();
|
||||
|
||||
let hashed_pin_input = sha1::Sha1::from(&pin.to_string()).digest().to_string();
|
||||
|
@ -121,7 +121,7 @@ pub fn change(name: &str, pin: i32, new_name: &str, new_pin: i32) -> String {
|
|||
}
|
||||
|
||||
#[get("/api/users/<name>")]
|
||||
pub fn get_user(name: &str) -> String {
|
||||
pub fn get_user(name: String) -> String {
|
||||
let users: Vec<User> = read_json();
|
||||
let found_user = users.iter().filter(|u| u.name == name.to_lowercase()).next();
|
||||
|
||||
|
@ -133,7 +133,7 @@ pub fn get_user(name: &str) -> String {
|
|||
|
||||
/* Get data about a user */
|
||||
#[get("/api/about/name/<name>")]
|
||||
pub fn get_user_name(name: &str) -> String {
|
||||
pub fn get_user_name(name: String) -> String {
|
||||
let users: Vec<User> = read_json();
|
||||
let found_user = users.iter().filter(|u| u.name == name.to_lowercase()).next();
|
||||
|
||||
|
@ -144,7 +144,7 @@ pub fn get_user_name(name: &str) -> String {
|
|||
}
|
||||
|
||||
#[get("/api/about/pronouns/<name>")]
|
||||
pub fn get_user_pronouns(name: &str) -> String {
|
||||
pub fn get_user_pronouns(name: String) -> String {
|
||||
let users: Vec<User> = read_json();
|
||||
let found_user = users.iter().filter(|u| u.name == name.to_lowercase()).next();
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* Contains Rocket code for chat/message functionality */
|
||||
extern crate log;
|
||||
use crate::message::Message;
|
||||
use rocket::serde::json::{Json, JsonValue};
|
||||
use rocket_contrib::json::{Json, JsonValue};
|
||||
|
||||
#[post("/api/message/send", format = "json", data = "<message>")]
|
||||
pub fn send_message(message: Json<Message<'_>>) -> JsonValue {
|
||||
|
|
38
src/main.rs
38
src/main.rs
|
@ -1,30 +1,42 @@
|
|||
#[macro_use] extern crate log;
|
||||
#[macro_use] extern crate rocket;
|
||||
#[macro_use] extern crate rocket_contrib;
|
||||
#![feature(proc_macro_hygiene, decl_macro)]
|
||||
|
||||
#[macro_use]
|
||||
extern crate log;
|
||||
#[macro_use]
|
||||
extern crate rocket;
|
||||
#[macro_use]
|
||||
extern crate rocket_contrib;
|
||||
|
||||
use rocket::fairing::AdHoc;
|
||||
|
||||
mod auth;
|
||||
mod user;
|
||||
mod message;
|
||||
mod file_io;
|
||||
mod chat;
|
||||
mod file_io;
|
||||
mod message;
|
||||
mod user;
|
||||
|
||||
#[launch]
|
||||
fn rocket() -> _ {
|
||||
fn main() {
|
||||
env_logger::init();
|
||||
info!("Started up rocket");
|
||||
let cors_fairing = AdHoc::on_response("CORS", |_, res| {
|
||||
Box::pin(async move {
|
||||
res.set_raw_header("Access-Control-Allow-Origin", "*");
|
||||
})
|
||||
res.set_raw_header("Access-Control-Allow-Origin", "*");
|
||||
});
|
||||
info!("Built CORS fairing");
|
||||
|
||||
rocket::build()
|
||||
rocket::ignite()
|
||||
.mount(
|
||||
"/",
|
||||
routes![auth::index, auth::get_user, auth::register_user, auth::check_pin, auth::change, auth::get_user_name, auth::get_user_pronouns, chat::send_message],
|
||||
routes![
|
||||
auth::index,
|
||||
auth::get_user,
|
||||
auth::register_user,
|
||||
auth::check_pin,
|
||||
auth::change,
|
||||
auth::get_user_name,
|
||||
auth::get_user_pronouns,
|
||||
chat::send_message
|
||||
],
|
||||
)
|
||||
.attach(cors_fairing)
|
||||
.launch();
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use uuid::Uuid;
|
||||
use chrono::prelude::*;
|
||||
use crate::user::User;
|
||||
use rocket::serde::{Deserialize, Serialize};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Deserialize, Serialize)]
|
||||
pub struct Message<'r> {
|
||||
|
|
|
@ -6,5 +6,6 @@ pub struct User {
|
|||
pub name: String,
|
||||
pub pin_hashed: String,
|
||||
pub pronouns: String,
|
||||
pub sessionToken: String,
|
||||
#[serde(rename = "sessionToken")]
|
||||
pub session_token: String,
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue