107 lines
2.9 KiB
Go
107 lines
2.9 KiB
Go
package postgres
|
|
|
|
//import . "openreplay/backend/pkg/messages"
|
|
import . "openreplay/backend/pkg/db/types"
|
|
|
|
//import "log"
|
|
|
|
func (conn *Conn) GetSession(sessionID uint64) (*Session, error) {
|
|
s := &Session{SessionID: sessionID}
|
|
var revID, userOSVersion *string
|
|
if err := conn.queryRow(`
|
|
SELECT platform,
|
|
duration, project_id, start_ts,
|
|
user_uuid, user_os, user_os_version,
|
|
user_device, user_device_type, user_country,
|
|
rev_id, tracker_version,
|
|
user_id, user_anonymous_id,
|
|
metadata_1, metadata_2, metadata_3, metadata_4, metadata_5,
|
|
metadata_6, metadata_7, metadata_8, metadata_9, metadata_10
|
|
FROM sessions
|
|
WHERE session_id=$1
|
|
`,
|
|
sessionID,
|
|
).Scan(&s.Platform,
|
|
&s.Duration, &s.ProjectID, &s.Timestamp,
|
|
&s.UserUUID, &s.UserOS, &userOSVersion,
|
|
&s.UserDevice, &s.UserDeviceType, &s.UserCountry,
|
|
&revID, &s.TrackerVersion,
|
|
&s.UserID, &s.UserAnonymousID,
|
|
&s.Metadata1, &s.Metadata2, &s.Metadata3, &s.Metadata4, &s.Metadata5,
|
|
&s.Metadata6, &s.Metadata7, &s.Metadata8, &s.Metadata9, &s.Metadata10); err != nil {
|
|
return nil, err
|
|
}
|
|
if userOSVersion != nil { // TODO: choose format, make f
|
|
s.UserOSVersion = *userOSVersion
|
|
}
|
|
if revID != nil {
|
|
s.RevID = *revID
|
|
}
|
|
return s, nil
|
|
}
|
|
|
|
// func (conn *Conn) GetSessionClickEvents(sessionID uint64) (list []IOSClickEvent, err error) {
|
|
// rows, err := conn.query(`
|
|
// SELECT
|
|
// timestamp, seq_index, label
|
|
// FROM events_ios.clicks
|
|
// WHERE session_id=$1
|
|
// `, sessionID)
|
|
// if err != nil {
|
|
// return err
|
|
// }
|
|
// defer rows.Close()
|
|
// for rows.Next() {
|
|
// e := new(IOSClickEvent)
|
|
// if err = rows.Scan(&e.Timestamp, &e.Index, &e.Label); err != nil {
|
|
// log.Printf("Error while scanning click events: %v", err)
|
|
// } else {
|
|
// list = append(list, e)
|
|
// }
|
|
// }
|
|
// return list
|
|
// }
|
|
|
|
// func (conn *Conn) GetSessionInputEvents(sessionID uint64) (list []IOSInputEvent, err error) {
|
|
// rows, err := conn.query(`
|
|
// SELECT
|
|
// timestamp, seq_index, label, value
|
|
// FROM events_ios.inputs
|
|
// WHERE session_id=$1
|
|
// `, sessionID)
|
|
// if err != nil {
|
|
// return err
|
|
// }
|
|
// defer rows.Close()
|
|
// for rows.Next() {
|
|
// e := new(IOSInputEvent)
|
|
// if err = rows.Scan(&e.Timestamp, &e.Index, &e.Label, &e.Value); err != nil {
|
|
// log.Printf("Error while scanning click events: %v", err)
|
|
// } else {
|
|
// list = append(list, e)
|
|
// }
|
|
// }
|
|
// return list
|
|
// }
|
|
|
|
// func (conn *Conn) GetSessionCrashEvents(sessionID uint64) (list []IOSCrash, err error) {
|
|
// rows, err := conn.query(`
|
|
// SELECT
|
|
// timestamp, seq_index
|
|
// FROM events_ios.crashes
|
|
// WHERE session_id=$1
|
|
// `, sessionID)
|
|
// if err != nil {
|
|
// return err
|
|
// }
|
|
// defer rows.Close()
|
|
// for rows.Next() {
|
|
// e := new(IOSCrash)
|
|
// if err = rows.Scan(&e.Timestamp, &e.Index, &e.Label, &e.Value); err != nil {
|
|
// log.Printf("Error while scanning click events: %v", err)
|
|
// } else {
|
|
// list = append(list, e)
|
|
// }
|
|
// }
|
|
// return list
|
|
// }
|