remove id before create Listing, set location/companyLocation to null if not set

This commit is contained in:
Andreas Knuth 2024-08-11 13:06:48 +02:00
parent 1e1d5cea57
commit d71a5c25c3
3 changed files with 22 additions and 13 deletions

View File

@ -176,6 +176,7 @@ export class BusinessListingService {
data.updated = new Date();
const validatedBusinessListing = BusinessListingSchema.parse(data);
const convertedBusinessListing = convertBusinessToDrizzleBusiness(data);
delete convertedBusinessListing.id;
const [createdListing] = await this.conn.insert(businesses).values(convertedBusinessListing).returning();
return convertDrizzleBusinessToBusiness(createdListing);
} catch (error) {

View File

@ -127,6 +127,7 @@ export class CommercialPropertyService {
data.updated = new Date();
const validatedCommercialPropertyListing = CommercialPropertyListingSchema.parse(data);
const convertedCommercialPropertyListing = convertCommercialToDrizzleCommercial(data);
delete convertedCommercialPropertyListing.id;
const [createdListing] = await this.conn.insert(commercials).values(convertedCommercialPropertyListing).returning();
return convertDrizzleCommercialToCommercial(createdListing);
} catch (error) {

View File

@ -40,12 +40,14 @@ export function convertBusinessToDrizzleBusiness(businessListing: Partial<Busine
}
export function convertDrizzleBusinessToBusiness(drizzleBusinessListing: Partial<DrizzleBusinessListing>): BusinessListing {
const o = {
location_name: drizzleBusinessListing.city,
location_state: drizzleBusinessListing.state,
location_latitude: drizzleBusinessListing.latitude,
location_longitude: drizzleBusinessListing.longitude,
location: drizzleBusinessListing.city ? undefined : null,
location_name: drizzleBusinessListing.city ? drizzleBusinessListing.city : undefined,
location_state: drizzleBusinessListing.state ? drizzleBusinessListing.state : undefined,
location_latitude: drizzleBusinessListing.latitude ? drizzleBusinessListing.latitude : undefined,
location_longitude: drizzleBusinessListing.longitude ? drizzleBusinessListing.longitude : undefined,
...drizzleBusinessListing,
};
Object.keys(o).forEach(key => (o[key] === undefined ? delete o[key] : {}));
delete o.city;
delete o.state;
delete o.latitude;
@ -60,12 +62,14 @@ export function convertCommercialToDrizzleCommercial(commercialPropertyListing:
}
export function convertDrizzleCommercialToCommercial(drizzleCommercialPropertyListing: Partial<DrizzleCommercialPropertyListing>): CommercialPropertyListing {
const o = {
location_name: drizzleCommercialPropertyListing.city,
location_state: drizzleCommercialPropertyListing.state,
location_latitude: drizzleCommercialPropertyListing.latitude,
location_longitude: drizzleCommercialPropertyListing.longitude,
location: drizzleCommercialPropertyListing.city ? undefined : null,
location_name: drizzleCommercialPropertyListing.city ? drizzleCommercialPropertyListing.city : undefined,
location_state: drizzleCommercialPropertyListing.state ? drizzleCommercialPropertyListing.state : undefined,
location_latitude: drizzleCommercialPropertyListing.latitude ? drizzleCommercialPropertyListing.latitude : undefined,
location_longitude: drizzleCommercialPropertyListing.longitude ? drizzleCommercialPropertyListing.longitude : undefined,
...drizzleCommercialPropertyListing,
};
Object.keys(o).forEach(key => (o[key] === undefined ? delete o[key] : {}));
delete o.city;
delete o.state;
delete o.latitude;
@ -80,17 +84,20 @@ export function convertUserToDrizzleUser(user: Partial<User>): DrizzleUser {
}
export function convertDrizzleUserToUser(drizzleUser: Partial<DrizzleUser>): User {
const o = {
companyLocation_name: drizzleUser.city,
companyLocation_state: drizzleUser.state,
companyLocation_latitude: drizzleUser.latitude,
companyLocation_longitude: drizzleUser.longitude,
const o: any = {
companyLocation: drizzleUser.city ? undefined : null,
companyLocation_name: drizzleUser.city ? drizzleUser.city : undefined,
companyLocation_state: drizzleUser.state ? drizzleUser.state : undefined,
companyLocation_latitude: drizzleUser.latitude ? drizzleUser.latitude : undefined,
companyLocation_longitude: drizzleUser.longitude ? drizzleUser.longitude : undefined,
...drizzleUser,
};
Object.keys(o).forEach(key => (o[key] === undefined ? delete o[key] : {}));
delete o.city;
delete o.state;
delete o.latitude;
delete o.longitude;
return unflattenObject(o);
}
function flattenObject(obj: any, res: any = {}): any {