MCPcopy Create free account
hub / github.com/SeaQL/sea-orm / start

Function start

examples/poem_example/api/src/lib.rs:124–155  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

122
123#[tokio::main]
124async fn start() -> std::io::Result<()> {
125 std::env::set_var("RUST_LOG", "debug");
126 tracing_subscriber::fmt::init();
127
128 // get env vars
129 dotenvy::dotenv().ok();
130 let db_url = env::var("DATABASE_URL").expect("DATABASE_URL is not set in .env file");
131 let host = env::var("HOST").expect("HOST is not set in .env file");
132 let port = env::var("PORT").expect("PORT is not set in .env file");
133 let server_url = format!("{host}:{port}");
134
135 // create post table if not exists
136 let conn = Database::connect(&db_url).await.unwrap();
137 Migrator::up(&conn, None).await.unwrap();
138 let templates = Tera::new(concat!(env!("CARGO_MANIFEST_DIR"), "/templates/**/*")).unwrap();
139 let state = AppState { templates, conn };
140
141 println!("Starting server at {server_url}");
142
143 let app = Route::new()
144 .at("/", post(create).get(list))
145 .at("/new", new)
146 .at("/:id", get(edit).post(update))
147 .at("/delete/:id", post(delete))
148 .nest(
149 "/static",
150 StaticFilesEndpoint::new(concat!(env!("CARGO_MANIFEST_DIR"), "/static")),
151 )
152 .data(state);
153 let server = Server::new(TcpListener::bind(format!("{host}:{port}")));
154 server.run(app).await
155}
156
157pub fn main() {
158 let result = start();

Callers 1

mainFunction · 0.70

Calls 5

initFunction · 0.85
unwrapMethod · 0.80
newFunction · 0.70
getMethod · 0.45
runMethod · 0.45

Tested by

no test coverage detected