feat: statements for tags added
This commit is contained in:
parent
3cca6ee168
commit
e6dc27fd55
2 changed files with 82 additions and 0 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue