/
reviews.sql.go
135 lines (124 loc) · 2.84 KB
/
reviews.sql.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.21.0
// source: reviews.sql
package dbs
import (
"context"
"database/sql"
"time"
)
const reviewNew = `-- name: ReviewNew :one
INSERT INTO reviews (parent_id, company_id, content, created_by, created_at)
VALUES ($1, $2, $3, $4, $5)
RETURNING id
`
type ReviewNewParams struct {
ParentID sql.NullInt64
CompanyID int64
Content string
CreatedBy int64
CreatedAt time.Time
}
func (q *Queries) ReviewNew(ctx context.Context, arg ReviewNewParams) (int64, error) {
row := q.queryRow(ctx, q.reviewNewStmt, reviewNew,
arg.ParentID,
arg.CompanyID,
arg.Content,
arg.CreatedBy,
arg.CreatedAt,
)
var id int64
err := row.Scan(&id)
return id, err
}
const reviewsNested = `-- name: ReviewsNested :many
WITH RECURSIVE nested AS (
SELECT r.id, r.parent_id, r.company_id, r.content, r.created_by, r.created_at
FROM reviews r
WHERE r.id = $2::BIGINT
UNION ALL
SELECT r.id, r.parent_id, r.company_id, r.content, r.created_by, r.created_at
FROM reviews r
INNER JOIN nested n ON (r.parent_id = n.id)
)
SELECT id, parent_id, company_id, content, created_by, created_at
FROM nested n
WHERE n.company_id = $1::BIGINT
`
type ReviewsNestedParams struct {
CompanyID int64
ID int64
}
type ReviewsNestedRow struct {
ID int64
ParentID sql.NullInt64
CompanyID int64
Content string
CreatedBy int64
CreatedAt time.Time
}
func (q *Queries) ReviewsNested(ctx context.Context, arg ReviewsNestedParams) ([]ReviewsNestedRow, error) {
rows, err := q.query(ctx, q.reviewsNestedStmt, reviewsNested, arg.CompanyID, arg.ID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ReviewsNestedRow
for rows.Next() {
var i ReviewsNestedRow
if err := rows.Scan(
&i.ID,
&i.ParentID,
&i.CompanyID,
&i.Content,
&i.CreatedBy,
&i.CreatedAt,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const reviewsRootByCompany = `-- name: ReviewsRootByCompany :many
SELECT id, parent_id, company_id, content, created_by, created_at
FROM reviews
WHERE company_id = $1
AND parent_id IS NULL
`
func (q *Queries) ReviewsRootByCompany(ctx context.Context, companyID int64) ([]Review, error) {
rows, err := q.query(ctx, q.reviewsRootByCompanyStmt, reviewsRootByCompany, companyID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Review
for rows.Next() {
var i Review
if err := rows.Scan(
&i.ID,
&i.ParentID,
&i.CompanyID,
&i.Content,
&i.CreatedBy,
&i.CreatedAt,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}