From 84881c5c2d18815864e75fad7303c6c87d5acb80 Mon Sep 17 00:00:00 2001 From: John Costa Date: Fri, 21 Mar 2025 14:01:21 +0000 Subject: [PATCH] fix: simplifying query I do have some learning to do about go-jet specifically. I can't include the Location field on events, because the QRM will add any location to the events --- backend/models/user.go | 47 +++++++++--------------------------------- 1 file changed, 10 insertions(+), 37 deletions(-) diff --git a/backend/models/user.go b/backend/models/user.go index 264778c..e0bdf03 100644 --- a/backend/models/user.go +++ b/backend/models/user.go @@ -31,10 +31,7 @@ type ImageWithProperties struct { Locations []model.Locations - Events []struct { - model.Events - Location model.Locations - } + Events []model.Events } func getUserIdFromImage(ctx context.Context, dbPool *sql.DB, imageId uuid.UUID) (uuid.UUID, error) { @@ -64,35 +61,21 @@ func (m UserModel) ListWithProperties(ctx context.Context, userId uuid.UUID) ([] UserTags.AllColumns, ImageText.AllColumns, ImageLinks.AllColumns, + ImageLocations.AllColumns, + Locations.AllColumns, + ImageEvents.AllColumns, + Events.AllColumns, ). FROM( UserImages.INNER_JOIN(Image, Image.ID.EQ(UserImages.ImageID)). LEFT_JOIN(ImageTags, ImageTags.ImageID.EQ(Image.ID)). LEFT_JOIN(UserTags, UserTags.ID.EQ(ImageTags.TagID)). LEFT_JOIN(ImageText, ImageText.ImageID.EQ(Image.ID)). - LEFT_JOIN(ImageLinks, ImageLinks.ImageID.EQ(Image.ID))). - WHERE(UserImages.UserID.EQ(UUID(userId))) - - listLocationsStmt := SELECT( - UserImages.AllColumns, - ImageLocations.AllColumns, - Locations.AllColumns, - ). - FROM( - UserImages.INNER_JOIN(ImageLocations, ImageLocations.ImageID.EQ(UserImages.ImageID)). - INNER_JOIN(Locations, Locations.ID.EQ(ImageLocations.LocationID)), - ). - WHERE(UserImages.UserID.EQ(UUID(userId))) - - listEventsStmt := SELECT( - UserImages.AllColumns, - ImageLocations.AllColumns, - Locations.AllColumns, - ). - FROM( - UserImages.INNER_JOIN(ImageLocations, ImageLocations.ImageID.EQ(UserImages.ImageID)). - INNER_JOIN(Locations, Locations.ID.EQ(ImageLocations.LocationID)), - ). + LEFT_JOIN(ImageLinks, ImageLinks.ImageID.EQ(Image.ID)). + LEFT_JOIN(ImageLocations, ImageLocations.ImageID.EQ(UserImages.ImageID)). + LEFT_JOIN(Locations, Locations.ID.EQ(ImageLocations.LocationID)). + LEFT_JOIN(ImageEvents, ImageEvents.ImageID.EQ(UserImages.ImageID)). + LEFT_JOIN(Events, Events.ID.EQ(ImageEvents.ID))). WHERE(UserImages.UserID.EQ(UUID(userId))) fmt.Println(listWithPropertiesStmt.DebugSql()) @@ -104,16 +87,6 @@ func (m UserModel) ListWithProperties(ctx context.Context, userId uuid.UUID) ([] return images, err } - err = listLocationsStmt.QueryContext(ctx, m.dbPool, &images) - if err != nil { - return images, err - } - - err = listEventsStmt.QueryContext(ctx, m.dbPool, &images) - if err != nil { - return images, err - } - return images, err }