Add POST /family/{id}/renew_invitation_code route
This commit is contained in:
		@@ -1,9 +1,10 @@
 | 
			
		||||
use crate::constants::StaticConstraints;
 | 
			
		||||
use crate::constants::{StaticConstraints, FAMILY_INVITATION_CODE_LEN};
 | 
			
		||||
use crate::controllers::HttpResult;
 | 
			
		||||
use crate::extractors::family_extractor::{FamilyInPath, FamilyInPathWithAdminMembership};
 | 
			
		||||
use crate::services::login_token_service::LoginToken;
 | 
			
		||||
use crate::services::rate_limiter_service::RatedAction;
 | 
			
		||||
use crate::services::{families_service, rate_limiter_service};
 | 
			
		||||
use crate::utils::string_utils::rand_str;
 | 
			
		||||
use actix_remote_ip::RemoteIP;
 | 
			
		||||
use actix_web::{web, HttpResponse};
 | 
			
		||||
 | 
			
		||||
@@ -113,6 +114,21 @@ pub async fn delete(f: FamilyInPathWithAdminMembership) -> HttpResult {
 | 
			
		||||
    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
 | 
			
		||||
pub async fn users(f: FamilyInPath) -> HttpResult {
 | 
			
		||||
    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}",
 | 
			
		||||
                web::delete().to(families_controller::delete),
 | 
			
		||||
            )
 | 
			
		||||
            .route(
 | 
			
		||||
                "/family/{id}/renew_invitation_code",
 | 
			
		||||
                web::post().to(families_controller::renew_invitation_code),
 | 
			
		||||
            )
 | 
			
		||||
            .route(
 | 
			
		||||
                "/family/{id}/users",
 | 
			
		||||
                web::get().to(families_controller::users),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user