feat: returning events and locations from end point

This commit is contained in:
2025-03-20 18:34:11 +00:00
parent 47dd025ae3
commit f7382b0d2b

View File

@ -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
}