Something went wrong. Try again.
(READ ONLY) Margin is an open annotation layer for the internet. Powered by the AT Protocol.
margin.at
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144// Code generated by sqlc. DO NOT EDIT.// versions:// sqlc v1.31.1// source: misc.sql
package sqlcdb
import ( "context")
const getAnnotationAuthorByURI = `-- name: GetAnnotationAuthorByURI :oneSELECT 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 :oneSELECT 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 :oneSELECT 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 :manySELECT 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') combinedGROUP BY tagHAVING COUNT(DISTINCT author_did) >= 3ORDER BY count DESCLIMIT $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 :manySELECT 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) combinedGROUP BY tagORDER BY count DESCLIMIT $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}