Skip to content

Commit

Permalink
done
Browse files Browse the repository at this point in the history
  • Loading branch information
garrettladley committed Feb 15, 2024
1 parent 7d874a1 commit c84b362
Show file tree
Hide file tree
Showing 8 changed files with 22 additions and 20 deletions.
2 changes: 1 addition & 1 deletion backend/src/transactions/club.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ func CreateClub(db *gorm.DB, userId uuid.UUID, club models.Club) (*models.Club,
return &club, nil
}

func GetClub(db *gorm.DB, id uuid.UUID, preloads ...OptionalPreload) (*models.Club, *errors.Error) {
func GetClub(db *gorm.DB, id uuid.UUID, preloads ...OptionalQuery) (*models.Club, *errors.Error) {
var club models.Club

query := db
Expand Down
4 changes: 2 additions & 2 deletions backend/src/transactions/club_tag.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ import (
)

func CreateClubTags(db *gorm.DB, id uuid.UUID, tags []models.Tag) ([]models.Tag, *errors.Error) {
user, err := GetClub(db, id)
user, err := GetClub(db, id, PreloadTag())
if err != nil {
return nil, err
}

if err := db.Model(&user).Association("Tag").Replace(tags); err != nil {
if err := db.Model(&user).Association("Tag").Append(tags); err != nil {
return nil, &errors.FailedToUpdateUser
}

Expand Down
12 changes: 9 additions & 3 deletions backend/src/transactions/preloaders.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,22 @@ package transactions

import "gorm.io/gorm"

type OptionalPreload func(*gorm.DB) *gorm.DB
type OptionalQuery func(*gorm.DB) *gorm.DB

func PreloadFollwer() OptionalPreload {
func PreloadFollwer() OptionalQuery {
return func(db *gorm.DB) *gorm.DB {
return db.Preload("Follower")
}
}

func PreloadMember() OptionalPreload {
func PreloadMember() OptionalQuery {
return func(db *gorm.DB) *gorm.DB {
return db.Preload("Member")
}
}

func PreloadTag() OptionalQuery {
return func(db *gorm.DB) *gorm.DB {
return db.Preload("Tag")
}
}
2 changes: 1 addition & 1 deletion backend/src/transactions/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func GetUsers(db *gorm.DB, limit int, offset int) ([]models.User, *errors.Error)
return users, nil
}

func GetUser(db *gorm.DB, id uuid.UUID, preloads ...OptionalPreload) (*models.User, *errors.Error) {
func GetUser(db *gorm.DB, id uuid.UUID, preloads ...OptionalQuery) (*models.User, *errors.Error) {
var user models.User

query := db
Expand Down
4 changes: 1 addition & 3 deletions backend/src/transactions/user_follower.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@ func CreateFollowing(db *gorm.DB, userId uuid.UUID, clubId uuid.UUID) *errors.Er
return err
}

user.Follower = append(user.Follower, *club)

if err := db.Model(&user).Association("Follower").Replace(user.Follower); err != nil {
if err := db.Model(&user).Association("Follower").Append(club); err != nil {
return &errors.FailedToUpdateUser
}

Expand Down
4 changes: 1 addition & 3 deletions backend/src/transactions/user_member.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@ func CreateMember(db *gorm.DB, userId uuid.UUID, clubId uuid.UUID) *errors.Error
return err
}

user.Member = append(user.Member, *club)

if err := db.Model(&user).Association("Member").Replace(user.Member); err != nil {
if err := db.Model(&user).Association("Member").Append(club); err != nil {
return &errors.FailedToUpdateUser
}

Expand Down
4 changes: 2 additions & 2 deletions backend/src/transactions/user_tag.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ func GetUserTags(db *gorm.DB, id uuid.UUID) ([]models.Tag, *errors.Error) {
}

func CreateUserTags(db *gorm.DB, id uuid.UUID, tags []models.Tag) ([]models.Tag, *errors.Error) {
user, err := GetUser(db, id)
user, err := GetUser(db, id, PreloadTag())
if err != nil {
return nil, err
}

if err := db.Model(&user).Association("Tag").Replace(tags); err != nil {
if err := db.Model(&user).Association("Tag").Append(tags); err != nil {
return nil, &errors.FailedToUpdateUser
}

Expand Down
10 changes: 5 additions & 5 deletions backend/tests/api/user_member_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ func TestCreateMembershipWorks(t *testing.T) {

eaa.Assert.NilError(err)

eaa.Assert.Equal(1, len(user.Member))
eaa.Assert.Equal(2, len(user.Member)) // SAC Super Club and the one just added

eaa.Assert.Equal(clubUUID, user.Member[0].ID)
eaa.Assert.Equal(clubUUID, user.Member[1].ID) // second club AKA the one just added

var club models.Club

Expand Down Expand Up @@ -128,7 +128,7 @@ func TestDeleteMembershipWorks(t *testing.T) {

eaa.Assert.NilError(err)

eaa.Assert.Equal(0, len(user.Member))
eaa.Assert.Equal(1, len(user.Member)) // SAC Super Club

var club models.Club

Expand Down Expand Up @@ -259,15 +259,15 @@ func TestGetMembershipWorks(t *testing.T) {

eaa.Assert.NilError(err)

eaa.Assert.Equal(1, len(clubs))
eaa.Assert.Equal(2, len(clubs)) // SAC Super Club and the one just added

var dbClubs []models.Club

err = eaa.App.Conn.Where("id = ?", clubUUID).Preload("Member").First(&dbClubs).Error

eaa.Assert.NilError(err)

eaa.Assert.Equal(1, len(clubs))
eaa.Assert.Equal(2, len(clubs)) // SAC Super Club and the one just added
},
},
).Close()
Expand Down

0 comments on commit c84b362

Please sign in to comment.