Refactor AccountUpdateData.into_profile_data() method
This commit is contained in:
parent
1663d22b19
commit
f35e8d806f
3 changed files with 15 additions and 13 deletions
|
@ -11,7 +11,6 @@ use crate::mastodon_api::uploads::{save_b64_file, UploadError};
|
||||||
use crate::models::profiles::types::{
|
use crate::models::profiles::types::{
|
||||||
DbActorProfile,
|
DbActorProfile,
|
||||||
ExtraField,
|
ExtraField,
|
||||||
IdentityProof,
|
|
||||||
PaymentOption,
|
PaymentOption,
|
||||||
ProfileUpdateData,
|
ProfileUpdateData,
|
||||||
};
|
};
|
||||||
|
@ -248,10 +247,7 @@ fn process_b64_image_field_value(
|
||||||
impl AccountUpdateData {
|
impl AccountUpdateData {
|
||||||
pub fn into_profile_data(
|
pub fn into_profile_data(
|
||||||
self,
|
self,
|
||||||
current_avatar: &Option<String>,
|
profile: &DbActorProfile,
|
||||||
current_banner: &Option<String>,
|
|
||||||
current_identity_proofs: &[IdentityProof],
|
|
||||||
current_payment_options: &[PaymentOption],
|
|
||||||
media_dir: &Path,
|
media_dir: &Path,
|
||||||
) -> Result<ProfileUpdateData, HttpError> {
|
) -> Result<ProfileUpdateData, HttpError> {
|
||||||
let maybe_bio = if let Some(ref bio_source) = self.note {
|
let maybe_bio = if let Some(ref bio_source) = self.note {
|
||||||
|
@ -262,13 +258,17 @@ impl AccountUpdateData {
|
||||||
None
|
None
|
||||||
};
|
};
|
||||||
let avatar = process_b64_image_field_value(
|
let avatar = process_b64_image_field_value(
|
||||||
self.avatar, current_avatar.clone(), media_dir,
|
self.avatar,
|
||||||
|
profile.avatar_file_name.clone(),
|
||||||
|
media_dir,
|
||||||
)?;
|
)?;
|
||||||
let banner = process_b64_image_field_value(
|
let banner = process_b64_image_field_value(
|
||||||
self.header, current_banner.clone(), media_dir,
|
self.header,
|
||||||
|
profile.banner_file_name.clone(),
|
||||||
|
media_dir,
|
||||||
)?;
|
)?;
|
||||||
let identity_proofs = current_identity_proofs.to_vec();
|
let identity_proofs = profile.identity_proofs.inner().to_vec();
|
||||||
let payment_options = current_payment_options.to_vec();
|
let payment_options = profile.payment_options.inner().to_vec();
|
||||||
let mut extra_fields = vec![];
|
let mut extra_fields = vec![];
|
||||||
for field_source in self.fields_attributes.unwrap_or(vec![]) {
|
for field_source in self.fields_attributes.unwrap_or(vec![]) {
|
||||||
let value = markdown_basic_to_html(&field_source.value)
|
let value = markdown_basic_to_html(&field_source.value)
|
||||||
|
|
|
@ -222,10 +222,7 @@ async fn update_credentials(
|
||||||
let mut current_user = get_current_user(db_client, auth.token()).await?;
|
let mut current_user = get_current_user(db_client, auth.token()).await?;
|
||||||
let mut profile_data = account_data.into_inner()
|
let mut profile_data = account_data.into_inner()
|
||||||
.into_profile_data(
|
.into_profile_data(
|
||||||
¤t_user.profile.avatar_file_name,
|
¤t_user.profile,
|
||||||
¤t_user.profile.banner_file_name,
|
|
||||||
¤t_user.profile.identity_proofs.into_inner(),
|
|
||||||
¤t_user.profile.payment_options.into_inner(),
|
|
||||||
&config.media_dir(),
|
&config.media_dir(),
|
||||||
)?;
|
)?;
|
||||||
profile_data.clean()?;
|
profile_data.clean()?;
|
||||||
|
|
|
@ -236,6 +236,11 @@ impl Serialize for PaymentOption {
|
||||||
pub struct PaymentOptions(pub Vec<PaymentOption>);
|
pub struct PaymentOptions(pub Vec<PaymentOption>);
|
||||||
|
|
||||||
impl PaymentOptions {
|
impl PaymentOptions {
|
||||||
|
pub fn inner(&self) -> &[PaymentOption] {
|
||||||
|
let Self(payment_options) = self;
|
||||||
|
payment_options
|
||||||
|
}
|
||||||
|
|
||||||
pub fn into_inner(self) -> Vec<PaymentOption> {
|
pub fn into_inner(self) -> Vec<PaymentOption> {
|
||||||
let Self(payment_options) = self;
|
let Self(payment_options) = self;
|
||||||
payment_options
|
payment_options
|
||||||
|
|
Loading…
Reference in a new issue