From f7382b0d2b4ffb7557f92b02cb630a76e70edd7b Mon Sep 17 00:00:00 2001 From: John Costa Date: Thu, 20 Mar 2025 18:34:11 +0000 Subject: [PATCH] feat: returning events and locations from end point --- backend/models/user.go | 49 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/backend/models/user.go b/backend/models/user.go index 18b88a2..264778c 100644 --- a/backend/models/user.go +++ b/backend/models/user.go @@ -30,6 +30,11 @@ type ImageWithProperties struct { Text []model.ImageText Locations []model.Locations + + Events []struct { + model.Events + Location model.Locations + } } func getUserIdFromImage(ctx context.Context, dbPool *sql.DB, imageId uuid.UUID) (uuid.UUID, error) { @@ -58,20 +63,56 @@ func (m UserModel) ListWithProperties(ctx context.Context, userId uuid.UUID) ([] ImageTags.AllColumns, UserTags.AllColumns, ImageText.AllColumns, - ImageLinks.AllColumns). + ImageLinks.AllColumns, + ). FROM( UserImages.INNER_JOIN(Image, Image.ID.EQ(UserImages.ImageID)). LEFT_JOIN(ImageTags, ImageTags.ImageID.EQ(Image.ID)). - INNER_JOIN(UserTags, UserTags.ID.EQ(ImageTags.TagID)). + LEFT_JOIN(UserTags, UserTags.ID.EQ(ImageTags.TagID)). LEFT_JOIN(ImageText, ImageText.ImageID.EQ(Image.ID)). - LEFT_JOIN(ImageLinks, ImageLinks.ImageID.EQ(Image.ID)). - LEFT_JOIN(ImageLocations, ImageLocations.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)), + ). WHERE(UserImages.UserID.EQ(UUID(userId))) fmt.Println(listWithPropertiesStmt.DebugSql()) images := []ImageWithProperties{} + err := listWithPropertiesStmt.QueryContext(ctx, m.dbPool, &images) + if err != nil { + 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 }