diff options
Diffstat (limited to 'service-person/src/main.rs')
-rw-r--r-- | service-person/src/main.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/service-person/src/main.rs b/service-person/src/main.rs index 1350115..31050e0 100644 --- a/service-person/src/main.rs +++ b/service-person/src/main.rs @@ -27,6 +27,11 @@ pub struct PersonCreateRequestData { number: i32, } +#[derive(Debug, serde::Serialize)] +pub struct PersonCreateResponse { + id: i32 +} + async fn create_person(db: web::Data<DbPool>, person: web::Json<PersonCreateRequestData>) -> impl Responder { log::debug!("Creating person = {:?}", person); @@ -36,7 +41,7 @@ async fn create_person(db: web::Data<DbPool>, person: web::Json<PersonCreateRequ let street = crate::model::Street::create_or_fetch(&db, &person.street)?; let address = crate::model::Address::create_or_fetch(&db, &country, &city, &street, person.number)?; let person = crate::model::Person::create_or_fetch(&db, &address, &person.name, person.age)?; - Ok(()) + Ok(person.id()) }; inner(&db, &person) @@ -44,7 +49,7 @@ async fn create_person(db: web::Data<DbPool>, person: web::Json<PersonCreateRequ log::error!("{}", anyhow_error); HttpResponse::build(actix_web::http::StatusCode::INTERNAL_SERVER_ERROR).finish() }) - .map(|_| HttpResponse::Ok().finish()) + .map(|id| HttpResponse::Ok().json(PersonCreateResponse { id })) } |