I have all of these routes in my actix webserver. How can I beatuify this code snippet?
HttpServer::new(move || {
[...]
.service(
web::scope(WEBSOCKET)
//.wrap(auth.clone())
.service(get_all_statistics)
.service(data_stream)
.service(finished_lms)
)
.service(
web::scope(MANAGEMENT)
.wrap(auth.clone())
.service(generate_class)
.service(get_users)
.service(scan_app)
.service(get_scanned_websites)
.service(get_class)
.service(generate_uuids)
.service(get_student)
.service(delete_class)
.service(reset_password)
.service(new_group)
.service(get_group)
.service(update_group_name)
.service(remove_group)
.service(update_group)
)
.service(
web::scope(LEARNING_UNIT)
.wrap(auth.clone())
.service(create_lu)
.service(get_all_lu)
.service(get_lu)
.service(get_class_lu)
.service(update_lu)
.service(delete_lu)
.service(add_class_lu)
.service(update_class_lu_date)
.service(get_lu_class)
.service(update_mission_status)
)
.service(
web::scope(USER)
.wrap(auth.clone())
.service(get_user)
.service(update_user)
.service(expiry_date)
.service(update_lu_manually)
.service(get_lm_status)
.service(check_login)
)
.service(
web::scope(SIGNUP)
//.wrap(auth.clone())
.service(signup_student)
.service(check_uuid)
.service(signup_makerspace)
)
.service(
web::scope(APP)
.wrap(auth.clone())
.service(scan_website)
)
.service(
web::scope(ADMIN)
.wrap(auth.clone())
.service(signup_teacher)
.service(get_teacher)
.service(reset_password_admin)
.service(delete_user)
)
.service(
web::scope(NETWORK)
.wrap(auth.clone())
.service(start_capture)
.service(stop_capture)
)
.service(
web::scope(ANALYZE)
.wrap(auth.clone())
.service(student_blacklight)
.service(blacklight)
.service(analyze_domain)
.service(tracker_db)
)
.service(
web::scope(VULNERABILITY)
.wrap(auth.clone())
.service(app_playstore)
.service(static_scan)
)
.service(
web::scope(COLLECTION)
.wrap(auth.clone())
.service(likes)
.service(iot_query)
.service(query)
.service(get_images)
.service(get_queries)
.service(get_iot_queries)
.service(get_image)
.service(get_query)
.service(get_iot_query)
)
})
Something like:
fn routes(
route_prefix: &str,
auth: HttpAuthentication<Option<BearerAuth>, fn(ServiceRequest, Option<BearerAuth>),
routes: Vec<HttpSericeFactory>) -> web::Scope {
web::scope(route_prefix)
.wrap(auth)
.service(routes)
}