198 lines
6.4 KiB
Rust
198 lines
6.4 KiB
Rust
use rouille::{router, Request, Response};
|
|
|
|
use crate::{routes, templates, utils::flash::FlashResponse, SessionData};
|
|
|
|
// TODO: add mount_peachcloud_routes()
|
|
// https://github.com/tomaka/rouille/issues/232#issuecomment-919225104
|
|
|
|
/// Define the PeachPub router.
|
|
///
|
|
/// Takes an incoming request and matches on the defined routes,
|
|
/// returning either a template or a redirect.
|
|
///
|
|
/// All of these routes require the user to be authenticated. See the
|
|
/// `public_router` for publically-accessible, authentication-related routes.
|
|
///
|
|
/// Excludes settings and status routes related to networking and the device
|
|
/// (memory, hard disk, CPU etc.).
|
|
pub fn mount_peachpub_routes(
|
|
request: &Request,
|
|
session_data: &mut Option<SessionData>,
|
|
) -> Response {
|
|
router!(request,
|
|
(GET) (/) => {
|
|
Response::html(routes::home::build_template())
|
|
},
|
|
|
|
(GET) (/auth/change) => {
|
|
// build the html template
|
|
Response::html(routes::authentication::change::build_template(request))
|
|
// reset the flash msg cookies in the response object
|
|
.reset_flash()
|
|
},
|
|
|
|
(POST) (/auth/change) => {
|
|
routes::authentication::change::handle_form(request)
|
|
},
|
|
|
|
(GET) (/auth/logout) => {
|
|
routes::authentication::logout::deauthenticate(session_data)
|
|
},
|
|
|
|
(GET) (/guide) => {
|
|
Response::html(routes::guide::build_template())
|
|
},
|
|
|
|
(POST) (/scuttlebutt/block) => {
|
|
routes::scuttlebutt::block::handle_form(request)
|
|
},
|
|
|
|
(GET) (/scuttlebutt/blocks) => {
|
|
Response::html(routes::scuttlebutt::blocks::build_template())
|
|
},
|
|
|
|
(POST) (/scuttlebutt/follow) => {
|
|
routes::scuttlebutt::follow::handle_form(request)
|
|
},
|
|
|
|
(GET) (/scuttlebutt/follows) => {
|
|
Response::html(routes::scuttlebutt::follows::build_template())
|
|
},
|
|
|
|
(GET) (/scuttlebutt/friends) => {
|
|
Response::html(routes::scuttlebutt::friends::build_template())
|
|
},
|
|
|
|
(GET) (/scuttlebutt/invites) => {
|
|
Response::html(routes::scuttlebutt::invites::build_template(request))
|
|
.reset_flash()
|
|
},
|
|
|
|
(POST) (/scuttlebutt/invites) => {
|
|
routes::scuttlebutt::invites::handle_form(request)
|
|
},
|
|
|
|
(GET) (/scuttlebutt/peers) => {
|
|
Response::html(routes::scuttlebutt::peers::build_template())
|
|
},
|
|
|
|
(GET) (/scuttlebutt/private) => {
|
|
Response::html(routes::scuttlebutt::private::build_template(request, None))
|
|
},
|
|
|
|
(POST) (/scuttlebutt/private) => {
|
|
routes::scuttlebutt::private::handle_form(request)
|
|
},
|
|
|
|
(GET) (/scuttlebutt/private/{ssb_id: String}) => {
|
|
Response::html(routes::scuttlebutt::private::build_template(request, Some(ssb_id)))
|
|
},
|
|
|
|
(GET) (/scuttlebutt/profile) => {
|
|
Response::html(routes::scuttlebutt::profile::build_template(request, None))
|
|
.reset_flash()
|
|
},
|
|
|
|
(GET) (/scuttlebutt/profile/update) => {
|
|
Response::html(routes::scuttlebutt::profile_update::build_template(request))
|
|
.reset_flash()
|
|
},
|
|
|
|
(POST) (/scuttlebutt/profile/update) => {
|
|
routes::scuttlebutt::profile_update::handle_form(request)
|
|
},
|
|
|
|
(GET) (/scuttlebutt/profile/{ssb_id: String}) => {
|
|
Response::html(routes::scuttlebutt::profile::build_template(request, Some(ssb_id)))
|
|
},
|
|
|
|
(POST) (/scuttlebutt/publish) => {
|
|
routes::scuttlebutt::publish::handle_form(request)
|
|
},
|
|
|
|
(GET) (/scuttlebutt/search) => {
|
|
Response::html(routes::scuttlebutt::search::build_template(request))
|
|
.reset_flash()
|
|
},
|
|
|
|
(POST) (/scuttlebutt/search) => {
|
|
routes::scuttlebutt::search::handle_form(request)
|
|
},
|
|
|
|
(POST) (/scuttlebutt/unblock) => {
|
|
routes::scuttlebutt::unblock::handle_form(request)
|
|
},
|
|
|
|
(POST) (/scuttlebutt/unfollow) => {
|
|
routes::scuttlebutt::unfollow::handle_form(request)
|
|
},
|
|
|
|
(GET) (/settings) => {
|
|
Response::html(routes::settings::menu::build_template())
|
|
},
|
|
|
|
(GET) (/settings/admin) => {
|
|
Response::html(routes::settings::admin::menu::build_template())
|
|
},
|
|
|
|
(POST) (/settings/admin/add) => {
|
|
routes::settings::admin::add::handle_form(request)
|
|
},
|
|
|
|
(GET) (/settings/admin/configure) => {
|
|
Response::html(routes::settings::admin::configure::build_template(request))
|
|
.reset_flash()
|
|
},
|
|
|
|
(POST) (/settings/admin/delete) => {
|
|
routes::settings::admin::delete::handle_form(request)
|
|
},
|
|
|
|
(GET) (/settings/scuttlebutt) => {
|
|
Response::html(routes::settings::scuttlebutt::menu::build_template(request))
|
|
.reset_flash()
|
|
},
|
|
|
|
(GET) (/settings/scuttlebutt/restart) => {
|
|
routes::settings::scuttlebutt::restart::restart_sbot()
|
|
},
|
|
|
|
(GET) (/settings/scuttlebutt/start) => {
|
|
routes::settings::scuttlebutt::start::start_sbot()
|
|
},
|
|
|
|
(GET) (/settings/scuttlebutt/stop) => {
|
|
routes::settings::scuttlebutt::stop::stop_sbot()
|
|
},
|
|
|
|
(GET) (/settings/scuttlebutt/configure) => {
|
|
Response::html(routes::settings::scuttlebutt::configure::build_template(request))
|
|
.reset_flash()
|
|
},
|
|
|
|
(POST) (/settings/scuttlebutt/configure) => {
|
|
routes::settings::scuttlebutt::configure::handle_form(request, false)
|
|
},
|
|
|
|
(POST) (/settings/scuttlebutt/configure/restart) => {
|
|
routes::settings::scuttlebutt::configure::handle_form(request, true)
|
|
},
|
|
|
|
(GET) (/settings/scuttlebutt/configure/default) => {
|
|
routes::settings::scuttlebutt::default::write_config()
|
|
},
|
|
|
|
(GET) (/settings/theme/{theme: String}) => {
|
|
routes::settings::theme::set_theme(theme)
|
|
},
|
|
|
|
(GET) (/status/scuttlebutt) => {
|
|
Response::html(routes::status::scuttlebutt::build_template())
|
|
},
|
|
|
|
// render the not_found template and set a 404 status code if none of
|
|
// the other blocks matches the request
|
|
_ => Response::html(templates::not_found::build_template()).with_status_code(404)
|
|
)
|
|
}
|