mirror of
https://git.ngram.ca/OpenJam/rc-servers
synced 2026-08-23 23:08:52 +00:00
Implement federated login; #123
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
pub mod garage;
|
||||
pub mod config;
|
||||
pub mod urls;
|
||||
|
||||
pub fn init(config: &dyn oj_rc_core::ConfigProvider<()>) {
|
||||
config::init(config);
|
||||
urls::init(config);
|
||||
}
|
||||
|
||||
25
rc_society/src/api/urls.rs
Normal file
25
rc_society/src/api/urls.rs
Normal file
@@ -0,0 +1,25 @@
|
||||
use actix_web::{HttpResponse, Responder, get, http::header::ContentType};
|
||||
|
||||
static JSON_DATA: std::sync::OnceLock<String> = std::sync::OnceLock::new();
|
||||
|
||||
pub(super) fn init(config: &dyn oj_rc_core::ConfigProvider<()>) {
|
||||
JSON_DATA.get_or_init(|| {
|
||||
let urls = config.server_config();
|
||||
let data = oj_serdes::society::ServiceDomains {
|
||||
root: urls.domain,
|
||||
auth: urls.auth_url,
|
||||
cdn: urls.cdn_url,
|
||||
factory: urls.factory_url,
|
||||
society: urls.society_url,
|
||||
};
|
||||
serde_json::to_string(&data).expect("ServiceDomains did not serialize")
|
||||
});
|
||||
}
|
||||
|
||||
#[get("/api/v1/services.json")]
|
||||
pub async fn get() -> impl Responder {
|
||||
let data = JSON_DATA.get().expect("ServiceDomains JSON init failure").to_owned();
|
||||
HttpResponse::Ok()
|
||||
.insert_header(ContentType::json())
|
||||
.body(data)
|
||||
}
|
||||
Reference in New Issue
Block a user