fix(database): switch to PID type for input and clean up redundant struct declarations

This commit is contained in:
Jemma Poffinbarger
2026-05-08 22:11:10 -05:00
parent a95ecba31a
commit 306399a5df
3 changed files with 39 additions and 58 deletions

View File

@@ -9,7 +9,7 @@ import (
)
// GetMii returns the Mii of a specified user
func GetMii(pid uint32) (friends_3ds_types.FriendMii, error) {
func GetMii(pid types.PID) (friends_3ds_types.FriendMii, error) {
friendMii := friends_3ds_types.NewFriendMii()
rows, err := database.Manager.QueryRow(`
@@ -33,14 +33,11 @@ func GetMii(pid uint32) (friends_3ds_types.FriendMii, error) {
}
}
mii := friends_3ds_types.NewMii()
mii.Name = types.NewString(miiName)
mii.ProfanityFlag = types.NewBool(miiProfanity)
mii.CharacterSet = types.NewUInt8(miiCharacterSet)
mii.MiiData = types.NewBuffer(miiData)
friendMii.PID = types.NewPID(uint64(pid))
friendMii.Mii = mii
friendMii.Mii.Name = types.NewString(miiName)
friendMii.Mii.ProfanityFlag = types.NewBool(miiProfanity)
friendMii.Mii.CharacterSet = types.NewUInt8(miiCharacterSet)
friendMii.Mii.MiiData = types.NewBuffer(miiData)
friendMii.ModifiedAt = types.NewDateTime(changedTime)
return friendMii, nil

View File

@@ -9,8 +9,8 @@ import (
)
// GetUserData returns a data for a specific user
func GetUserData(pid uint32) (friends_3ds_types.FriendPersistentInfo, error) {
userData := friends_3ds_types.NewFriendPersistentInfo()
func GetUserData(pid types.PID) (friends_3ds_types.FriendPersistentInfo, error) {
friendPersistentInfo := friends_3ds_types.NewFriendPersistentInfo()
row, err := database.Manager.QueryRow(`
SELECT pid, region, area,
@@ -21,9 +21,9 @@ func GetUserData(pid uint32) (friends_3ds_types.FriendPersistentInfo, error) {
`, pid)
if err != nil {
if err == sql.ErrNoRows {
return userData, database.ErrPIDNotFound
return friendPersistentInfo, database.ErrPIDNotFound
} else {
return userData, err
return friendPersistentInfo, err
}
}
@@ -31,11 +31,9 @@ func GetUserData(pid uint32) (friends_3ds_types.FriendPersistentInfo, error) {
err = row.Scan(&pid, &relationshipType)
if err != nil {
return userData, err
return friendPersistentInfo, err
}
gameKey := friends_3ds_types.NewGameKey()
var region uint8
var area uint8
var language uint8
@@ -61,23 +59,21 @@ func GetUserData(pid uint32) (friends_3ds_types.FriendPersistentInfo, error) {
&miiModifiedAtTime,
)
if err != nil {
return userData, err
return friendPersistentInfo, err
}
gameKey.TitleID = types.NewUInt64(titleID)
gameKey.TitleVersion = types.NewUInt16(titleVersion)
friendPersistentInfo.PID = types.NewPID(uint64(pid))
friendPersistentInfo.Region = types.NewUInt8(region)
friendPersistentInfo.Country = types.NewUInt8(country)
friendPersistentInfo.Area = types.NewUInt8(area)
friendPersistentInfo.Language = types.NewUInt8(language)
friendPersistentInfo.Platform = types.NewUInt8(2) // * Always 3DS
friendPersistentInfo.GameKey.TitleID = types.NewUInt64(titleID)
friendPersistentInfo.GameKey.TitleVersion = types.NewUInt16(titleVersion)
friendPersistentInfo.Message = types.NewString(message)
friendPersistentInfo.MessageUpdatedAt = types.NewDateTime(msgUpdateTime)
friendPersistentInfo.MiiModifiedAt = types.NewDateTime(miiModifiedAtTime)
friendPersistentInfo.LastOnline = types.NewDateTime(lastOnlineTime)
userData.PID = types.NewPID(uint64(pid))
userData.Region = types.NewUInt8(region)
userData.Country = types.NewUInt8(country)
userData.Area = types.NewUInt8(area)
userData.Language = types.NewUInt8(language)
userData.Platform = types.NewUInt8(2) // * Always 3DS
userData.GameKey = gameKey
userData.Message = types.NewString(message)
userData.MessageUpdatedAt = types.NewDateTime(msgUpdateTime)
userData.MiiModifiedAt = types.NewDateTime(miiModifiedAtTime)
userData.LastOnline = types.NewDateTime(lastOnlineTime)
return userData, nil
return friendPersistentInfo, nil
}

View File

@@ -10,7 +10,7 @@ import (
)
// GetUserData returns a data for a specific user
func GetUserData(pid uint32) (friends_wiiu_types.FriendInfo, error) {
func GetUserData(pid types.PID) (friends_wiiu_types.FriendInfo, error) {
friendInfo := friends_wiiu_types.NewFriendInfo()
row, err := database.Manager.QueryRow(`
@@ -54,33 +54,19 @@ func GetUserData(pid uint32) (friends_wiiu_types.FriendInfo, error) {
return friendInfo, err
}
comment := friends_wiiu_types.NewComment()
comment.Unknown = types.NewUInt8(0)
comment.Contents = types.NewString(commentContents)
comment.LastChanged = types.NewDateTime(commentChanged)
mii := friends_wiiu_types.NewMiiV2()
mii.Name = types.NewString(miiName)
mii.Unknown1 = types.NewUInt8(miiUnknown1)
mii.Unknown2 = types.NewUInt8(miiUnknown2)
mii.MiiData = types.NewBuffer(miiData)
mii.Datetime = types.NewDateTime(miiDatetime)
principalBasicInfo := friends_wiiu_types.NewPrincipalBasicInfo()
principalBasicInfo.PID = types.NewPID(uint64(pid))
principalBasicInfo.NNID = types.NewString(nnid)
principalBasicInfo.Unknown = types.NewUInt8(unknown)
principalBasicInfo.Mii = mii
nnaInfo := friends_wiiu_types.NewNNAInfo()
nnaInfo.Unknown1 = types.NewUInt8(unknown1)
nnaInfo.Unknown2 = types.NewUInt8(unknown2)
nnaInfo.PrincipalBasicInfo = principalBasicInfo
friendInfo.NNAInfo = nnaInfo
friendInfo.NNAInfo.Unknown1 = types.NewUInt8(unknown1)
friendInfo.NNAInfo.Unknown2 = types.NewUInt8(unknown2)
friendInfo.NNAInfo.PrincipalBasicInfo.PID = types.NewPID(uint64(pid))
friendInfo.NNAInfo.PrincipalBasicInfo.NNID = types.NewString(nnid)
friendInfo.NNAInfo.PrincipalBasicInfo.Unknown = types.NewUInt8(unknown)
friendInfo.NNAInfo.PrincipalBasicInfo.Mii.Name = types.NewString(miiName)
friendInfo.NNAInfo.PrincipalBasicInfo.Mii.Unknown1 = types.NewUInt8(miiUnknown1)
friendInfo.NNAInfo.PrincipalBasicInfo.Mii.Unknown2 = types.NewUInt8(miiUnknown2)
friendInfo.NNAInfo.PrincipalBasicInfo.Mii.MiiData = types.NewBuffer(miiData)
friendInfo.NNAInfo.PrincipalBasicInfo.Mii.Datetime = types.NewDateTime(miiDatetime)
lastOnline := types.NewDateTime(0).Now()
connectedUser, ok := globals.ConnectedUsers.Get(pid)
connectedUser, ok := globals.ConnectedUsers.Get(uint32(pid))
if ok && connectedUser != nil {
// * Online
friendInfo.Presence = connectedUser.PresenceV2.Copy().(friends_wiiu_types.NintendoPresenceV2)
@@ -89,7 +75,9 @@ func GetUserData(pid uint32) (friends_wiiu_types.FriendInfo, error) {
lastOnline = types.NewDateTime(lastOnlineTime) // TODO - Change this
}
friendInfo.Status = comment
friendInfo.Status.Unknown = types.NewUInt8(0)
friendInfo.Status.Contents = types.NewString(commentContents)
friendInfo.Status.LastChanged = types.NewDateTime(commentChanged)
friendInfo.BecameFriend = types.NewDateTime(date)
friendInfo.LastOnline = lastOnline
friendInfo.Unknown = types.NewUInt64(0)