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