From dcde91aff34e5bdf342692f69e0ee6532a854678 Mon Sep 17 00:00:00 2001 From: zijiren233 Date: Mon, 14 Oct 2024 20:37:48 +0800 Subject: [PATCH] fix: err not fount type --- internal/cache/bilibili.go | 6 +-- internal/cache/emby.go | 2 +- internal/db/member.go | 30 ++++++----- internal/db/movie.go | 30 ++++++----- internal/db/room.go | 16 +++--- internal/db/setting.go | 12 +++-- internal/db/user.go | 50 ++++++++++--------- internal/db/vendorRecord.go | 24 +++++---- internal/op/room.go | 2 +- server/handlers/room.go | 2 +- server/handlers/user.go | 2 +- server/handlers/vendors/vendorAlist/alist.go | 2 +- server/handlers/vendors/vendorAlist/list.go | 4 +- server/handlers/vendors/vendorAlist/me.go | 4 +- server/handlers/vendors/vendorBilibili/me.go | 2 +- .../handlers/vendors/vendorBilibili/parse.go | 2 +- server/handlers/vendors/vendorEmby/emby.go | 2 +- server/handlers/vendors/vendorEmby/list.go | 4 +- server/handlers/vendors/vendorEmby/me.go | 4 +- 19 files changed, 112 insertions(+), 88 deletions(-) diff --git a/internal/cache/bilibili.go b/internal/cache/bilibili.go index c5f98d65..ba6ea2e6 100644 --- a/internal/cache/bilibili.go +++ b/internal/cache/bilibili.go @@ -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 { @@ -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 { @@ -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 { diff --git a/internal/cache/emby.go b/internal/cache/emby.go index 6fb12368..2837771e 100644 --- a/internal/cache/emby.go +++ b/internal/cache/emby.go @@ -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, diff --git a/internal/db/member.go b/internal/db/member.go index 4fdd8364..83984a96 100644 --- a/internal/db/member.go +++ b/internal/db/member.go @@ -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 { @@ -51,7 +55,7 @@ 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 { @@ -59,19 +63,19 @@ func RoomApprovePendingMember(roomID, userID string) error { 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 { @@ -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) { @@ -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 { @@ -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 { @@ -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) { diff --git a/internal/db/movie.go b/internal/db/movie.go index 79288bac..1336c734 100644 --- a/internal/db/movie.go +++ b/internal/db/movie.go @@ -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 } @@ -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 { @@ -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) }) } diff --git a/internal/db/room.go b/internal/db/room.go index ca41b829..eef82cc6 100644 --- a/internal/db/room.go +++ b/internal/db/room.go @@ -11,6 +11,10 @@ import ( "gorm.io/gorm/clause" ) +const ( + ErrRoomNotFound = "room" +) + type CreateRoomConfig func(r *model.Room) func WithSetting(setting *model.RoomSettings) CreateRoomConfig { @@ -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 { @@ -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 { @@ -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) { @@ -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) } diff --git a/internal/db/setting.go b/internal/db/setting.go index 8ac59d09..95047d4c 100644 --- a/internal/db/setting.go +++ b/internal/db/setting.go @@ -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 @@ -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) { @@ -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) } diff --git a/internal/db/user.go b/internal/db/user.go index e79de918..482fe6f9 100644 --- a/internal/db/user.go +++ b/internal/db/user.go @@ -13,6 +13,10 @@ import ( "gorm.io/gorm/clause" ) +const ( + ErrUserNotFound = "user" +) + type CreateUserConfig func(u *model.User) func WithID(id string) CreateUserConfig { @@ -140,13 +144,13 @@ func GetUserByProvider(p provider.OAuth2Provider, puid string) (*model.User, err err := db.Joins("JOIN user_providers ON users.id = user_providers.user_id"). Where("user_providers.provider = ? AND user_providers.provider_user_id = ?", p, puid). First(&user).Error - return &user, HandleNotFound(err, "user") + return &user, HandleNotFound(err, ErrUserNotFound) } func GetUserByEmail(email string) (*model.User, error) { var user model.User err := db.Where("email = ?", email).First(&user).Error - return &user, HandleNotFound(err, "user") + return &user, HandleNotFound(err, ErrUserNotFound) } func GetProviderUserID(p provider.OAuth2Provider, puid string) (string, error) { @@ -155,7 +159,7 @@ func GetProviderUserID(p provider.OAuth2Provider, puid string) (string, error) { Where("provider = ? AND provider_user_id = ?", p, puid). Select("user_id"). First(&userID).Error - return userID, HandleNotFound(err, "user") + return userID, HandleNotFound(err, ErrUserNotFound) } func BindProvider(uid string, p provider.OAuth2Provider, puid string) error { @@ -177,7 +181,7 @@ func UnBindProvider(uid string, p provider.OAuth2Provider) error { return Transactional(func(tx *gorm.DB) error { var user model.User if err := tx.Preload("UserProviders").Where("id = ?", uid).First(&user).Error; err != nil { - return HandleNotFound(err, "user") + return HandleNotFound(err, ErrUserNotFound) } if user.RegisteredByProvider && len(user.UserProviders) <= 1 { return errors.New("user must have at least one provider") @@ -189,14 +193,14 @@ func UnBindProvider(uid string, p provider.OAuth2Provider) error { func BindEmail(id string, email string) error { result := db.Model(&model.User{}).Where("id = ?", id).Update("email", model.EmptyNullString(email)) - return HandleUpdateResult(result, "user") + return HandleUpdateResult(result, ErrUserNotFound) } func UnbindEmail(uid string) error { return Transactional(func(tx *gorm.DB) error { var user model.User if err := tx.Select("email", "registered_by_email").Where("id = ?", uid).First(&user).Error; err != nil { - return HandleNotFound(err, "user") + return HandleNotFound(err, ErrUserNotFound) } if user.RegisteredByEmail { return errors.New("user must have one email") @@ -205,7 +209,7 @@ func UnbindEmail(uid string) error { return nil } result := tx.Model(&model.User{}).Where("id = ?", uid).Update("email", model.EmptyNullString("")) - return HandleUpdateResult(result, "user") + return HandleUpdateResult(result, ErrUserNotFound) }) } @@ -221,7 +225,7 @@ func GetBindProviders(uid string) ([]*model.UserProvider, error) { func GetUserByUsername(username string) (*model.User, error) { var user model.User err := db.Where("username = ?", username).First(&user).Error - return &user, HandleNotFound(err, "user") + return &user, HandleNotFound(err, ErrUserNotFound) } func GetUserByUsernameLike(username string, scopes ...func(*gorm.DB) *gorm.DB) ([]*model.User, error) { @@ -266,7 +270,7 @@ func GetUserByID(id string) (*model.User, error) { } var user model.User err := db.Where("id = ?", id).First(&user).Error - return &user, HandleNotFound(err, "user") + return &user, HandleNotFound(err, ErrUserNotFound) } func BanUser(u *model.User) error { @@ -279,7 +283,7 @@ func BanUser(u *model.User) error { func BanUserByID(userID string) error { result := db.Model(&model.User{}).Where("id = ?", userID).Update("role", model.RoleBanned) - return HandleUpdateResult(result, "user") + return HandleUpdateResult(result, ErrUserNotFound) } func UnbanUser(u *model.User) error { @@ -292,12 +296,12 @@ func UnbanUser(u *model.User) error { func UnbanUserByID(userID string) error { result := db.Model(&model.User{}).Where("id = ?", userID).Update("role", model.RoleUser) - return HandleUpdateResult(result, "user") + return HandleUpdateResult(result, ErrUserNotFound) } func DeleteUserByID(userID string) error { result := db.Unscoped().Select(clause.Associations).Delete(&model.User{ID: userID}) - return HandleUpdateResult(result, "user") + return HandleUpdateResult(result, ErrUserNotFound) } func LoadAndDeleteUserByID(userID string, columns ...clause.Column) (*model.User, error) { @@ -307,12 +311,12 @@ func LoadAndDeleteUserByID(userID string, columns ...clause.Column) (*model.User Select(clause.Associations). Where("id = ?", userID). Delete(&user) - return &user, HandleNotFound(result.Error, "user") + return &user, HandleUpdateResult(result, ErrUserNotFound) } func SaveUser(u *model.User) error { result := db.Omit("created_at").Save(u) - return HandleUpdateResult(result, "user") + return HandleUpdateResult(result, ErrUserNotFound) } func AddAdmin(u *model.User) error { @@ -342,12 +346,12 @@ func GetAdmins() ([]*model.User, error) { func AddAdminByID(userID string) error { result := db.Model(&model.User{}).Where("id = ?", userID).Update("role", model.RoleAdmin) - return HandleUpdateResult(result, "user") + return HandleUpdateResult(result, ErrUserNotFound) } func RemoveAdminByID(userID string) error { result := db.Model(&model.User{}).Where("id = ?", userID).Update("role", model.RoleUser) - return HandleUpdateResult(result, "user") + return HandleUpdateResult(result, ErrUserNotFound) } func AddRoot(u *model.User) error { @@ -368,12 +372,12 @@ func RemoveRoot(u *model.User) error { func AddRootByID(userID string) error { result := db.Model(&model.User{}).Where("id = ?", userID).Update("role", model.RoleRoot) - return HandleUpdateResult(result, "user") + return HandleUpdateResult(result, ErrUserNotFound) } func RemoveRootByID(userID string) error { result := db.Model(&model.User{}).Where("id = ?", userID).Update("role", model.RoleUser) - return HandleUpdateResult(result, "user") + return HandleUpdateResult(result, ErrUserNotFound) } func GetRoots() []*model.User { @@ -384,22 +388,22 @@ func GetRoots() []*model.User { func SetAdminRoleByID(userID string) error { result := db.Model(&model.User{}).Where("id = ?", userID).Update("role", model.RoleAdmin) - return HandleUpdateResult(result, "user") + return HandleUpdateResult(result, ErrUserNotFound) } func SetRootRoleByID(userID string) error { result := db.Model(&model.User{}).Where("id = ?", userID).Update("role", model.RoleRoot) - return HandleUpdateResult(result, "user") + return HandleUpdateResult(result, ErrUserNotFound) } func SetUserRoleByID(userID string) error { result := db.Model(&model.User{}).Where("id = ?", userID).Update("role", model.RoleUser) - return HandleUpdateResult(result, "user") + return HandleUpdateResult(result, ErrUserNotFound) } func SetUsernameByID(userID string, username string) error { result := db.Model(&model.User{}).Where("id = ?", userID).Update("username", username) - return HandleUpdateResult(result, "user") + return HandleUpdateResult(result, ErrUserNotFound) } func GetUserCount(scopes ...func(*gorm.DB) *gorm.DB) (int64, error) { @@ -422,5 +426,5 @@ func GetUsers(scopes ...func(*gorm.DB) *gorm.DB) ([]*model.User, error) { func SetUserHashedPassword(id string, hashedPassword []byte) error { result := db.Model(&model.User{}).Where("id = ?", id).Update("hashed_password", hashedPassword) - return HandleUpdateResult(result, "user") + return HandleUpdateResult(result, ErrUserNotFound) } diff --git a/internal/db/vendorRecord.go b/internal/db/vendorRecord.go index e119bc94..cbd8c2c3 100644 --- a/internal/db/vendorRecord.go +++ b/internal/db/vendorRecord.go @@ -7,10 +7,14 @@ import ( "gorm.io/gorm" ) +const ( + ErrVendorNotFound = "vendor" +) + func GetBilibiliVendor(userID string) (*model.BilibiliVendor, error) { var vendor model.BilibiliVendor err := db.Where("user_id = ?", userID).First(&vendor).Error - return &vendor, HandleNotFound(err, "vendor") + return &vendor, HandleNotFound(err, ErrVendorNotFound) } func CreateOrSaveBilibiliVendor(vendorInfo *model.BilibiliVendor) (*model.BilibiliVendor, error) { @@ -24,14 +28,14 @@ func CreateOrSaveBilibiliVendor(vendorInfo *model.BilibiliVendor) (*model.Bilibi return tx.Create(&vendorInfo).Error } else { result := tx.Omit("created_at").Save(&vendorInfo) - return HandleUpdateResult(result, "vendor") + return HandleUpdateResult(result, ErrVendorNotFound) } }) } func DeleteBilibiliVendor(userID string) error { result := db.Where("user_id = ?", userID).Delete(&model.BilibiliVendor{}) - return HandleUpdateResult(result, "vendor") + return HandleUpdateResult(result, ErrVendorNotFound) } func GetAlistVendors(userID string, scopes ...func(*gorm.DB) *gorm.DB) ([]*model.AlistVendor, error) { @@ -49,7 +53,7 @@ func GetAlistVendorsCount(userID string, scopes ...func(*gorm.DB) *gorm.DB) (int func GetAlistVendor(userID, serverID string) (*model.AlistVendor, error) { var vendor model.AlistVendor err := db.Where("user_id = ? AND server_id = ?", userID, serverID).First(&vendor).Error - return &vendor, HandleNotFound(err, "vendor") + return &vendor, HandleNotFound(err, ErrVendorNotFound) } func CreateOrSaveAlistVendor(vendorInfo *model.AlistVendor) (*model.AlistVendor, error) { @@ -64,14 +68,14 @@ func CreateOrSaveAlistVendor(vendorInfo *model.AlistVendor) (*model.AlistVendor, return tx.Create(&vendorInfo).Error } else { result := tx.Omit("created_at").Save(&vendorInfo) - return HandleUpdateResult(result, "vendor") + return HandleUpdateResult(result, ErrVendorNotFound) } }) } func DeleteAlistVendor(userID, serverID string) error { result := db.Where("user_id = ? AND server_id = ?", userID, serverID).Delete(&model.AlistVendor{}) - return HandleUpdateResult(result, "vendor") + return HandleUpdateResult(result, ErrVendorNotFound) } func GetEmbyVendors(userID string, scopes ...func(*gorm.DB) *gorm.DB) ([]*model.EmbyVendor, error) { @@ -89,13 +93,13 @@ func GetEmbyVendorsCount(userID string, scopes ...func(*gorm.DB) *gorm.DB) (int6 func GetEmbyVendor(userID, serverID string) (*model.EmbyVendor, error) { var vendor model.EmbyVendor err := db.Where("user_id = ? AND server_id = ?", userID, serverID).First(&vendor).Error - return &vendor, HandleNotFound(err, "vendor") + return &vendor, HandleNotFound(err, ErrVendorNotFound) } func GetEmbyFirstVendor(userID string) (*model.EmbyVendor, error) { var vendor model.EmbyVendor err := db.Where("user_id = ?", userID).First(&vendor).Error - return &vendor, HandleNotFound(err, "vendor") + return &vendor, HandleNotFound(err, ErrVendorNotFound) } func CreateOrSaveEmbyVendor(vendorInfo *model.EmbyVendor) (*model.EmbyVendor, error) { @@ -110,12 +114,12 @@ func CreateOrSaveEmbyVendor(vendorInfo *model.EmbyVendor) (*model.EmbyVendor, er return tx.Create(&vendorInfo).Error } else { result := tx.Omit("created_at").Save(&vendorInfo) - return HandleUpdateResult(result, "vendor") + return HandleUpdateResult(result, ErrVendorNotFound) } }) } func DeleteEmbyVendor(userID, serverID string) error { result := db.Where("user_id = ? AND server_id = ?", userID, serverID).Delete(&model.EmbyVendor{}) - return HandleUpdateResult(result, "vendor") + return HandleUpdateResult(result, ErrVendorNotFound) } diff --git a/internal/op/room.go b/internal/op/room.go index 7c31ca37..ad88b254 100644 --- a/internal/op/room.go +++ b/internal/op/room.go @@ -192,7 +192,7 @@ func (r *Room) LoadMemberStatus(userID string) (model.RoomMemberStatus, error) { } rur, err := r.LoadMember(userID) if err != nil { - if errors.Is(err, db.ErrNotFound("room or user")) { + if errors.Is(err, db.ErrNotFound(db.ErrRoomMemberNotFound)) { return model.RoomMemberStatusNotJoined, nil } return model.RoomMemberStatusNotJoined, err diff --git a/server/handlers/room.go b/server/handlers/room.go index a3930bf2..8fea0e19 100644 --- a/server/handlers/room.go +++ b/server/handlers/room.go @@ -392,7 +392,7 @@ func LoginRoom(ctx *gin.Context) { member, err := room.LoadOrCreateMember(user.ID) if err != nil { - if errors.Is(err, db.ErrNotFound("")) { + if errors.Is(err, db.ErrNotFound(db.ErrRoomMemberNotFound)) { log.Warn("login room failed: room was disabled join new user") ctx.AbortWithStatusJSON( http.StatusForbidden, diff --git a/server/handlers/user.go b/server/handlers/user.go index 52980864..e079b0ba 100644 --- a/server/handlers/user.go +++ b/server/handlers/user.go @@ -61,7 +61,7 @@ func LoginUser(ctx *gin.Context) { if err != nil { log.Errorf("failed to load user: %v", err) - if errors.Is(err, db.ErrNotFound("user")) { + if errors.Is(err, db.ErrNotFound(db.ErrUserNotFound)) { ctx.AbortWithStatusJSON(http.StatusNotFound, model.NewApiErrorResp(err)) return } diff --git a/server/handlers/vendors/vendorAlist/alist.go b/server/handlers/vendors/vendorAlist/alist.go index 629b83ad..1d990e5a 100644 --- a/server/handlers/vendors/vendorAlist/alist.go +++ b/server/handlers/vendors/vendorAlist/alist.go @@ -65,7 +65,7 @@ func (s *alistVendorService) ListDynamicMovie(ctx context.Context, reqUser *op.U truePath = newPath aucd, err := user.AlistCache().LoadOrStore(ctx, serverID) if err != nil { - if errors.Is(err, db.ErrNotFound("vendor")) { + if errors.Is(err, db.ErrNotFound(db.ErrVendorNotFound)) { return nil, errors.New("alist server not found") } return nil, err diff --git a/server/handlers/vendors/vendorAlist/list.go b/server/handlers/vendors/vendorAlist/list.go index ea2dd8de..0f32868c 100644 --- a/server/handlers/vendors/vendorAlist/list.go +++ b/server/handlers/vendors/vendorAlist/list.go @@ -72,7 +72,7 @@ func List(ctx *gin.Context) { ev, err := db.GetAlistVendors(user.ID, append(socpes, db.Paginate(page, size))...) if err != nil { - if errors.Is(err, db.ErrNotFound("vendor")) { + if errors.Is(err, db.ErrNotFound(db.ErrVendorNotFound)) { ctx.JSON(http.StatusBadRequest, model.NewApiErrorStringResp("alist server not found")) return } @@ -125,7 +125,7 @@ AlistFSListResp: aucd, err := user.AlistCache().LoadOrStore(ctx, serverID) if err != nil { - if errors.Is(err, db.ErrNotFound("vendor")) { + if errors.Is(err, db.ErrNotFound(db.ErrVendorNotFound)) { ctx.JSON(http.StatusBadRequest, model.NewApiErrorStringResp("alist server not found")) return } diff --git a/server/handlers/vendors/vendorAlist/me.go b/server/handlers/vendors/vendorAlist/me.go index 9605ea28..5e844b69 100644 --- a/server/handlers/vendors/vendorAlist/me.go +++ b/server/handlers/vendors/vendorAlist/me.go @@ -26,7 +26,7 @@ func Me(ctx *gin.Context) { aucd, err := user.AlistCache().LoadOrStore(ctx, serverID) if err != nil { - if errors.Is(err, db.ErrNotFound("vendor")) { + if errors.Is(err, db.ErrNotFound(db.ErrVendorNotFound)) { ctx.JSON(http.StatusBadRequest, model.NewApiErrorStringResp("alist server not found")) return } @@ -59,7 +59,7 @@ func Binds(ctx *gin.Context) { ev, err := db.GetAlistVendors(user.ID) if err != nil { - if errors.Is(err, db.ErrNotFound("vendor")) { + if errors.Is(err, db.ErrNotFound(db.ErrVendorNotFound)) { ctx.JSON(http.StatusOK, model.NewApiDataResp(&AlistMeResp{ IsLogin: false, })) diff --git a/server/handlers/vendors/vendorBilibili/me.go b/server/handlers/vendors/vendorBilibili/me.go index 04a2b9f6..5f6fd5f0 100644 --- a/server/handlers/vendors/vendorBilibili/me.go +++ b/server/handlers/vendors/vendorBilibili/me.go @@ -20,7 +20,7 @@ func Me(ctx *gin.Context) { bucd, err := user.BilibiliCache().Get(ctx) if err != nil { - if errors.Is(err, db.ErrNotFound("vendor")) { + if errors.Is(err, db.ErrNotFound(db.ErrVendorNotFound)) { ctx.JSON(http.StatusOK, model.NewApiDataResp(&BilibiliMeResp{ IsLogin: false, })) diff --git a/server/handlers/vendors/vendorBilibili/parse.go b/server/handlers/vendors/vendorBilibili/parse.go index 644a8228..39793dfc 100644 --- a/server/handlers/vendors/vendorBilibili/parse.go +++ b/server/handlers/vendors/vendorBilibili/parse.go @@ -54,7 +54,7 @@ func Parse(ctx *gin.Context) { var cookies []*http.Cookie bucd, err := user.BilibiliCache().Get(ctx) if err != nil { - if !errors.Is(err, db.ErrNotFound("vendor")) { + if !errors.Is(err, db.ErrNotFound(db.ErrVendorNotFound)) { ctx.AbortWithStatusJSON(http.StatusInternalServerError, model.NewApiErrorResp(err)) return } diff --git a/server/handlers/vendors/vendorEmby/emby.go b/server/handlers/vendors/vendorEmby/emby.go index c737567a..3168908c 100644 --- a/server/handlers/vendors/vendorEmby/emby.go +++ b/server/handlers/vendors/vendorEmby/emby.go @@ -60,7 +60,7 @@ func (s *embyVendorService) ListDynamicMovie(ctx context.Context, reqUser *op.Us } aucd, err := user.EmbyCache().LoadOrStore(ctx, serverID) if err != nil { - if errors.Is(err, db.ErrNotFound("vendor")) { + if errors.Is(err, db.ErrNotFound(db.ErrVendorNotFound)) { return nil, errors.New("emby server not found") } return nil, err diff --git a/server/handlers/vendors/vendorEmby/list.go b/server/handlers/vendors/vendorEmby/list.go index c80441be..5f113d1b 100644 --- a/server/handlers/vendors/vendorEmby/list.go +++ b/server/handlers/vendors/vendorEmby/list.go @@ -73,7 +73,7 @@ func List(ctx *gin.Context) { ev, err := db.GetEmbyVendors(user.ID, append(socpes, db.Paginate(page, size))...) if err != nil { - if errors.Is(err, db.ErrNotFound("vendor")) { + if errors.Is(err, db.ErrNotFound(db.ErrVendorNotFound)) { ctx.JSON(http.StatusBadRequest, model.NewApiErrorStringResp("emby server not found")) return } @@ -123,7 +123,7 @@ EmbyFSListResp: aucd, err := user.EmbyCache().LoadOrStore(ctx, serverID) if err != nil { - if errors.Is(err, db.ErrNotFound("vendor")) { + if errors.Is(err, db.ErrNotFound(db.ErrVendorNotFound)) { ctx.JSON(http.StatusBadRequest, model.NewApiErrorStringResp("emby server not found")) return } diff --git a/server/handlers/vendors/vendorEmby/me.go b/server/handlers/vendors/vendorEmby/me.go index 9ec2fc8b..9f041dcd 100644 --- a/server/handlers/vendors/vendorEmby/me.go +++ b/server/handlers/vendors/vendorEmby/me.go @@ -26,7 +26,7 @@ func Me(ctx *gin.Context) { eucd, err := user.EmbyCache().LoadOrStore(ctx, serverID) if err != nil { - if errors.Is(err, db.ErrNotFound("vendor")) { + if errors.Is(err, db.ErrNotFound(db.ErrVendorNotFound)) { ctx.JSON(http.StatusBadRequest, model.NewApiErrorStringResp("emby server not found")) return } @@ -59,7 +59,7 @@ func Binds(ctx *gin.Context) { ev, err := db.GetEmbyVendors(user.ID) if err != nil { - if errors.Is(err, db.ErrNotFound("vendor")) { + if errors.Is(err, db.ErrNotFound(db.ErrVendorNotFound)) { ctx.JSON(http.StatusOK, model.NewApiDataResp(&EmbyMeResp{ IsLogin: false, }))