friends/database/3ds/update_user_last_online_time.go
2024-05-15 23:02:28 +01:00

40 lines
794 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, lastOnline.Value())
if err != nil {
return err
}
return nil
}