1
0
mirror of https://github.com/actix/examples synced 2025-02-09 04:15:37 +01:00
examples/simple-auth-server/src/invitation_routes.rs

23 lines
713 B
Rust
Raw Normal View History

2019-03-29 13:43:03 -07:00
use actix::Addr;
use actix_web::{web, Error, HttpResponse, ResponseError};
use futures::future::Future;
2019-03-29 13:43:03 -07:00
use crate::email_service::send_invitation;
use crate::invitation_handler::CreateInvitation;
use crate::models::DbExecutor;
pub fn register_email(
2019-03-29 13:43:03 -07:00
signup_invitation: web::Json<CreateInvitation>,
db: web::Data<Addr<DbExecutor>>,
) -> impl Future<Item = HttpResponse, Error = Error> {
db.send(signup_invitation.into_inner())
.from_err()
.and_then(|db_response| match db_response {
Ok(invitation) => {
send_invitation(&invitation);
Ok(HttpResponse::Ok().into())
}
Err(err) => Ok(err.error_response()),
2019-03-09 18:03:09 -08:00
})
}