From 8e8abe7d3782d9ea1d1cb1c8fc1ae607952c1cd0 Mon Sep 17 00:00:00 2001 From: viktorstrate Date: Thu, 15 Apr 2021 16:27:26 +0200 Subject: [PATCH] Replace all gorm .Scan() calls with .Find() if the argument is a model. This ensures that the proper gorm hooks are called which was causing the full screen view on the Places page to crash. Also fixed a bug in Messages.js that caused a crash. --- api/graphql/resolvers/album.go | 4 ++-- api/graphql/resolvers/media.go | 4 ++-- api/graphql/resolvers/user.go | 2 +- api/routes/videos.go | 2 +- ui/src/components/messages/Messages.js | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/api/graphql/resolvers/album.go b/api/graphql/resolvers/album.go index d5b1f2c0..8592f915 100644 --- a/api/graphql/resolvers/album.go +++ b/api/graphql/resolvers/album.go @@ -53,7 +53,7 @@ func (r *queryResolver) MyAlbums(ctx context.Context, order *models.Ordering, pa query = models.FormatSQL(query, order, paginate) var albums []*models.Album - if err := query.Scan(&albums).Error; err != nil { + if err := query.Find(&albums).Error; err != nil { return nil, err } @@ -160,7 +160,7 @@ func (r *albumResolver) Thumbnail(ctx context.Context, obj *models.Album) (*mode ) AND media.id IN ( SELECT media_id FROM media_urls WHERE media_urls.media_id = media.id ) LIMIT 1 - `, obj.ID).Scan(&media).Error + `, obj.ID).Find(&media).Error if err != nil { return nil, err diff --git a/api/graphql/resolvers/media.go b/api/graphql/resolvers/media.go index c8ab24fc..2cc0cf52 100644 --- a/api/graphql/resolvers/media.go +++ b/api/graphql/resolvers/media.go @@ -35,7 +35,7 @@ func (r *queryResolver) MyMedia(ctx context.Context, order *models.Ordering, pag query = models.FormatSQL(query, order, paginate) - if err := query.Scan(&media).Error; err != nil { + if err := query.Find(&media).Error; err != nil { return nil, err } @@ -91,7 +91,7 @@ func (r *queryResolver) MediaList(ctx context.Context, ids []int) ([]*models.Med Joins("LEFT JOIN user_albums ON user_albums.album_id = media.album_id"). Where("media.id IN ?", ids). Where("user_albums.user_id = ?", user.ID). - Scan(&media).Error + Find(&media).Error if err != nil { return nil, errors.Wrap(err, "could not get media list by media_id and user_id from database") diff --git a/api/graphql/resolvers/user.go b/api/graphql/resolvers/user.go index 0646bdde..15547ffc 100644 --- a/api/graphql/resolvers/user.go +++ b/api/graphql/resolvers/user.go @@ -31,7 +31,7 @@ func (r *queryResolver) User(ctx context.Context, order *models.Ordering, pagina var users []*models.User - if err := models.FormatSQL(r.Database.Model(models.User{}), order, paginate).Scan(&users).Error; err != nil { + if err := models.FormatSQL(r.Database.Model(models.User{}), order, paginate).Find(&users).Error; err != nil { return nil, err } diff --git a/api/routes/videos.go b/api/routes/videos.go index 67fea3aa..4f90bf69 100644 --- a/api/routes/videos.go +++ b/api/routes/videos.go @@ -20,7 +20,7 @@ func RegisterVideoRoutes(db *gorm.DB, router *mux.Router) { mediaName := mux.Vars(r)["name"] var mediaURL models.MediaURL - result := db.Model(&models.MediaURL{}).Select("media_urls.*").Joins("Media").Where("media_urls.media_name = ?", mediaName).Scan(&mediaURL) + result := db.Model(&models.MediaURL{}).Select("media_urls.*").Joins("Media").Where("media_urls.media_name = ?", mediaName).Find(&mediaURL) if err := result.Error; err != nil { w.WriteHeader(http.StatusNotFound) w.Write([]byte("404")) diff --git a/ui/src/components/messages/Messages.js b/ui/src/components/messages/Messages.js index 894c3f53..35ce0ae0 100644 --- a/ui/src/components/messages/Messages.js +++ b/ui/src/components/messages/Messages.js @@ -54,7 +54,7 @@ const Messages = () => { const RefDiv = props =>
x && ref(x)} /> switch (message.type) { - case 'message': + case 'Message': return props => ( { {...props} /> ) - case 'progress': + case 'Progress': return props => (