mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-07 06:53:09 -06:00
* Multiroom feature * Run multiroom visibility expiration conditionally Remove SQLite and go 1.18 for tests matrixes * Remove sqlite from unit tests * Fix linter errors * Do not build with go1.18 * Do not run upgrade tests * Fix dendrite workflow * Add forgotten content and timestamp fields to multiroom in sync response * Fix syncapi multiroom unit tests * Review adjustments in queries and naming * Remove no longer maintained linters from golangci-lint configuration * Document sqlc code generation
144 lines
3.7 KiB
Go
144 lines
3.7 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.15.0
|
|
// source: queries.sql
|
|
|
|
package mrd
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
const deleteMultiRoomVisibility = `-- name: DeleteMultiRoomVisibility :exec
|
|
DELETE FROM syncapi_multiroom_visibility
|
|
WHERE user_id = $1
|
|
AND type = $2
|
|
AND room_id = $3
|
|
`
|
|
|
|
type DeleteMultiRoomVisibilityParams struct {
|
|
UserID string `json:"user_id"`
|
|
Type string `json:"type"`
|
|
RoomID string `json:"room_id"`
|
|
}
|
|
|
|
func (q *Queries) DeleteMultiRoomVisibility(ctx context.Context, arg DeleteMultiRoomVisibilityParams) error {
|
|
_, err := q.exec(ctx, q.deleteMultiRoomVisibilityStmt, deleteMultiRoomVisibility, arg.UserID, arg.Type, arg.RoomID)
|
|
return err
|
|
}
|
|
|
|
const deleteMultiRoomVisibilityByExpireTS = `-- name: DeleteMultiRoomVisibilityByExpireTS :execrows
|
|
DELETE FROM syncapi_multiroom_visibility
|
|
WHERE expire_ts <= $1
|
|
`
|
|
|
|
func (q *Queries) DeleteMultiRoomVisibilityByExpireTS(ctx context.Context, expireTs int64) (int64, error) {
|
|
result, err := q.exec(ctx, q.deleteMultiRoomVisibilityByExpireTSStmt, deleteMultiRoomVisibilityByExpireTS, expireTs)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
return result.RowsAffected()
|
|
}
|
|
|
|
const insertMultiRoomData = `-- name: InsertMultiRoomData :one
|
|
INSERT INTO syncapi_multiroom_data (
|
|
user_id,
|
|
type,
|
|
data
|
|
) VALUES (
|
|
$1,
|
|
$2,
|
|
$3
|
|
) ON CONFLICT (user_id, type) DO UPDATE SET id = nextval('syncapi_multiroom_id'), data = $3, ts = current_timestamp
|
|
RETURNING id
|
|
`
|
|
|
|
type InsertMultiRoomDataParams struct {
|
|
UserID string `json:"user_id"`
|
|
Type string `json:"type"`
|
|
Data []byte `json:"data"`
|
|
}
|
|
|
|
func (q *Queries) InsertMultiRoomData(ctx context.Context, arg InsertMultiRoomDataParams) (int64, error) {
|
|
row := q.queryRow(ctx, q.insertMultiRoomDataStmt, insertMultiRoomData, arg.UserID, arg.Type, arg.Data)
|
|
var id int64
|
|
err := row.Scan(&id)
|
|
return id, err
|
|
}
|
|
|
|
const insertMultiRoomVisibility = `-- name: InsertMultiRoomVisibility :exec
|
|
INSERT INTO syncapi_multiroom_visibility (
|
|
user_id,
|
|
type,
|
|
room_id,
|
|
expire_ts
|
|
) VALUES (
|
|
$1,
|
|
$2,
|
|
$3,
|
|
$4
|
|
) ON CONFLICT (user_id, type, room_id) DO UPDATE SET expire_ts = $4
|
|
`
|
|
|
|
type InsertMultiRoomVisibilityParams struct {
|
|
UserID string `json:"user_id"`
|
|
Type string `json:"type"`
|
|
RoomID string `json:"room_id"`
|
|
ExpireTs int64 `json:"expire_ts"`
|
|
}
|
|
|
|
func (q *Queries) InsertMultiRoomVisibility(ctx context.Context, arg InsertMultiRoomVisibilityParams) error {
|
|
_, err := q.exec(ctx, q.insertMultiRoomVisibilityStmt, insertMultiRoomVisibility,
|
|
arg.UserID,
|
|
arg.Type,
|
|
arg.RoomID,
|
|
arg.ExpireTs,
|
|
)
|
|
return err
|
|
}
|
|
|
|
const selectMaxId = `-- name: SelectMaxId :one
|
|
SELECT MAX(id) FROM syncapi_multiroom_data
|
|
`
|
|
|
|
func (q *Queries) SelectMaxId(ctx context.Context) (interface{}, error) {
|
|
row := q.queryRow(ctx, q.selectMaxIdStmt, selectMaxId)
|
|
var max interface{}
|
|
err := row.Scan(&max)
|
|
return max, err
|
|
}
|
|
|
|
const selectMultiRoomVisibilityRooms = `-- name: SelectMultiRoomVisibilityRooms :many
|
|
SELECT room_id FROM syncapi_multiroom_visibility
|
|
WHERE user_id = $1
|
|
AND expire_ts > $2
|
|
`
|
|
|
|
type SelectMultiRoomVisibilityRoomsParams struct {
|
|
UserID string `json:"user_id"`
|
|
ExpireTs int64 `json:"expire_ts"`
|
|
}
|
|
|
|
func (q *Queries) SelectMultiRoomVisibilityRooms(ctx context.Context, arg SelectMultiRoomVisibilityRoomsParams) ([]string, error) {
|
|
rows, err := q.query(ctx, q.selectMultiRoomVisibilityRoomsStmt, selectMultiRoomVisibilityRooms, arg.UserID, arg.ExpireTs)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []string
|
|
for rows.Next() {
|
|
var room_id string
|
|
if err := rows.Scan(&room_id); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, room_id)
|
|
}
|
|
if err := rows.Close(); err != nil {
|
|
return nil, err
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|