1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use actix_web::web::{get, post, resource};

/// Creates reverse routing table for [actix-web](actix-web)
pub fn add_routes(s: &mut actix_web::web::ServiceConfig) {
  let _ = s
    // Home
    .service(resource("/").name("home").route(get().to(crate::home::index)))
    .service(resource("/health").name("health").route(get().to(crate::home::health)))
    .service(resource("/profile").name("profile").route(get().to(crate::home::profile)).route(post().to(crate::home::profile_post)))

    // Testbed
    .service(resource("/testbed/{key}").name("testbed.detail").route(get().to(crate::testbed::testbed_key)))

    // Project
    .service(resource("/project/new").name("project.new").route(get().to(crate::projects::new_project)).route(post().to(crate::projects::create)))
    .service(resource("/project/{key}").name("project.detail").route(get().to(crate::projects::detail)))
    .service(resource("/project/{key}/edit").name("project.edit").route(get().to(crate::projects::edit)).route(post().to(crate::projects::save)))
    .service(resource("/project/{key}/connect").name("connect").route(get().to(crate::websocket::connect)))

    // Admin
    .service(resource("/admin").name("admin.list").route(get().to(crate::admin::list)))
    .service(resource("/admin/settings").name("admin.settings").route(get().to(crate::admin::settings)).route(post().to(crate::admin::settings_post)))
    .service(resource("/admin/conn").name("admin.connections").route(get().to(crate::admin::connections)))
    .service(resource("/admin/conn/{id}").name("admin.connection_detail").route(get().to(crate::admin::connection_detail)).route(post().to(crate::admin::connection_send)))

    // Static
    .service(resource("/favicon.ico").name("favicon").route(get().to(crate::static_file::favicon)))
    .service(resource("/static/{filename:.*}").name("static").route(get().to(crate::static_file::static_file)))

    // Catch-all
    .service(resource("/{path:.*}").name("missing").to(crate::not_found));
}