Files
eko/internal/data/networks.sql.go
2024-11-23 20:27:10 +02:00

220 lines
4.7 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
// source: networks.sql
package data
import (
"context"
"github.com/kyren223/eko/pkg/snowflake"
)
const createNetwork = `-- name: CreateNetwork :one
INSERT INTO networks (
id, owner_id, name, is_public,
icon, bg_hex_color, fg_hex_color
) VALUES (
?, ?, ?, ?, ?, ?, ?
)
RETURNING id, owner_id, name, icon, bg_hex_color, fg_hex_color, is_public
`
type CreateNetworkParams struct {
ID snowflake.ID
OwnerID snowflake.ID
Name string
IsPublic bool
Icon string
BgHexColor *string
FgHexColor string
}
func (q *Queries) CreateNetwork(ctx context.Context, arg CreateNetworkParams) (Network, error) {
row := q.db.QueryRowContext(ctx, createNetwork,
arg.ID,
arg.OwnerID,
arg.Name,
arg.IsPublic,
arg.Icon,
arg.BgHexColor,
arg.FgHexColor,
)
var i Network
err := row.Scan(
&i.ID,
&i.OwnerID,
&i.Name,
&i.Icon,
&i.BgHexColor,
&i.FgHexColor,
&i.IsPublic,
)
return i, err
}
const deleteNetwork = `-- name: DeleteNetwork :exec
DELETE FROM networks WHERE id = ?
`
func (q *Queries) DeleteNetwork(ctx context.Context, id snowflake.ID) error {
_, err := q.db.ExecContext(ctx, deleteNetwork, id)
return err
}
const getBannedUsersInNetwork = `-- name: GetBannedUsersInNetwork :many
SELECT
users.id, users.name, users.public_key, users.description, users.is_public_dm, users.is_deleted,
network_banned_users.banned_at,
network_banned_users.reason
FROM network_banned_users
JOIN users ON users.id = network_banned_users.banned_user_id
WHERE network_banned_users.network_id = ?
`
type GetBannedUsersInNetworkRow struct {
User User
BannedAt string
Reason *string
}
func (q *Queries) GetBannedUsersInNetwork(ctx context.Context, networkID snowflake.ID) ([]GetBannedUsersInNetworkRow, error) {
rows, err := q.db.QueryContext(ctx, getBannedUsersInNetwork, networkID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []GetBannedUsersInNetworkRow
for rows.Next() {
var i GetBannedUsersInNetworkRow
if err := rows.Scan(
&i.User.ID,
&i.User.Name,
&i.User.PublicKey,
&i.User.Description,
&i.User.IsPublicDM,
&i.User.IsDeleted,
&i.BannedAt,
&i.Reason,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const getNetworkById = `-- name: GetNetworkById :one
SELECT id, owner_id, name, icon, bg_hex_color, fg_hex_color, is_public FROM networks
WHERE id = ?
`
func (q *Queries) GetNetworkById(ctx context.Context, id snowflake.ID) (Network, error) {
row := q.db.QueryRowContext(ctx, getNetworkById, id)
var i Network
err := row.Scan(
&i.ID,
&i.OwnerID,
&i.Name,
&i.Icon,
&i.BgHexColor,
&i.FgHexColor,
&i.IsPublic,
)
return i, err
}
const getPublicNetworks = `-- name: GetPublicNetworks :many
SELECT id, owner_id, name, icon, bg_hex_color, fg_hex_color, is_public FROM networks
WHERE is_public = true
`
func (q *Queries) GetPublicNetworks(ctx context.Context) ([]Network, error) {
rows, err := q.db.QueryContext(ctx, getPublicNetworks)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Network
for rows.Next() {
var i Network
if err := rows.Scan(
&i.ID,
&i.OwnerID,
&i.Name,
&i.Icon,
&i.BgHexColor,
&i.FgHexColor,
&i.IsPublic,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const getUsersInNetwork = `-- name: GetUsersInNetwork :many
SELECT
users.id, users.name, users.public_key, users.description, users.is_public_dm, users.is_deleted,
users_networks.joined_at,
users_networks.is_admin,
users_networks.is_muted
FROM users_networks
JOIN users ON users.id = users_networks.user_id
WHERE users_networks.network_id = ?
`
type GetUsersInNetworkRow struct {
User User
JoinedAt string
IsAdmin bool
IsMuted bool
}
func (q *Queries) GetUsersInNetwork(ctx context.Context, networkID snowflake.ID) ([]GetUsersInNetworkRow, error) {
rows, err := q.db.QueryContext(ctx, getUsersInNetwork, networkID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []GetUsersInNetworkRow
for rows.Next() {
var i GetUsersInNetworkRow
if err := rows.Scan(
&i.User.ID,
&i.User.Name,
&i.User.PublicKey,
&i.User.Description,
&i.User.IsPublicDM,
&i.User.IsDeleted,
&i.JoinedAt,
&i.IsAdmin,
&i.IsMuted,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}