|
- extern crate core;
-
- mod routes;
- mod schema;
- mod db;
- mod ipfs;
- mod types;
- mod repositories;
- mod utils;
-
- use crate::routes::proposal::{add_proposal, get_proposal, list_proposals, visit_proposal};
- use actix_web::{web, App, HttpServer};
- use crate::routes::amendment::{add_amendment, get_amendment, list_amendments};
- use crate::routes::auth::{register, login, login_freighter, get_nonce};
- use crate::routes::openapi::get_openapi;
- use crate::utils::env::load_env;
-
- #[actix_web::main]
- async fn main() -> std::io::Result<()> {
- // Load environment variables from .env file (if present)
- load_env();
-
- let ip = "127.0.0.1";
- let port = 7300;
-
- println!("Starting server on http://{}:{}", ip, port);
- HttpServer::new(|| {
- App::new()
- .service(get_openapi)
- .service(
- web::scope("/api/v1")
- .service(
- web::scope("/proposals")
- .service(list_proposals)
- )
- .service(
- web::scope("/proposal")
- .service(add_proposal)
- .service(get_proposal)
- .service(visit_proposal)
- )
- .service(
- web::scope("/amendment")
- .service(add_amendment)
- .service(get_amendment)
- )
- .service(
- web::scope("/amendments")
- .service(list_amendments)
- )
- .service(
- web::scope("/auth")
- .service(register)
- .service(login)
- .service(login_freighter)
- .service(get_nonce)
- )
- )
- })
- .bind((ip, port))?
- .run()
- .await
- }
|