2021-04-09 00:22:17 +00:00
|
|
|
use serde::Serialize;
|
|
|
|
|
|
|
|
use crate::config::Config;
|
2022-01-26 16:59:27 +00:00
|
|
|
use crate::ethereum::contracts::ADAPTER;
|
2021-04-09 00:22:17 +00:00
|
|
|
|
|
|
|
#[derive(Serialize)]
|
2021-11-10 14:32:27 +00:00
|
|
|
pub struct InstanceInfo {
|
2021-04-09 00:22:17 +00:00
|
|
|
uri: String,
|
|
|
|
title: String,
|
|
|
|
short_description: String,
|
|
|
|
description: String,
|
|
|
|
version: String,
|
|
|
|
registrations: bool,
|
|
|
|
|
|
|
|
login_message: String,
|
2022-01-26 00:17:10 +00:00
|
|
|
blockchain_explorer_url: Option<String>,
|
|
|
|
blockchain_contract_name: Option<String>,
|
|
|
|
blockchain_contract_address: Option<String>,
|
2021-04-09 00:22:17 +00:00
|
|
|
ipfs_gateway_url: Option<String>,
|
|
|
|
}
|
|
|
|
|
2021-11-10 14:32:27 +00:00
|
|
|
impl From<&Config> for InstanceInfo {
|
2021-04-09 00:22:17 +00:00
|
|
|
fn from(config: &Config) -> Self {
|
|
|
|
Self {
|
2021-11-10 14:32:27 +00:00
|
|
|
uri: config.instance().host(),
|
2021-04-09 00:22:17 +00:00
|
|
|
title: config.instance_title.clone(),
|
|
|
|
short_description: config.instance_short_description.clone(),
|
|
|
|
description: config.instance_description.clone(),
|
|
|
|
version: config.version.clone(),
|
2021-11-13 17:37:31 +00:00
|
|
|
registrations: config.registrations_open,
|
2021-04-09 00:22:17 +00:00
|
|
|
login_message: config.login_message.clone(),
|
2022-01-26 00:17:10 +00:00
|
|
|
blockchain_explorer_url: config.blockchain.as_ref()
|
2022-01-25 22:17:28 +00:00
|
|
|
.and_then(|val| val.explorer_url.clone()),
|
2022-01-26 00:17:10 +00:00
|
|
|
blockchain_contract_name: config.blockchain.as_ref()
|
2022-01-26 16:59:27 +00:00
|
|
|
.and(Some(ADAPTER.into())),
|
2022-01-26 00:17:10 +00:00
|
|
|
blockchain_contract_address: config.blockchain.as_ref()
|
2022-01-25 22:17:28 +00:00
|
|
|
.map(|val| val.contract_address.clone()),
|
2021-04-09 00:22:17 +00:00
|
|
|
ipfs_gateway_url: config.ipfs_gateway_url.clone(),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|