Skip to content

Commit

Permalink
fix: err not fount type
Browse files Browse the repository at this point in the history
  • Loading branch information
zijiren233 committed Oct 14, 2024
1 parent 16569ea commit dcde91a
Show file tree
Hide file tree
Showing 19 changed files with 112 additions and 88 deletions.
6 changes: 3 additions & 3 deletions internal/cache/bilibili.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func BilibiliSharedMpdCacheInitFunc(ctx context.Context, movie *model.Movie, arg
var cookies []*http.Cookie
vendorInfo, err := args.Get(ctx)
if err != nil {
if !errors.Is(err, db.ErrNotFound("vendor")) {
if !errors.Is(err, db.ErrNotFound(db.ErrVendorNotFound)) {
return nil, err
}
} else {
Expand Down Expand Up @@ -173,7 +173,7 @@ func BilibiliNoSharedMovieCacheInitFunc(ctx context.Context, movie *model.Movie,
var cookies []*http.Cookie
vendorInfo, err := args[0].Get(ctx)
if err != nil {
if !errors.Is(err, db.ErrNotFound("vendor")) {
if !errors.Is(err, db.ErrNotFound(db.ErrVendorNotFound)) {
return "", err
}
} else {
Expand Down Expand Up @@ -250,7 +250,7 @@ func BilibiliSubtitleCacheInitFunc(ctx context.Context, movie *model.Movie, args
var cookies []*http.Cookie
vendorInfo, err := args.Get(ctx)
if err != nil {
if errors.Is(err, db.ErrNotFound("vendor")) {
if errors.Is(err, db.ErrNotFound(db.ErrVendorNotFound)) {
return nil, nil
}
} else {
Expand Down
2 changes: 1 addition & 1 deletion internal/cache/emby.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ func EmbyAuthorizationCacheWithUserIDInitFunc(userID, serverID string) (*EmbyUse
return nil, err
}
if v.ApiKey == "" || v.Host == "" {
return nil, db.ErrNotFound("vendor")
return nil, db.ErrNotFound(db.ErrVendorNotFound)
}
return &EmbyUserCacheData{
Host: v.Host,
Expand Down
30 changes: 17 additions & 13 deletions internal/db/member.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ import (
"gorm.io/gorm"
)

const (
ErrRoomMemberNotFound = "room or member"
)

type CreateRoomMemberRelationConfig func(r *model.RoomMember)

func WithRoomMemberStatus(status model.RoomMemberStatus) CreateRoomMemberRelationConfig {
Expand Down Expand Up @@ -51,27 +55,27 @@ func FirstOrCreateRoomMemberRelation(roomID, userID string, conf ...CreateRoomMe
func GetRoomMember(roomID, userID string) (*model.RoomMember, error) {
roomMemberRelation := &model.RoomMember{}
err := db.Where("room_id = ? AND user_id = ?", roomID, userID).First(roomMemberRelation).Error
return roomMemberRelation, HandleNotFound(err, "room or member")
return roomMemberRelation, HandleNotFound(err, ErrRoomMemberNotFound)
}

func RoomApprovePendingMember(roomID, userID string) error {
result := db.Model(&model.RoomMember{}).
Where("room_id = ? AND user_id = ? AND status = ?", roomID, userID, model.RoomMemberStatusPending).
Update("status", model.RoomMemberStatusActive)

return HandleUpdateResult(result, "room member")
return HandleUpdateResult(result, ErrRoomMemberNotFound)
}

func RoomBanMember(roomID, userID string) error {
result := db.Model(&model.RoomMember{}).
Where("room_id = ? AND user_id = ?", roomID, userID).
Update("status", model.RoomMemberStatusBanned)
return HandleUpdateResult(result, "room or member")
return HandleUpdateResult(result, ErrRoomMemberNotFound)
}

func RoomUnbanMember(roomID, userID string) error {
result := db.Model(&model.RoomMember{}).Where("room_id = ? AND user_id = ?", roomID, userID).Update("status", model.RoomMemberStatusActive)
return HandleUpdateResult(result, "room or member")
return HandleUpdateResult(result, ErrRoomMemberNotFound)
}

func DeleteRoomMember(roomID, userID string) error {
Expand All @@ -84,22 +88,22 @@ func DeleteRoomMember(roomID, userID string) error {
Where("room_id = ? AND user_id = ?", roomID, userID).
Delete(&model.RoomMember{})

return HandleUpdateResult(result, "room or member")
return HandleUpdateResult(result, ErrRoomMemberNotFound)
}

func SetMemberPermissions(roomID string, userID string, permission model.RoomMemberPermission) error {
result := db.Model(&model.RoomMember{}).Where("room_id = ? AND user_id = ?", roomID, userID).Update("permissions", permission)
return HandleUpdateResult(result, "room or member")
return HandleUpdateResult(result, ErrRoomMemberNotFound)
}

func AddMemberPermissions(roomID string, userID string, permission model.RoomMemberPermission) error {
result := db.Model(&model.RoomMember{}).Where("room_id = ? AND user_id = ?", roomID, userID).Update("permissions", db.Raw("permissions | ?", permission))
return HandleUpdateResult(result, "room or member")
return HandleUpdateResult(result, ErrRoomMemberNotFound)
}

func RemoveMemberPermissions(roomID string, userID string, permission model.RoomMemberPermission) error {
result := db.Model(&model.RoomMember{}).Where("room_id = ? AND user_id = ?", roomID, userID).Update("permissions", db.Raw("permissions & ?", ^permission))
return HandleUpdateResult(result, "room or member")
return HandleUpdateResult(result, ErrRoomMemberNotFound)
}

// func GetAllRoomMembersRelationCount(roomID string, scopes ...func(*gorm.DB) *gorm.DB) (int64, error) {
Expand All @@ -110,17 +114,17 @@ func RemoveMemberPermissions(roomID string, userID string, permission model.Room

func RoomSetAdminPermissions(roomID, userID string, permissions model.RoomAdminPermission) error {
result := db.Model(&model.RoomMember{}).Where("room_id = ? AND user_id = ?", roomID, userID).Update("admin_permissions", permissions)
return HandleUpdateResult(result, "room or member")
return HandleUpdateResult(result, ErrRoomMemberNotFound)
}

func RoomAddAdminPermissions(roomID, userID string, permissions model.RoomAdminPermission) error {
result := db.Model(&model.RoomMember{}).Where("room_id = ? AND user_id = ?", roomID, userID).Update("admin_permissions", db.Raw("admin_permissions | ?", permissions))
return HandleUpdateResult(result, "room or member")
return HandleUpdateResult(result, ErrRoomMemberNotFound)
}

func RoomRemoveAdminPermissions(roomID, userID string, permissions model.RoomAdminPermission) error {
result := db.Model(&model.RoomMember{}).Where("room_id = ? AND user_id = ?", roomID, userID).Update("admin_permissions", db.Raw("admin_permissions & ?", ^permissions))
return HandleUpdateResult(result, "room or member")
return HandleUpdateResult(result, ErrRoomMemberNotFound)
}

func RoomSetAdmin(roomID, userID string, permissions model.RoomAdminPermission) error {
Expand All @@ -129,7 +133,7 @@ func RoomSetAdmin(roomID, userID string, permissions model.RoomAdminPermission)
"permissions": model.AllPermissions,
"admin_permissions": permissions,
})
return HandleUpdateResult(result, "room or member")
return HandleUpdateResult(result, ErrRoomMemberNotFound)
}

func RoomSetMember(roomID, userID string, permissions model.RoomMemberPermission) error {
Expand All @@ -138,7 +142,7 @@ func RoomSetMember(roomID, userID string, permissions model.RoomMemberPermission
"permissions": permissions,
"admin_permissions": model.NoAdminPermission,
})
return HandleUpdateResult(result, "room or member")
return HandleUpdateResult(result, ErrRoomMemberNotFound)
}

func GetRoomMembers(roomID string, scopes ...func(*gorm.DB) *gorm.DB) ([]*model.RoomMember, error) {
Expand Down
30 changes: 17 additions & 13 deletions internal/db/movie.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ import (
"gorm.io/gorm/clause"
)

const (
ErrRoomOrMovieNotFound = "room or movie"
)

func CreateMovie(movie *model.Movie) error {
return db.Create(movie).Error
}
Expand Down Expand Up @@ -38,22 +42,22 @@ func GetMoviesCountByRoomID(roomID string, scopes ...func(*gorm.DB) *gorm.DB) (i
func GetMovieByID(roomID, id string, scopes ...func(*gorm.DB) *gorm.DB) (*model.Movie, error) {
var movie model.Movie
err := db.Where("room_id = ? AND id = ?", roomID, id).Scopes(scopes...).First(&movie).Error
return &movie, HandleNotFound(err, "room or movie")
return &movie, HandleNotFound(err, ErrRoomOrMovieNotFound)
}

func DeleteMovieByID(roomID, id string) error {
err := db.Unscoped().Where("room_id = ? AND id = ?", roomID, id).Delete(&model.Movie{}).Error
return HandleNotFound(err, "room")
result := db.Unscoped().Where("room_id = ? AND id = ?", roomID, id).Delete(&model.Movie{})
return HandleUpdateResult(result, ErrRoomOrMovieNotFound)
}

func DeleteMoviesByID(roomID string, ids []string) error {
err := db.Unscoped().Where("room_id = ? AND id IN ?", roomID, ids).Delete(&model.Movie{}).Error
return HandleNotFound(err, "room")
result := db.Unscoped().Where("room_id = ? AND id IN ?", roomID, ids).Delete(&model.Movie{})
return HandleUpdateResult(result, ErrRoomOrMovieNotFound)
}

func DeleteMoviesByRoomID(roomID string, scopes ...func(*gorm.DB) *gorm.DB) error {
err := db.Where("room_id = ?", roomID).Scopes(scopes...).Delete(&model.Movie{}).Error
return HandleNotFound(err, "room")
result := db.Where("room_id = ?", roomID).Scopes(scopes...).Delete(&model.Movie{})
return HandleUpdateResult(result, ErrRoomOrMovieNotFound)
}

func DeleteMoviesByRoomIDAndParentID(roomID, parentID string) error {
Expand All @@ -62,31 +66,31 @@ func DeleteMoviesByRoomIDAndParentID(roomID, parentID string) error {

func UpdateMovie(movie *model.Movie, columns ...clause.Column) error {
result := db.Model(movie).Clauses(clause.Returning{Columns: columns}).Where("room_id = ? AND id = ?", movie.RoomID, movie.ID).Updates(movie)
return HandleUpdateResult(result, "movie")
return HandleUpdateResult(result, ErrRoomOrMovieNotFound)
}

func SaveMovie(movie *model.Movie, columns ...clause.Column) error {
result := db.Model(movie).Clauses(clause.Returning{Columns: columns}).Where("room_id = ? AND id = ?", movie.RoomID, movie.ID).Omit("created_at").Save(movie)
return HandleUpdateResult(result, "movie")
return HandleUpdateResult(result, ErrRoomOrMovieNotFound)
}

func SwapMoviePositions(roomID, movie1ID, movie2ID string) error {
return db.Transaction(func(tx *gorm.DB) error {
var movie1, movie2 model.Movie
if err := tx.Where("room_id = ? AND id = ?", roomID, movie1ID).First(&movie1).Error; err != nil {
return HandleNotFound(err, "movie1")
return HandleNotFound(err, ErrRoomOrMovieNotFound)
}
if err := tx.Where("room_id = ? AND id = ?", roomID, movie2ID).First(&movie2).Error; err != nil {
return HandleNotFound(err, "movie2")
return HandleNotFound(err, ErrRoomOrMovieNotFound)
}

movie1.Position, movie2.Position = movie2.Position, movie1.Position

result1 := tx.Model(&movie1).Where("room_id = ? AND id = ?", roomID, movie1ID).Update("position", movie1.Position)
if err := HandleUpdateResult(result1, "movie1"); err != nil {
if err := HandleUpdateResult(result1, ErrRoomOrMovieNotFound); err != nil {
return err
}
result2 := tx.Model(&movie2).Where("room_id = ? AND id = ?", roomID, movie2ID).Update("position", movie2.Position)
return HandleUpdateResult(result2, "movie2")
return HandleUpdateResult(result2, ErrRoomOrMovieNotFound)
})
}
16 changes: 10 additions & 6 deletions internal/db/room.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ import (
"gorm.io/gorm/clause"
)

const (
ErrRoomNotFound = "room"
)

type CreateRoomConfig func(r *model.Room)

func WithSetting(setting *model.RoomSettings) CreateRoomConfig {
Expand Down Expand Up @@ -102,13 +106,13 @@ func GetRoomByID(id string) (*model.Room, error) {
}
var r model.Room
err := db.Where("id = ?", id).First(&r).Error
return &r, HandleNotFound(err, "room")
return &r, HandleNotFound(err, ErrRoomNotFound)
}

func CreateOrLoadRoomSettings(roomID string) (*model.RoomSettings, error) {
var rs model.RoomSettings
err := OnConflictDoNothing().Where(model.RoomSettings{ID: roomID}).Attrs(model.DefaultRoomSettings()).FirstOrCreate(&rs).Error
return &rs, HandleNotFound(err, "room")
return &rs, err
}

func SaveRoomSettings(roomID string, settings *model.RoomSettings) error {
Expand All @@ -127,7 +131,7 @@ func UpdateRoomSettings(roomID string, settings map[string]interface{}) (*model.

func DeleteRoomByID(roomID string) error {
result := db.Unscoped().Select(clause.Associations).Delete(&model.Room{ID: roomID})
return HandleUpdateResult(result, "room")
return HandleUpdateResult(result, ErrRoomNotFound)
}

func SetRoomPassword(roomID, password string) error {
Expand All @@ -144,7 +148,7 @@ func SetRoomPassword(roomID, password string) error {

func SetRoomHashedPassword(roomID string, hashedPassword []byte) error {
result := db.Model(&model.Room{}).Where("id = ?", roomID).Update("hashed_password", hashedPassword)
return HandleUpdateResult(result, "room")
return HandleUpdateResult(result, ErrRoomNotFound)
}

func GetAllRooms(scopes ...func(*gorm.DB) *gorm.DB) ([]*model.Room, error) {
Expand Down Expand Up @@ -173,10 +177,10 @@ func GetAllRoomsByUserID(userID string) ([]*model.Room, error) {

func SetRoomStatus(roomID string, status model.RoomStatus) error {
result := db.Model(&model.Room{}).Where("id = ?", roomID).Update("status", status)
return HandleUpdateResult(result, "room")
return HandleUpdateResult(result, ErrRoomNotFound)
}

func SetRoomStatusByCreator(userID string, status model.RoomStatus) error {
result := db.Model(&model.Room{}).Where("creator_id = ?", userID).Update("status", status)
return HandleUpdateResult(result, "room")
return HandleUpdateResult(result, ErrRoomNotFound)
}
12 changes: 8 additions & 4 deletions internal/db/setting.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ import (
"gorm.io/gorm/clause"
)

const (
ErrSettingNotFound = "setting"
)

func GetSettingItems() ([]*model.Setting, error) {
var items []*model.Setting
return items, db.Find(&items).Error
Expand Down Expand Up @@ -35,17 +39,17 @@ func SaveSettingItem(item *model.Setting) error {
result := db.Clauses(clause.OnConflict{
UpdateAll: true,
}).Create(item)
return HandleUpdateResult(result, "setting")
return HandleUpdateResult(result, ErrSettingNotFound)
}

func DeleteSettingItem(item *model.Setting) error {
result := db.Where("name = ?", item.Name).Delete(&model.Setting{})
return HandleUpdateResult(result, "setting")
return HandleUpdateResult(result, ErrSettingNotFound)
}

func DeleteSettingItemByName(name string) error {
result := db.Where("name = ?", name).Delete(&model.Setting{})
return HandleUpdateResult(result, "setting")
return HandleUpdateResult(result, ErrSettingNotFound)
}

func GetSettingItemValue(name string) (string, error) {
Expand All @@ -67,5 +71,5 @@ func FirstOrCreateSettingItemValue(s *model.Setting) error {

func UpdateSettingItemValue(name, value string) error {
result := db.Model(&model.Setting{}).Where("name = ?", name).Update("value", value)
return HandleUpdateResult(result, "setting")
return HandleUpdateResult(result, ErrSettingNotFound)
}
Loading

0 comments on commit dcde91a

Please sign in to comment.