From 1388383909cbe79a84b84b031532d0c90d8c8217 Mon Sep 17 00:00:00 2001 From: John Costa Date: Tue, 22 Apr 2025 16:52:05 +0100 Subject: [PATCH] feat(sql): model function to allow user to request image properties based on events --- backend/models/user.go | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/backend/models/user.go b/backend/models/user.go index 7afeebd..ee195bf 100644 --- a/backend/models/user.go +++ b/backend/models/user.go @@ -53,8 +53,8 @@ func getUserIdFromImage(ctx context.Context, dbPool *sql.DB, imageId uuid.UUID) return userImages[0].UserID, nil } -func (m UserModel) ListWithProperties(ctx context.Context, userId uuid.UUID) ([]ImageWithProperties, error) { - listWithPropertiesStmt := SELECT( +func getListImagesStmt() SelectStatement { + return SELECT( UserImages.ID.AS("ImageWithProperties.ID"), Image.ID, Image.ImageName, @@ -84,15 +84,26 @@ func (m UserModel) ListWithProperties(ctx context.Context, userId uuid.UUID) ([] LEFT_JOIN(ImageContacts, ImageContacts.ImageID.EQ(UserImages.ImageID)). LEFT_JOIN(Contacts, Contacts.ID.EQ(ImageContacts.ContactID)). LEFT_JOIN(ImageNotes, ImageNotes.ImageID.EQ(UserImages.ImageID)). - LEFT_JOIN(Notes, Notes.ID.EQ(ImageNotes.NoteID))). + LEFT_JOIN(Notes, Notes.ID.EQ(ImageNotes.NoteID))) +} + +func (m UserModel) ListImageWithProperties(ctx context.Context, userId uuid.UUID, imageId uuid.UUID) (ImageWithProperties, error) { + listImagePropertiesStmt := getListImagesStmt(). + WHERE(UserImages.ImageID.EQ(UUID(imageId))) + + image := ImageWithProperties{} + err := listImagePropertiesStmt.QueryContext(ctx, m.dbPool, &image) + + return image, err +} + +func (m UserModel) ListWithProperties(ctx context.Context, userId uuid.UUID) ([]ImageWithProperties, error) { + listWithPropertiesStmt := getListImagesStmt(). WHERE(UserImages.UserID.EQ(UUID(userId))) images := []ImageWithProperties{} err := listWithPropertiesStmt.QueryContext(ctx, m.dbPool, &images) - if err != nil { - return images, err - } return images, err }