+17
-6
appview/db/issues.go
+17
-6
appview/db/issues.go
···
9
)
10
11
type Issue struct {
12
RepoAt syntax.ATURI
13
OwnerDid string
14
IssueId int
···
65
66
issue.IssueId = nextId
67
68
-
_, err = tx.Exec(`
69
insert into issues (repo_at, owner_did, issue_id, title, body)
70
values (?, ?, ?, ?, ?)
71
`, issue.RepoAt, issue.OwnerDid, issue.IssueId, issue.Title, issue.Body)
···
73
return err
74
}
75
76
if err := tx.Commit(); err != nil {
77
return err
78
}
···
114
`
115
with numbered_issue as (
116
select
117
i.owner_did,
118
i.issue_id,
119
i.created,
···
132
i.id, i.owner_did, i.issue_id, i.created, i.title, i.body, i.open
133
)
134
select
135
owner_did,
136
issue_id,
137
created,
···
153
var issue Issue
154
var createdAt string
155
var metadata IssueMetadata
156
-
err := rows.Scan(&issue.OwnerDid, &issue.IssueId, &createdAt, &issue.Title, &issue.Body, &issue.Open, &metadata.CommentCount)
157
if err != nil {
158
return nil, err
159
}
···
182
183
rows, err := e.Query(
184
`select
185
i.owner_did,
186
i.repo_at,
187
i.issue_id,
···
213
var issueCreatedAt, repoCreatedAt string
214
var repo Repo
215
err := rows.Scan(
216
&issue.OwnerDid,
217
&issue.RepoAt,
218
&issue.IssueId,
···
257
}
258
259
func GetIssue(e Execer, repoAt syntax.ATURI, issueId int) (*Issue, error) {
260
-
query := `select owner_did, created, title, body, open from issues where repo_at = ? and issue_id = ?`
261
row := e.QueryRow(query, repoAt, issueId)
262
263
var issue Issue
264
var createdAt string
265
-
err := row.Scan(&issue.OwnerDid, &createdAt, &issue.Title, &issue.Body, &issue.Open)
266
if err != nil {
267
return nil, err
268
}
···
277
}
278
279
func GetIssueWithComments(e Execer, repoAt syntax.ATURI, issueId int) (*Issue, []Comment, error) {
280
-
query := `select owner_did, issue_id, created, title, body, open, issue_at from issues where repo_at = ? and issue_id = ?`
281
row := e.QueryRow(query, repoAt, issueId)
282
283
var issue Issue
284
var createdAt string
285
-
err := row.Scan(&issue.OwnerDid, &issue.IssueId, &createdAt, &issue.Title, &issue.Body, &issue.Open, &issue.IssueAt)
286
if err != nil {
287
return nil, nil, err
288
}
···
9
)
10
11
type Issue struct {
12
+
ID int64
13
RepoAt syntax.ATURI
14
OwnerDid string
15
IssueId int
···
66
67
issue.IssueId = nextId
68
69
+
res, err := tx.Exec(`
70
insert into issues (repo_at, owner_did, issue_id, title, body)
71
values (?, ?, ?, ?, ?)
72
`, issue.RepoAt, issue.OwnerDid, issue.IssueId, issue.Title, issue.Body)
···
74
return err
75
}
76
77
+
lastID, err := res.LastInsertId()
78
+
if err != nil {
79
+
return err
80
+
}
81
+
issue.ID = lastID
82
+
83
if err := tx.Commit(); err != nil {
84
return err
85
}
···
121
`
122
with numbered_issue as (
123
select
124
+
i.id,
125
i.owner_did,
126
i.issue_id,
127
i.created,
···
140
i.id, i.owner_did, i.issue_id, i.created, i.title, i.body, i.open
141
)
142
select
143
+
id,
144
owner_did,
145
issue_id,
146
created,
···
162
var issue Issue
163
var createdAt string
164
var metadata IssueMetadata
165
+
err := rows.Scan(&issue.ID, &issue.OwnerDid, &issue.IssueId, &createdAt, &issue.Title, &issue.Body, &issue.Open, &metadata.CommentCount)
166
if err != nil {
167
return nil, err
168
}
···
191
192
rows, err := e.Query(
193
`select
194
+
i.id,
195
i.owner_did,
196
i.repo_at,
197
i.issue_id,
···
223
var issueCreatedAt, repoCreatedAt string
224
var repo Repo
225
err := rows.Scan(
226
+
&issue.ID,
227
&issue.OwnerDid,
228
&issue.RepoAt,
229
&issue.IssueId,
···
268
}
269
270
func GetIssue(e Execer, repoAt syntax.ATURI, issueId int) (*Issue, error) {
271
+
query := `select id, owner_did, created, title, body, open from issues where repo_at = ? and issue_id = ?`
272
row := e.QueryRow(query, repoAt, issueId)
273
274
var issue Issue
275
var createdAt string
276
+
err := row.Scan(&issue.ID, &issue.OwnerDid, &createdAt, &issue.Title, &issue.Body, &issue.Open)
277
if err != nil {
278
return nil, err
279
}
···
288
}
289
290
func GetIssueWithComments(e Execer, repoAt syntax.ATURI, issueId int) (*Issue, []Comment, error) {
291
+
query := `select id, owner_did, issue_id, created, title, body, open, issue_at from issues where repo_at = ? and issue_id = ?`
292
row := e.QueryRow(query, repoAt, issueId)
293
294
var issue Issue
295
var createdAt string
296
+
err := row.Scan(&issue.ID, &issue.OwnerDid, &issue.IssueId, &createdAt, &issue.Title, &issue.Body, &issue.Open, &issue.IssueAt)
297
if err != nil {
298
return nil, nil, err
299
}