friends/database/3ds/update_user_last_online_time.go
2025-02-15 23:31:32 -05:00

39 lines
793 B
Go

package database_3ds
import (
"database/sql"
"github.com/PretendoNetwork/friends/database"
"github.com/PretendoNetwork/nex-go/v2/types"
)
// UpdateUserLastOnlineTime updates a user's last online time
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 {
return err
}
err = row.Scan(&showOnline)
if err != nil && err != sql.ErrNoRows {
return err
}
if !showOnline {
return nil
}
_, err = database.Manager.Exec(`
INSERT INTO "3ds".user_data (pid, last_online)
VALUES ($1, $2)
ON CONFLICT (pid)
DO UPDATE SET
last_online = $2`, pid, uint64(lastOnline))
if err != nil {
return err
}
return nil
}