1
0
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:
NG (Graham)
2026-07-05 15:45:36 -04:00
committed by NGnius
parent 6601c188d0
commit 2adf8249bb
35 changed files with 1466 additions and 121 deletions

View File

@@ -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);
}

View 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)
}