feat: initial working pwd reset method
This commit is contained in:
commit
c8856ddeb1
8 changed files with 3246 additions and 0 deletions
45
src/main.rs
Normal file
45
src/main.rs
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
mod auth;
|
||||
mod provider;
|
||||
mod request_types;
|
||||
|
||||
#[macro_use] extern crate rocket;
|
||||
|
||||
use std::env;
|
||||
use rocket::serde::json::Json;
|
||||
use rocket::{Error, State};
|
||||
use rocket::http::Status;
|
||||
use crate::provider::{PurelymailProvider, SMTPUserCredentials};
|
||||
use crate::request_types::PasswordResetRequest;
|
||||
|
||||
#[get("/")]
|
||||
fn index() -> &'static str {
|
||||
"Hello, world!"
|
||||
}
|
||||
|
||||
#[get("/onboard/<token>")]
|
||||
fn onboard(token: String) -> String {
|
||||
todo!()
|
||||
}
|
||||
|
||||
#[post("/doResetPassword", data = "<data>")]
|
||||
async fn user(data: Json<PasswordResetRequest>, provider: &State<PurelymailProvider>) -> Result<String, Status> {
|
||||
provider.reset_password(&data.email, &data.new_password).await
|
||||
.map(|_| { String::from("Good") })
|
||||
.or(Err(Status::BadRequest))
|
||||
}
|
||||
|
||||
#[launch]
|
||||
fn rocket() -> _ {
|
||||
let token = env::var("API_TOKEN").expect("API_TOKEN env var not set");
|
||||
let smtp_webmaster_username = env::var("WEBMASTER_USERNAME")
|
||||
.expect("WEBMASTER_USERNAME env var not set");
|
||||
let smtp_webmaster_password = env::var("WEBMASTER_PASSWORD")
|
||||
.expect("WEBMASTER_PASSWORD env var not set");
|
||||
let provider: PurelymailProvider = PurelymailProvider::new(
|
||||
token,
|
||||
SMTPUserCredentials::new(&smtp_webmaster_username, &smtp_webmaster_password)
|
||||
);
|
||||
rocket::build()
|
||||
.manage(provider)
|
||||
.mount("/", routes![index, onboard, user])
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue