forked from alemi/upub
fix: properly create app with id, load relays
This commit is contained in:
parent
b5d3e4e864
commit
65a9c29fbd
1 changed files with 14 additions and 15 deletions
|
@ -21,7 +21,12 @@ struct ContextInner {
|
||||||
// TODO keep these pre-parsed
|
// TODO keep these pre-parsed
|
||||||
app: model::actor::Model,
|
app: model::actor::Model,
|
||||||
pkey: String,
|
pkey: String,
|
||||||
relays: BTreeSet<String>,
|
relay: Relays,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct Relays {
|
||||||
|
sources: BTreeSet<String>,
|
||||||
|
sinks: BTreeSet<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
|
@ -57,7 +62,7 @@ impl Context {
|
||||||
let pubk = std::str::from_utf8(&rsa.public_key_to_pem()?)?.to_string();
|
let pubk = std::str::from_utf8(&rsa.public_key_to_pem()?)?.to_string();
|
||||||
let system = model::actor::ActiveModel {
|
let system = model::actor::ActiveModel {
|
||||||
internal: NotSet,
|
internal: NotSet,
|
||||||
id: NotSet,
|
id: Set(base_url.clone()),
|
||||||
domain: Set(domain.clone()),
|
domain: Set(domain.clone()),
|
||||||
preferred_username: Set(domain.clone()),
|
preferred_username: Set(domain.clone()),
|
||||||
actor_type: Set(apb::ActorType::Application),
|
actor_type: Set(apb::ActorType::Application),
|
||||||
|
@ -87,22 +92,16 @@ impl Context {
|
||||||
// TODO maybe we could provide a more descriptive error...
|
// TODO maybe we could provide a more descriptive error...
|
||||||
let pkey = app.private_key.as_deref().ok_or_else(UpubError::internal_server_error)?.to_string();
|
let pkey = app.private_key.as_deref().ok_or_else(UpubError::internal_server_error)?.to_string();
|
||||||
|
|
||||||
// TODO how to handle relations when there's two to the same model???
|
let relay_sinks = model::relation::Entity::followers(&app.id, &db).await?;
|
||||||
// let relays = model::relation::Entity::find()
|
let relay_sources = model::relation::Entity::following(&app.id, &db).await?;
|
||||||
// .filter(model::relation::Column::Following.eq(app.internal))
|
|
||||||
// .filter(model::relation::Column::Accept.is_not_null())
|
|
||||||
// .left_join(model::relation::Relation::ActorsFollower.def())
|
|
||||||
// .select_only()
|
|
||||||
// .select_column(model::actor::Column::Id)
|
|
||||||
// .into_tuple::<String>()
|
|
||||||
// .all(&db)
|
|
||||||
// .await?;
|
|
||||||
|
|
||||||
let relays = Vec::new();
|
let relay = Relays {
|
||||||
|
sources: BTreeSet::from_iter(relay_sources),
|
||||||
|
sinks: BTreeSet::from_iter(relay_sinks),
|
||||||
|
};
|
||||||
|
|
||||||
Ok(Context(Arc::new(ContextInner {
|
Ok(Context(Arc::new(ContextInner {
|
||||||
base_url, db, domain, protocol, app, dispatcher, config, pkey,
|
base_url, db, domain, protocol, app, dispatcher, config, pkey, relay,
|
||||||
relays: BTreeSet::from_iter(relays.into_iter()),
|
|
||||||
})))
|
})))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue