Merge pull request #17 from DaniElectra/norows-fix

This commit is contained in:
Jonathan Barrow 2024-05-15 18:42:29 -04:00 committed by GitHub
commit c1e06be4d5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 49 additions and 49 deletions

View File

@ -12,12 +12,12 @@ func UpdateUserLastOnlineTime(pid uint32, lastOnline *types.DateTime) error {
var showOnline bool
row, err := database.Manager.QueryRow(`SELECT show_online FROM "3ds".user_data WHERE pid=$1`, pid)
if err != nil && err != sql.ErrNoRows {
if err != nil {
return err
}
err = row.Scan(&showOnline)
if err != nil {
if err != nil && err != sql.ErrNoRows {
return err
}

View File

@ -15,6 +15,11 @@ func AcceptFriendRequestAndReturnFriendInfo(friendRequestID uint64) (*friends_wi
var recipientPID uint32
row, err := database.Manager.QueryRow(`SELECT sender_pid, recipient_pid FROM wiiu.friend_requests WHERE id=$1`, friendRequestID)
if err != nil {
return nil, err
}
err = row.Scan(&senderPID, &recipientPID)
if err != nil {
if err == sql.ErrNoRows {
return nil, database.ErrFriendRequestNotFound
@ -23,11 +28,6 @@ func AcceptFriendRequestAndReturnFriendInfo(friendRequestID uint64) (*friends_wi
}
}
err = row.Scan(&senderPID, &recipientPID)
if err != nil {
return nil, err
}
acceptedTime := types.NewDateTime(0).Now()
// * Friendships are two-way relationships, not just one link between 2 entities
@ -73,6 +73,11 @@ func AcceptFriendRequestAndReturnFriendInfo(friendRequestID uint64) (*friends_wi
// * Offline
var lastOnlineTime uint64
row, err = database.Manager.QueryRow(`SELECT last_online FROM wiiu.user_data WHERE pid=$1`, senderPID)
if err != nil {
return nil, err
}
err = row.Scan(&lastOnlineTime)
if err != nil {
if err == sql.ErrNoRows {
return nil, database.ErrPIDNotFound
@ -81,11 +86,6 @@ func AcceptFriendRequestAndReturnFriendInfo(friendRequestID uint64) (*friends_wi
}
}
err = row.Scan(&senderPID, &recipientPID)
if err != nil {
return nil, err
}
lastOnline = types.NewDateTime(lastOnlineTime) // TODO - Change this
}

View File

@ -11,6 +11,11 @@ func DeleteFriendRequestAndReturnFriendPID(friendRequestID uint64) (uint32, erro
var recipientPID uint32
row, err := database.Manager.QueryRow(`SELECT recipient_pid FROM wiiu.friend_requests WHERE id=$1`, friendRequestID)
if err != nil {
return 0, err
}
err = row.Scan(&recipientPID)
if err != nil {
if err == sql.ErrNoRows {
return 0, database.ErrFriendRequestNotFound
@ -19,11 +24,6 @@ func DeleteFriendRequestAndReturnFriendPID(friendRequestID uint64) (uint32, erro
}
}
err = row.Scan(&recipientPID)
if err != nil {
return 0, err
}
result, err := database.Manager.Exec(`
DELETE FROM wiiu.friend_requests WHERE id=$1`, friendRequestID)
if err != nil {

View File

@ -12,6 +12,11 @@ func GetPIDsByFriendRequestID(friendRequestID uint64) (uint32, uint32, error) {
var recipientPID uint32
row, err := database.Manager.QueryRow(`SELECT sender_pid, recipient_pid FROM wiiu.friend_requests WHERE id=$1`, friendRequestID)
if err != nil {
return 0, 0, err
}
err = row.Scan(&senderPID, &recipientPID)
if err != nil {
if err == sql.ErrNoRows {
return 0, 0, database.ErrFriendRequestNotFound
@ -20,10 +25,5 @@ func GetPIDsByFriendRequestID(friendRequestID uint64) (uint32, uint32, error) {
}
}
err = row.Scan(&senderPID, &recipientPID)
if err != nil {
return 0, 0, err
}
return senderPID, recipientPID, nil
}

View File

@ -17,6 +17,11 @@ func GetUserComment(pid uint32) (*friends_wiiu_types.Comment, error) {
var changed uint64 = 0
row, err := database.Manager.QueryRow(`SELECT comment, comment_changed FROM wiiu.user_data WHERE pid=$1`, pid)
if err != nil {
return nil, err
}
err = row.Scan(&contents, &changed)
if err != nil {
if err == sql.ErrNoRows {
return nil, database.ErrPIDNotFound
@ -25,11 +30,6 @@ func GetUserComment(pid uint32) (*friends_wiiu_types.Comment, error) {
}
}
err = row.Scan(&contents, &changed)
if err != nil {
return nil, err
}
comment.Contents = types.NewString(contents)
comment.LastChanged = types.NewDateTime(changed)

View File

@ -19,6 +19,11 @@ func GetUserMii(pid uint32) (*friends_wiiu_types.MiiV2, error) {
var datetime uint64
row, err := database.Manager.QueryRow(`SELECT name, unknown1, unknown2, data, unknown_datetime FROM wiiu.mii WHERE pid=$1`, pid)
if err != nil {
return nil, err
}
err = row.Scan(&name, &unknown1, &unknown2, &data, &datetime)
if err != nil {
if err == sql.ErrNoRows {
return nil, database.ErrPIDNotFound
@ -27,11 +32,6 @@ func GetUserMii(pid uint32) (*friends_wiiu_types.MiiV2, error) {
}
}
err = row.Scan(&name, &unknown1, &unknown2, &data, &datetime)
if err != nil {
return nil, err
}
mii.Name = types.NewString(name)
mii.Unknown1 = types.NewPrimitiveU8(unknown1)
mii.Unknown2 = types.NewPrimitiveU8(unknown2)

View File

@ -16,6 +16,11 @@ func GetUserNetworkAccountInfo(pid uint32) (*friends_wiiu_types.NNAInfo, error)
var unknown2 uint8
row, err := database.Manager.QueryRow(`SELECT unknown1, unknown2 FROM wiiu.network_account_info WHERE pid=$1`, pid)
if err != nil {
return nil, err
}
err = row.Scan(&unknown1, &unknown2)
if err != nil {
if err == sql.ErrNoRows {
return nil, database.ErrPIDNotFound
@ -24,11 +29,6 @@ func GetUserNetworkAccountInfo(pid uint32) (*friends_wiiu_types.NNAInfo, error)
}
}
err = row.Scan(&unknown1, &unknown2)
if err != nil {
return nil, err
}
nnaInfo.Unknown1 = types.NewPrimitiveU8(unknown1)
nnaInfo.Unknown2 = types.NewPrimitiveU8(unknown2)
nnaInfo.PrincipalBasicInfo, err = GetUserPrincipalBasicInfo(pid)

View File

@ -16,6 +16,11 @@ func GetUserPrincipalBasicInfo(pid uint32) (*friends_wiiu_types.PrincipalBasicIn
var unknown uint8
row, err := database.Manager.QueryRow(`SELECT username, unknown FROM wiiu.principal_basic_info WHERE pid=$1`, pid)
if err != nil {
return nil, err
}
err = row.Scan(&nnid, &unknown)
if err != nil {
if err == sql.ErrNoRows {
return nil, database.ErrPIDNotFound
@ -24,11 +29,6 @@ func GetUserPrincipalBasicInfo(pid uint32) (*friends_wiiu_types.PrincipalBasicIn
}
}
err = row.Scan(&nnid, &unknown)
if err != nil {
return nil, err
}
principalBasicInfo.PID = types.NewPID(uint64(pid))
principalBasicInfo.NNID = types.NewString(nnid)
principalBasicInfo.Unknown = types.NewPrimitiveU8(unknown)

View File

@ -17,6 +17,11 @@ func GetUserPrincipalPreference(pid uint32) (*friends_wiiu_types.PrincipalPrefer
var blockFriendRequests bool
row, err := database.Manager.QueryRow(`SELECT show_online, show_current_game, block_friend_requests FROM wiiu.user_data WHERE pid=$1`, pid)
if err != nil {
return nil, err
}
err = row.Scan(&showOnlinePresence, &showCurrentTitle, &blockFriendRequests)
if err != nil {
if err == sql.ErrNoRows {
return nil, database.ErrPIDNotFound
@ -25,11 +30,6 @@ func GetUserPrincipalPreference(pid uint32) (*friends_wiiu_types.PrincipalPrefer
}
}
err = row.Scan(&showOnlinePresence, &showCurrentTitle, &blockFriendRequests)
if err != nil {
return nil, err
}
preference.ShowOnlinePresence = types.NewPrimitiveBool(showOnlinePresence)
preference.ShowCurrentTitle = types.NewPrimitiveBool(showCurrentTitle)
preference.BlockFriendRequests = types.NewPrimitiveBool(blockFriendRequests)

View File

@ -17,12 +17,12 @@ func SaveFriendRequest(senderPID uint32, recipientPID uint32, sentTime uint64, e
// Make sure we don't already have that friend request! If we do, give them the one we already have.
row, err := database.Manager.QueryRow(`SELECT id FROM wiiu.friend_requests WHERE sender_pid=$1 AND recipient_pid=$2`, senderPID, recipientPID)
if err != nil && err != sql.ErrNoRows {
if err != nil {
return 0, err
}
err = row.Scan(&id)
if err != nil {
if err != nil && err != sql.ErrNoRows {
return 0, err
} else if id != 0 {
// If they aren't blocked, we want to unset the denied status on the previous request we have so that it appears again.