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