use axum::{
routing::{get, post, put},
Router,
};
use dialtone_common::rest::api_paths::API_V1;
use dialtone_common::rest::api_paths::path::*;
use crate::api_v1::authenticate_handlers::post_authenticate_handler;
use crate::api_v1::names_handlers::get_name;
use crate::api_v1::sites_handlers::get_site_handler;
use super::{
actor_handlers::{
default_handlers::put_default_actor_handler,
owned_handlers::{
get_owned_actor_handler, post_owned_actor_handler, put_owned_actor_handler,
},
public_handlers::get_public_actor_handler,
sysinfo_handlers::{get_actor_sysinfo_handler, put_actor_sysinfo_handler},
},
actor_pages_handlers::{
all_pages_handlers::get_all_actor_pages_handler,
by_host_handlers::get_all_actors_by_host_handler,
by_owner_handlers::get_actor_pages_by_owner_handler,
},
ap_object_handlers::{
owned::{
get_owned_ap_object_handler, post_owned_ap_object_handler, put_owned_ap_object_handler,
},
public_handlers::get_ap_object_handler,
sysdata_handlers::put_ap_object_sysdata_handler,
sysinfo_handlers::get_ap_object_sysinfo_handler,
visibility_handler::put_ap_object_visibility_handler,
},
ap_object_pages_handlers::{
by_actor_handlers::get_ap_object_pages_by_actor_handler,
by_host_handlers::get_ap_object_pages_by_host_handler,
owned_by_actor_handlers::get_owned_ap_object_pages_by_actor_handler,
},
user_handlers::{
password_handlers::put_user_password_handler,
prefs_handlers::put_user_prefs_handler,
status_handlers::put_user_status_handler,
sysdata_handlers::put_user_sysdata_handler,
sysinfo_handlers::get_user_sysinfo_handler,
webuser_handlers::{get_user_handler, post_user_handler},
},
user_page_handlers::page_handlers::get_user_page_handler,
};
pub fn api_v1_routes() -> (String, Router) {
let router = Router::new()
.route(SITES, get(get_site_handler))
.route(USER, get(get_user_handler))
.route(USER, post(post_user_handler))
.route(USER__PASSWORD, put(put_user_password_handler))
.route(USER__STATUS, put(put_user_status_handler))
.route(USER__PREFS, put(put_user_prefs_handler))
.route(USER__SYSINFO, get(get_user_sysinfo_handler))
.route(USER__SYSDATA, put(put_user_sysdata_handler))
.route(USER_PAGES, get(get_user_page_handler))
.route(AUTHENTICATE, post(post_authenticate_handler))
.route(ACTOR, get(get_public_actor_handler))
.route(ACTOR__OWNED, post(post_owned_actor_handler))
.route(ACTOR__OWNED, get(get_owned_actor_handler))
.route(ACTOR__OWNED, put(put_owned_actor_handler))
.route(ACTOR__DEFAULT, put(put_default_actor_handler))
.route(ACTOR__SYSINFO, get(get_actor_sysinfo_handler))
.route(ACTOR__SYSINFO, put(put_actor_sysinfo_handler))
.route(ACTOR_PAGES__ALL_OWNED, get(get_all_actor_pages_handler))
.route(ACTOR_PAGES__BY_OWNER, get(get_actor_pages_by_owner_handler))
.route(ACTOR_PAGES__BY_HOST, get(get_all_actors_by_host_handler))
.route(NAME, get(get_name))
.route(AP_OBJECT, get(get_ap_object_handler))
.route(AP_OBJECT__OWNED, post(post_owned_ap_object_handler))
.route(AP_OBJECT__OWNED, put(put_owned_ap_object_handler))
.route(AP_OBJECT__OWNED, get(get_owned_ap_object_handler))
.route(AP_OBJECT__SYSINFO, get(get_ap_object_sysinfo_handler))
.route(AP_OBJECT__SYSDATA, put(put_ap_object_sysdata_handler))
.route(AP_OBJECT__VISIBILITY, put(put_ap_object_visibility_handler))
.route(
AP_OBJECT_PAGES__BY_ACTOR,
get(get_ap_object_pages_by_actor_handler),
)
.route(
AP_OBJECT_PAGES__BY_HOST,
get(get_ap_object_pages_by_host_handler),
)
.route(
AP_OBJECT_PAGES__OWNED_BY_ACTOR,
get(get_owned_ap_object_pages_by_actor_handler),
);
(API_V1.to_string(), router)
}