feat: statements for tags added

This commit is contained in:
Iron_Felix 2025-11-15 19:19:39 +03:00
parent 3cca6ee168
commit e6dc27fd55
2 changed files with 82 additions and 0 deletions

View file

@ -27,6 +27,26 @@ VALUES (
sqlc.narg('studio_desc')::text) sqlc.narg('studio_desc')::text)
RETURNING id, studio_name, illust_id, studio_desc; RETURNING id, studio_name, illust_id, studio_desc;
-- name: GetTitleTags :many
SELECT
tag_names
FROM tags as g
JOIN title_tags as t ON(t.tag_id = g.id)
WHERE t.title_id = sqlc.arg('title_id')::bigint;
-- name: InsertTitleTags :one
INSERT INTO title_tags (title_id, tag_id)
VALUES (
sqlc.arg('title_id')::bigint,
sqlc.arg('tag_id')::bigint)
RETURNING title_id, tag_id;
-- name: InsertTag :one
INSERT INTO tags (tag_names)
VALUES (
sqlc.arg('tag_names')::jsonb)
RETURNING id, tag_names;
-- -- name: ListUsers :many -- -- name: ListUsers :many
-- SELECT user_id, avatar_id, passhash, mail, nickname, disp_name, user_desc, creation_date -- SELECT user_id, avatar_id, passhash, mail, nickname, disp_name, user_desc, creation_date
-- FROM users -- FROM users

View file

@ -59,6 +59,34 @@ func (q *Queries) GetStudioByID(ctx context.Context, studioID int32) (Studio, er
return i, err return i, err
} }
const getTitleTags = `-- name: GetTitleTags :many
SELECT
tag_names
FROM tags as g
JOIN title_tags as t ON(t.tag_id = g.id)
WHERE t.title_id = $1::bigint
`
func (q *Queries) GetTitleTags(ctx context.Context, titleID int64) ([][]byte, error) {
rows, err := q.db.Query(ctx, getTitleTags, titleID)
if err != nil {
return nil, err
}
defer rows.Close()
var items [][]byte
for rows.Next() {
var tag_names []byte
if err := rows.Scan(&tag_names); err != nil {
return nil, err
}
items = append(items, tag_names)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const getUserByID = `-- name: GetUserByID :one const getUserByID = `-- name: GetUserByID :one
SELECT id, avatar_id, mail, nickname, disp_name, user_desc, creation_date SELECT id, avatar_id, mail, nickname, disp_name, user_desc, creation_date
FROM users FROM users
@ -117,6 +145,40 @@ func (q *Queries) InsertStudio(ctx context.Context, arg InsertStudioParams) (Stu
return i, err return i, err
} }
const insertTag = `-- name: InsertTag :one
INSERT INTO tags (tag_names)
VALUES (
$1::jsonb)
RETURNING id, tag_names
`
func (q *Queries) InsertTag(ctx context.Context, tagNames []byte) (Tag, error) {
row := q.db.QueryRow(ctx, insertTag, tagNames)
var i Tag
err := row.Scan(&i.ID, &i.TagNames)
return i, err
}
const insertTitleTags = `-- name: InsertTitleTags :one
INSERT INTO title_tags (title_id, tag_id)
VALUES (
$1::bigint,
$2::bigint)
RETURNING title_id, tag_id
`
type InsertTitleTagsParams struct {
TitleID int64 `json:"title_id"`
TagID int64 `json:"tag_id"`
}
func (q *Queries) InsertTitleTags(ctx context.Context, arg InsertTitleTagsParams) (TitleTag, error) {
row := q.db.QueryRow(ctx, insertTitleTags, arg.TitleID, arg.TagID)
var i TitleTag
err := row.Scan(&i.TitleID, &i.TagID)
return i, err
}
const searchTitles = `-- name: SearchTitles :many const searchTitles = `-- name: SearchTitles :many