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
This commit is contained in:
2025-03-21 14:01:21 +00:00
parent 5b794b2e7f
commit 7b64563647

View File

@ -31,10 +31,7 @@ type ImageWithProperties struct {
Locations []model.Locations Locations []model.Locations
Events []struct { Events []model.Events
model.Events
Location model.Locations
}
} }
func getUserIdFromImage(ctx context.Context, dbPool *sql.DB, imageId uuid.UUID) (uuid.UUID, error) { 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, UserTags.AllColumns,
ImageText.AllColumns, ImageText.AllColumns,
ImageLinks.AllColumns, ImageLinks.AllColumns,
ImageLocations.AllColumns,
Locations.AllColumns,
ImageEvents.AllColumns,
Events.AllColumns,
). ).
FROM( FROM(
UserImages.INNER_JOIN(Image, Image.ID.EQ(UserImages.ImageID)). UserImages.INNER_JOIN(Image, Image.ID.EQ(UserImages.ImageID)).
LEFT_JOIN(ImageTags, ImageTags.ImageID.EQ(Image.ID)). LEFT_JOIN(ImageTags, ImageTags.ImageID.EQ(Image.ID)).
LEFT_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(ImageText, ImageText.ImageID.EQ(Image.ID)).
LEFT_JOIN(ImageLinks, ImageLinks.ImageID.EQ(Image.ID))). LEFT_JOIN(ImageLinks, ImageLinks.ImageID.EQ(Image.ID)).
WHERE(UserImages.UserID.EQ(UUID(userId))) LEFT_JOIN(ImageLocations, ImageLocations.ImageID.EQ(UserImages.ImageID)).
LEFT_JOIN(Locations, Locations.ID.EQ(ImageLocations.LocationID)).
listLocationsStmt := SELECT( LEFT_JOIN(ImageEvents, ImageEvents.ImageID.EQ(UserImages.ImageID)).
UserImages.AllColumns, LEFT_JOIN(Events, Events.ID.EQ(ImageEvents.ID))).
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))) WHERE(UserImages.UserID.EQ(UUID(userId)))
fmt.Println(listWithPropertiesStmt.DebugSql()) fmt.Println(listWithPropertiesStmt.DebugSql())
@ -104,16 +87,6 @@ func (m UserModel) ListWithProperties(ctx context.Context, userId uuid.UUID) ([]
return images, err 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 return images, err
} }