diff --git a/Cargo.toml b/Cargo.toml index 6a57def..205f41f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,4 +6,6 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -sqlx = { version = "0.6.2", features = ["postgres"] } +rocket = "0.5.0-rc.2" +sqlx = { version = "0.6", features = ["postgres", "runtime-tokio-rustls"] } +serde = "1.0" diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..940eb97 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,18 @@ +version: '3' + +services: + school-app-db: + image: postgres + environment: + POSTGRES_DB: school_app_api + POSTGRES_PASSWORD: school_app_api_password + POSTGRES_USER: school_app_api_username + PGDATA: /db + volumes: + - ./pgdata:/db:rw + + school-app-api: + image: school_app_api + depends_on: [school-app-db] + ports: ["4455:4455"] + diff --git a/src/main.rs b/src/main.rs index e7a11a9..9619136 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,22 @@ -fn main() { - println!("Hello, world!"); +#[macro_use] +extern crate rocket; + +use rocket::response::status::BadRequest; + +#[get("/event")] +fn events() -> String { + format!("event list") +} + +#[get("/event/")] +fn event_id(id: Result) -> Result> { + match id { + Ok(id) => { Ok(format!("event for {}", id)) } + Err(_) => { Err(BadRequest(Some(format!("event id must be a valid u64")))) } + } +} + +#[launch] +fn rocket() -> _ { + rocket::build().mount("/", routes![events, event_id]) }