mirror of
https://github.com/PretendoNetwork/friends.git
synced 2024-06-01 11:37:53 -04:00
8d8a05a7e2
Now database getters do error handling aswell, and in case of any error, the NEX or GRPC method throws a proper error about it. There are still some doubts on how to handle errors when a list of data is processed, so for now skip that element on the list and continue. Also add some constant errors to do better error handling.
25 lines
783 B
Go
25 lines
783 B
Go
package database_wiiu
|
|
|
|
import (
|
|
"database/sql"
|
|
|
|
"github.com/PretendoNetwork/friends/database"
|
|
friends_wiiu_types "github.com/PretendoNetwork/nex-protocols-go/friends-wiiu/types"
|
|
)
|
|
|
|
// GetUserPrincipalPreference returns the user preferences
|
|
func GetUserPrincipalPreference(pid uint32) (*friends_wiiu_types.PrincipalPreference, error) {
|
|
preference := friends_wiiu_types.NewPrincipalPreference()
|
|
|
|
err := database.Postgres.QueryRow(`SELECT show_online, show_current_game, block_friend_requests FROM wiiu.user_data WHERE pid=$1`, pid).Scan(&preference.ShowOnlinePresence, &preference.ShowCurrentTitle, &preference.BlockFriendRequests)
|
|
if err != nil {
|
|
if err == sql.ErrNoRows {
|
|
return nil, database.ErrPIDNotFound
|
|
} else {
|
|
return nil, err
|
|
}
|
|
}
|
|
|
|
return preference, nil
|
|
}
|