agreeable-painting-48846
01/12/2023, 4:05 PMkind-area-3810
01/12/2023, 4:07 PMagreeable-painting-48846
01/12/2023, 4:09 PM#[shuttle_service::main]
async fn main(
#[shuttle_secrets::Secrets] secrets: SecretStore,
#[shuttle_static_folder::StaticFolder] static_folder: PathBuf
) -> ShuttleAxum {
// We use Secrets.toml to set the BEARER key, just like in a .env file and call it here
let secret = secrets.get("BEARER").unwrap_or("Bear".to_string());
// set up router with Secrets & use syncwrapper to make the web service work
let router = router(secret, static_folder);
let sync_wrapper = SyncWrapper::new(router);
Ok(sync_wrapper)
}agreeable-painting-48846
01/12/2023, 4:10 PMfn router(secret: String, static_folder: PathBuf) -> Router {
// initialise the Users k/v store and allow the static files to be served
let users = Users::default();
// make an admin route for kicking users
let admin = Router::new()
.route("/disconnect/:user_id", get(disconnect_user))
.layer(RequireAuthorizationLayer::bearer(&secret));
let static_assets = SpaRouter::new("/", static_folder) .index_file("index.html").handle_error(handle_error);
// return a new router and nest the admin route into the websocket route
Router::new()
.route("/ws", get(ws_handler))
.nest("/admin", admin)
.layer(Extension(users))
.merge(static_assets)
}kind-area-3810
01/12/2023, 4:25 PMagreeable-painting-48846
01/12/2023, 4:36 PMkind-area-3810
01/13/2023, 12:57 PMagreeable-painting-48846
01/13/2023, 1:07 PMagreeable-painting-48846
01/13/2023, 1:09 PMkind-area-3810
01/13/2023, 1:11 PMagreeable-painting-48846
01/13/2023, 1:13 PMshuttle_static_folder::StaticFolderagreeable-painting-48846
01/13/2023, 1:54 PMkind-area-3810
01/13/2023, 1:59 PMagreeable-painting-48846
01/13/2023, 2:08 PMagreeable-painting-48846
01/13/2023, 2:11 PMkind-area-3810
01/13/2023, 2:13 PMagreeable-painting-48846
01/13/2023, 2:28 PMagreeable-painting-48846
01/13/2023, 2:28 PMkind-area-3810
01/13/2023, 3:14 PMkind-area-3810
01/13/2023, 3:15 PMagreeable-painting-48846
01/13/2023, 3:26 PMnice-author-46189
01/23/2023, 1:35 PMagreeable-painting-48846
01/23/2023, 1:37 PM