Add POST /family/{id}/renew_invitation_code route
This commit is contained in:
parent
b655ac5910
commit
a66a12d2a6
@ -1,9 +1,10 @@
|
|||||||
use crate::constants::StaticConstraints;
|
use crate::constants::{StaticConstraints, FAMILY_INVITATION_CODE_LEN};
|
||||||
use crate::controllers::HttpResult;
|
use crate::controllers::HttpResult;
|
||||||
use crate::extractors::family_extractor::{FamilyInPath, FamilyInPathWithAdminMembership};
|
use crate::extractors::family_extractor::{FamilyInPath, FamilyInPathWithAdminMembership};
|
||||||
use crate::services::login_token_service::LoginToken;
|
use crate::services::login_token_service::LoginToken;
|
||||||
use crate::services::rate_limiter_service::RatedAction;
|
use crate::services::rate_limiter_service::RatedAction;
|
||||||
use crate::services::{families_service, rate_limiter_service};
|
use crate::services::{families_service, rate_limiter_service};
|
||||||
|
use crate::utils::string_utils::rand_str;
|
||||||
use actix_remote_ip::RemoteIP;
|
use actix_remote_ip::RemoteIP;
|
||||||
use actix_web::{web, HttpResponse};
|
use actix_web::{web, HttpResponse};
|
||||||
|
|
||||||
@ -113,6 +114,21 @@ pub async fn delete(f: FamilyInPathWithAdminMembership) -> HttpResult {
|
|||||||
Ok(HttpResponse::Accepted().finish())
|
Ok(HttpResponse::Accepted().finish())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Renew (change) invitation code
|
||||||
|
pub async fn renew_invitation_code(f: FamilyInPathWithAdminMembership) -> HttpResult {
|
||||||
|
let mut family = families_service::get_by_id(f.family_id()).await?;
|
||||||
|
family.invitation_code = rand_str(FAMILY_INVITATION_CODE_LEN);
|
||||||
|
families_service::update_family(&family).await?;
|
||||||
|
|
||||||
|
log::info!(
|
||||||
|
"User {:?} changed family {:?} invitation code",
|
||||||
|
f.user_id(),
|
||||||
|
f.family_id()
|
||||||
|
);
|
||||||
|
|
||||||
|
Ok(HttpResponse::Accepted().finish())
|
||||||
|
}
|
||||||
|
|
||||||
/// Get the list of users who belongs to a family
|
/// Get the list of users who belongs to a family
|
||||||
pub async fn users(f: FamilyInPath) -> HttpResult {
|
pub async fn users(f: FamilyInPath) -> HttpResult {
|
||||||
Ok(HttpResponse::Ok().json(families_service::get_memberships_of_family(f.family_id()).await?))
|
Ok(HttpResponse::Ok().json(families_service::get_memberships_of_family(f.family_id()).await?))
|
||||||
|
@ -106,6 +106,10 @@ async fn main() -> std::io::Result<()> {
|
|||||||
"/family/{id}",
|
"/family/{id}",
|
||||||
web::delete().to(families_controller::delete),
|
web::delete().to(families_controller::delete),
|
||||||
)
|
)
|
||||||
|
.route(
|
||||||
|
"/family/{id}/renew_invitation_code",
|
||||||
|
web::post().to(families_controller::renew_invitation_code),
|
||||||
|
)
|
||||||
.route(
|
.route(
|
||||||
"/family/{id}/users",
|
"/family/{id}/users",
|
||||||
web::get().to(families_controller::users),
|
web::get().to(families_controller::users),
|
||||||
|
Loading…
Reference in New Issue
Block a user