- let site_view = match blocking(context.pool(), SiteView::read_local).await? {
- Ok(site_view) => Some(site_view),
- // If the site isn't created yet, check the setup
- Err(_) => {
- if let Some(setup) = context.settings().setup.as_ref() {
- let register = Register {
- username: setup.admin_username.to_owned(),
- email: setup.admin_email.clone().map(|s| s.into()),
- password: setup.admin_password.clone().into(),
- password_verify: setup.admin_password.clone().into(),
- show_nsfw: true,
- captcha_uuid: None,
- captcha_answer: None,
- honeypot: None,
- answer: None,
- };
- let admin_jwt = register
- .perform(context, websocket_id)
- .await?
- .jwt
- .expect("jwt is returned from registration on newly created site");
- info!("Admin {} created", setup.admin_username);
-
- let create_site = CreateSite {
- name: setup.site_name.to_owned(),
- auth: admin_jwt,
- ..CreateSite::default()
- };
- create_site.perform(context, websocket_id).await?;
- info!("Site {} created", setup.site_name);
- Some(blocking(context.pool(), SiteView::read_local).await??)
- } else {
- None
- }
- }
- };