diff options
Diffstat (limited to 'service-person')
-rw-r--r-- | service-person/src/main.rs | 22 | ||||
-rw-r--r-- | service-person/src/model.rs | 32 |
2 files changed, 34 insertions, 20 deletions
diff --git a/service-person/src/main.rs b/service-person/src/main.rs index 81be674..759050d 100644 --- a/service-person/src/main.rs +++ b/service-person/src/main.rs @@ -2,28 +2,10 @@ use std::str::FromStr; use anyhow::Context; use actix_web::{web, App, HttpServer, HttpResponse, Result}; -use serde::Deserialize; -#[derive(Debug, Deserialize)] -struct Name(String); +mod model; -#[derive(Debug, Deserialize)] -struct Age(usize); - -#[derive(Debug, Deserialize)] -struct Address { - street: String, - number: String, - city: String, - country: String, -} - -#[derive(Debug, Deserialize)] -struct Person { - name: Name, - age: Age, - addr: Address, -} +use model::*; async fn create_person(person: web::Json<Person>) -> Result<HttpResponse> { log::debug!("Creating person = {:?}", person); diff --git a/service-person/src/model.rs b/service-person/src/model.rs new file mode 100644 index 0000000..aa81312 --- /dev/null +++ b/service-person/src/model.rs @@ -0,0 +1,32 @@ +use serde::Deserialize; + +#[derive(Debug, Deserialize)] +pub struct Name(String); + +#[derive(Debug, Deserialize)] +pub struct Age(usize); + +#[derive(Debug, Deserialize)] +pub struct Street(String); + +#[derive(Debug, Deserialize)] +pub struct City(String); + +#[derive(Debug, Deserialize)] +pub struct Country(String); + +#[derive(Debug, Deserialize)] +pub struct Address { + country: Country, + city: City, + street: Street, + number: usize, +} + +#[derive(Debug, Deserialize)] +pub struct Person { + name: Name, + age: Age, + addr: Address, +} + |