Fix: Create new address_id and don't use default id.
This commit is contained in:
parent
165718820c
commit
9cc37c3154
|
@ -5,9 +5,9 @@ create table addresses
|
|||
constraint addresses_pk
|
||||
primary key,
|
||||
title text,
|
||||
street text not null,
|
||||
number text not null,
|
||||
zipcode text not null,
|
||||
city text not null,
|
||||
country text not null
|
||||
street text,
|
||||
number text,
|
||||
zipcode text,
|
||||
city text,
|
||||
country text
|
||||
);
|
|
@ -1,10 +1,11 @@
|
|||
use crate::database::controller::connector::establish_connection;
|
||||
use crate::database::model::addresses::Address;
|
||||
use crate::helper::settings::Settings;
|
||||
use crate::schema::addresses::columns::id;
|
||||
use crate::schema::addresses::dsl::addresses;
|
||||
use crate::schema::addresses_entities::columns::{address_id, entitiy_id};
|
||||
use crate::schema::addresses_entities::dsl::addresses_entities;
|
||||
use diesel::{insert_into, ExpressionMethods, RunQueryDsl};
|
||||
use diesel::{ExpressionMethods, QueryDsl, RunQueryDsl};
|
||||
use rocket::State;
|
||||
|
||||
pub fn insert_address(
|
||||
|
@ -14,8 +15,8 @@ pub fn insert_address(
|
|||
) -> bool {
|
||||
let connection = establish_connection(settings);
|
||||
|
||||
let address = insert_into(addresses)
|
||||
.values(new_address)
|
||||
let address = diesel::insert_into(addresses)
|
||||
.default_values()
|
||||
.get_result(&connection);
|
||||
|
||||
let address: Address = match address {
|
||||
|
@ -26,7 +27,23 @@ pub fn insert_address(
|
|||
}
|
||||
};
|
||||
|
||||
let result = insert_into(addresses_entities)
|
||||
let mut new_address = new_address;
|
||||
new_address.id = address.id;
|
||||
|
||||
let update = diesel::update(addresses)
|
||||
.filter(id.eq(address.id))
|
||||
.set(&new_address)
|
||||
.get_result(&connection);
|
||||
|
||||
let address: Address = match update {
|
||||
Ok(address) => address,
|
||||
Err(e) => {
|
||||
warn!("Couldn't receive updated address: {}", e);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
let result = diesel::insert_into(addresses_entities)
|
||||
.values((address_id.eq(address.id), entitiy_id.eq(belongs_to.clone())))
|
||||
.execute(&connection);
|
||||
|
||||
|
|
|
@ -106,8 +106,8 @@ fn parse_profile_member_form_address(
|
|||
member_form: MemberProfileForm,
|
||||
old_address: Option<Address>,
|
||||
) -> Option<Address> {
|
||||
if old_address.is_some() {
|
||||
let address_id = match Uuid::from_str(&member_form.address_id) {
|
||||
let address_id: uuid::Uuid = if old_address.is_some() {
|
||||
match Uuid::from_str(&member_form.address_id) {
|
||||
Ok(uuid) => {
|
||||
if uuid != old_address.clone().unwrap().id {
|
||||
warn!(
|
||||
|
@ -127,8 +127,10 @@ fn parse_profile_member_form_address(
|
|||
);
|
||||
return None;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Default::default()
|
||||
};
|
||||
|
||||
let title = if old_address.is_some() {
|
||||
old_address.unwrap().title
|
||||
|
@ -137,13 +139,13 @@ fn parse_profile_member_form_address(
|
|||
};
|
||||
|
||||
Some(Address {
|
||||
id: Default::default(),
|
||||
id: address_id,
|
||||
title,
|
||||
street: member_form.address_street,
|
||||
number: member_form.address_number,
|
||||
zipcode: member_form.address_zipcode,
|
||||
city: member_form.address_city,
|
||||
country: member_form.address_country,
|
||||
street: Some(member_form.address_street),
|
||||
number: Some(member_form.address_number),
|
||||
zipcode: Some(member_form.address_zipcode),
|
||||
city: Some(member_form.address_city),
|
||||
country: Some(member_form.address_country),
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -7,9 +7,9 @@ use crate::schema::addresses;
|
|||
pub struct Address {
|
||||
pub(crate) id: uuid::Uuid,
|
||||
pub(crate) title: Option<String>,
|
||||
pub(crate) street: String,
|
||||
pub(crate) number: String,
|
||||
pub(crate) zipcode: String,
|
||||
pub(crate) city: String,
|
||||
pub(crate) country: String,
|
||||
pub(crate) street: Option<String>,
|
||||
pub(crate) number: Option<String>,
|
||||
pub(crate) zipcode: Option<String>,
|
||||
pub(crate) city: Option<String>,
|
||||
pub(crate) country: Option<String>,
|
||||
}
|
||||
|
|
|
@ -5,11 +5,11 @@ table! {
|
|||
addresses (id) {
|
||||
id -> Uuid,
|
||||
title -> Nullable<Text>,
|
||||
street -> Text,
|
||||
number -> Text,
|
||||
zipcode -> Text,
|
||||
city -> Text,
|
||||
country -> Text,
|
||||
street -> Nullable<Text>,
|
||||
number -> Nullable<Text>,
|
||||
zipcode -> Nullable<Text>,
|
||||
city -> Nullable<Text>,
|
||||
country -> Nullable<Text>,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue