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(); data.updated = new Date();
const validatedBusinessListing = BusinessListingSchema.parse(data); const validatedBusinessListing = BusinessListingSchema.parse(data);
const convertedBusinessListing = convertBusinessToDrizzleBusiness(data); const convertedBusinessListing = convertBusinessToDrizzleBusiness(data);
delete convertedBusinessListing.id;
const [createdListing] = await this.conn.insert(businesses).values(convertedBusinessListing).returning(); const [createdListing] = await this.conn.insert(businesses).values(convertedBusinessListing).returning();
return convertDrizzleBusinessToBusiness(createdListing); return convertDrizzleBusinessToBusiness(createdListing);
} catch (error) { } catch (error) {

View File

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

View File

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