main pico / pkg / db / postgres / tuns.go
Antonio Mika  ·  2026-10-10
 1package postgres
 2
 3import (
 4	"github.com/picosh/pico/pkg/db"
 5)
 6
 7func (me *PsqlDB) InsertTunsEventLog(log *db.TunsEventLog) error {
 8	_, err := me.Db.Exec(
 9		`INSERT INTO tuns_event_logs
10			(user_id, server_id, remote_addr, event_type, tunnel_type, connection_type, tunnel_id)
11		VALUES
12			($1, $2, $3, $4, $5, $6, $7)`,
13		log.UserId, log.ServerID, log.RemoteAddr, log.EventType, log.TunnelType,
14		log.ConnectionType, log.TunnelID,
15	)
16	return err
17}
18
19func (me *PsqlDB) FindTunsEventLogsByAddr(userID, addr string) ([]*db.TunsEventLog, error) {
20	var logs []*db.TunsEventLog
21	err := me.Db.Select(&logs,
22		`SELECT * FROM tuns_event_logs WHERE user_id=$1 AND tunnel_id=$2 ORDER BY created_at DESC`, userID, addr)
23	if err != nil {
24		return nil, err
25	}
26	return logs, nil
27}
28
29func (me *PsqlDB) FindTunsEventLogs(userID string) ([]*db.TunsEventLog, error) {
30	var logs []*db.TunsEventLog
31	err := me.Db.Select(&logs,
32		`SELECT * FROM tuns_event_logs WHERE user_id=$1 ORDER BY created_at DESC`, userID)
33	if err != nil {
34		return nil, err
35	}
36	return logs, nil
37}