142 lines
3.0 KiB
Go
142 lines
3.0 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.30.0
|
|
// source: space.sql
|
|
|
|
package repo
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/jackc/pgx/v5/pgtype"
|
|
)
|
|
|
|
const deleteSpace = `-- name: DeleteSpace :exec
|
|
DELETE FROM space WHERE id = $1
|
|
`
|
|
|
|
// 删除分享空间
|
|
func (q *Queries) DeleteSpace(ctx context.Context, id int64) error {
|
|
_, err := q.db.Exec(ctx, deleteSpace, id)
|
|
return err
|
|
}
|
|
|
|
const getSpaceById = `-- name: GetSpaceById :one
|
|
SELECT id, name, invite_code, create_time, update_time FROM space WHERE id = $1
|
|
`
|
|
|
|
// 根据id获取分享空间信息
|
|
func (q *Queries) GetSpaceById(ctx context.Context, id int64) (Space, error) {
|
|
row := q.db.QueryRow(ctx, getSpaceById, id)
|
|
var i Space
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.InviteCode,
|
|
&i.CreateTime,
|
|
&i.UpdateTime,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getSpaceByInviteCode = `-- name: GetSpaceByInviteCode :one
|
|
SELECT id, name, invite_code, create_time, update_time FROM space WHERE invite_code = $1
|
|
`
|
|
|
|
// 根据验证码获取空间
|
|
func (q *Queries) GetSpaceByInviteCode(ctx context.Context, inviteCode string) (Space, error) {
|
|
row := q.db.QueryRow(ctx, getSpaceByInviteCode, inviteCode)
|
|
var i Space
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.InviteCode,
|
|
&i.CreateTime,
|
|
&i.UpdateTime,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getSpaceByUserId = `-- name: GetSpaceByUserId :one
|
|
SELECT s.id, s.name, s.invite_code, s.create_time, s.update_time
|
|
FROM space s
|
|
JOIN space_user m
|
|
ON s.id = m.space_id
|
|
WHERE m.user_id = $1
|
|
`
|
|
|
|
// 查询用户所在的空间信息
|
|
func (q *Queries) GetSpaceByUserId(ctx context.Context, userID int64) (Space, error) {
|
|
row := q.db.QueryRow(ctx, getSpaceByUserId, userID)
|
|
var i Space
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Name,
|
|
&i.InviteCode,
|
|
&i.CreateTime,
|
|
&i.UpdateTime,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getSpaceUsers = `-- name: GetSpaceUsers :many
|
|
SELECT
|
|
u.id as user_id,
|
|
u.username,
|
|
su.role,
|
|
su.join_time
|
|
FROM space_user su
|
|
JOIN space s ON su.space_id = s.id
|
|
JOIN user_info u ON su.user_id = u.id
|
|
WHERE s.id = $1
|
|
ORDER BY su.join_time ASC
|
|
`
|
|
|
|
type GetSpaceUsersRow struct {
|
|
UserID int64
|
|
Username pgtype.Text
|
|
Role int32
|
|
JoinTime pgtype.Timestamp
|
|
}
|
|
|
|
// 获取空间下的所有用户信息
|
|
func (q *Queries) GetSpaceUsers(ctx context.Context, id int64) ([]GetSpaceUsersRow, error) {
|
|
rows, err := q.db.Query(ctx, getSpaceUsers, id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var items []GetSpaceUsersRow
|
|
for rows.Next() {
|
|
var i GetSpaceUsersRow
|
|
if err := rows.Scan(
|
|
&i.UserID,
|
|
&i.Username,
|
|
&i.Role,
|
|
&i.JoinTime,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const insertSpace = `-- name: InsertSpace :exec
|
|
INSERT INTO space (id,invite_code) VALUES ($1,$2)
|
|
`
|
|
|
|
type InsertSpaceParams struct {
|
|
ID int64
|
|
InviteCode string
|
|
}
|
|
|
|
// 新增分享空间
|
|
func (q *Queries) InsertSpace(ctx context.Context, arg InsertSpaceParams) error {
|
|
_, err := q.db.Exec(ctx, insertSpace, arg.ID, arg.InviteCode)
|
|
return err
|
|
}
|