// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.31.1 // source: misc.sql package sqlcdb import ( "context" ) const getAnnotationAuthorByURI = `-- name: GetAnnotationAuthorByURI :one SELECT author_did FROM annotations WHERE uri = $1 ` func (q *Queries) GetAnnotationAuthorByURI(ctx context.Context, uri string) (string, error) { row := q.db.QueryRow(ctx, getAnnotationAuthorByURI, uri) var author_did string err := row.Scan(&author_did) return author_did, err } const getBookmarkAuthorByURI = `-- name: GetBookmarkAuthorByURI :one SELECT author_did FROM bookmarks WHERE uri = $1 ` func (q *Queries) GetBookmarkAuthorByURI(ctx context.Context, uri string) (string, error) { row := q.db.QueryRow(ctx, getBookmarkAuthorByURI, uri) var author_did string err := row.Scan(&author_did) return author_did, err } const getHighlightAuthorByURI = `-- name: GetHighlightAuthorByURI :one SELECT author_did FROM highlights WHERE uri = $1 ` func (q *Queries) GetHighlightAuthorByURI(ctx context.Context, uri string) (string, error) { row := q.db.QueryRow(ctx, getHighlightAuthorByURI, uri) var author_did string err := row.Scan(&author_did) return author_did, err } const getTrendingTags = `-- name: GetTrendingTags :many SELECT tag, COUNT(*) as count FROM ( SELECT value as tag, author_did FROM annotations, json_array_elements_text(tags_json::json) as value WHERE tags_json IS NOT NULL AND tags_json != '' AND tags_json != '[]' AND created_at > NOW() - INTERVAL '14 days' UNION ALL SELECT value as tag, author_did FROM highlights, json_array_elements_text(tags_json::json) as value WHERE tags_json IS NOT NULL AND tags_json != '' AND tags_json != '[]' AND created_at > NOW() - INTERVAL '14 days' UNION ALL SELECT value as tag, author_did FROM bookmarks, json_array_elements_text(tags_json::json) as value WHERE tags_json IS NOT NULL AND tags_json != '' AND tags_json != '[]' AND created_at > NOW() - INTERVAL '14 days' ) combined GROUP BY tag HAVING COUNT(DISTINCT author_did) >= 3 ORDER BY count DESC LIMIT $1 ` type GetTrendingTagsRow struct { Tag *string `json:"tag"` Count int64 `json:"count"` } func (q *Queries) GetTrendingTags(ctx context.Context, limit int32) ([]GetTrendingTagsRow, error) { rows, err := q.db.Query(ctx, getTrendingTags, limit) if err != nil { return nil, err } defer rows.Close() var items []GetTrendingTagsRow for rows.Next() { var i GetTrendingTagsRow if err := rows.Scan(&i.Tag, &i.Count); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const getUserTags = `-- name: GetUserTags :many SELECT tag, SUM(cnt) as count FROM ( SELECT value as tag, COUNT(*) as cnt FROM annotations, json_array_elements_text(tags_json::json) as value WHERE annotations.author_did = $1 AND tags_json IS NOT NULL AND tags_json != '' AND tags_json != '[]' GROUP BY tag UNION ALL SELECT value as tag, COUNT(*) as cnt FROM highlights, json_array_elements_text(tags_json::json) as value WHERE highlights.author_did = $1 AND tags_json IS NOT NULL AND tags_json != '' AND tags_json != '[]' GROUP BY tag UNION ALL SELECT value as tag, COUNT(*) as cnt FROM bookmarks, json_array_elements_text(tags_json::json) as value WHERE bookmarks.author_did = $1 AND tags_json IS NOT NULL AND tags_json != '' AND tags_json != '[]' GROUP BY tag ) combined GROUP BY tag ORDER BY count DESC LIMIT $2 ` type GetUserTagsParams struct { AuthorDid string `json:"authorDid"` Limit int32 `json:"limit"` } type GetUserTagsRow struct { Tag *string `json:"tag"` Count int64 `json:"count"` } func (q *Queries) GetUserTags(ctx context.Context, arg GetUserTagsParams) ([]GetUserTagsRow, error) { rows, err := q.db.Query(ctx, getUserTags, arg.AuthorDid, arg.Limit) if err != nil { return nil, err } defer rows.Close() var items []GetUserTagsRow for rows.Next() { var i GetUserTagsRow if err := rows.Scan(&i.Tag, &i.Count); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil }