Signed-off-by: dusk y.bera003.06@protonmail.com
+64
-2
appview/db/issues.go
+64
-2
appview/db/issues.go
···
142
142
body,
143
143
open,
144
144
comment_count
145
-
from
145
+
from
146
146
numbered_issue
147
-
where
147
+
where
148
148
row_num between ? and ?`,
149
149
repoAt, openValue, page.Offset+1, page.Offset+page.Limit)
150
150
if err != nil {
···
178
178
return issues, nil
179
179
}
180
180
181
+
func GetAnyIssues(e Execer, repoAt syntax.ATURI, count int) ([]Issue, error) {
182
+
issues := make([]Issue, 0, count)
183
+
184
+
rows, err := e.Query(
185
+
`select
186
+
i.id,
187
+
i.owner_did,
188
+
i.repo_at,
189
+
i.issue_id,
190
+
i.created,
191
+
i.title,
192
+
i.body,
193
+
i.open
194
+
from
195
+
issues i
196
+
where
197
+
i.repo_at = ?
198
+
order by
199
+
i.created desc`,
200
+
repoAt)
201
+
if err != nil {
202
+
return nil, err
203
+
}
204
+
defer rows.Close()
205
+
206
+
for rows.Next() {
207
+
if len(issues) >= count {
208
+
break
209
+
}
210
+
211
+
var issue Issue
212
+
var issueCreatedAt string
213
+
err := rows.Scan(
214
+
&issue.ID,
215
+
&issue.OwnerDid,
216
+
&issue.RepoAt,
217
+
&issue.IssueId,
218
+
&issueCreatedAt,
219
+
&issue.Title,
220
+
&issue.Body,
221
+
&issue.Open,
222
+
)
223
+
if err != nil {
224
+
return nil, err
225
+
}
226
+
227
+
issueCreatedTime, err := time.Parse(time.RFC3339, issueCreatedAt)
228
+
if err != nil {
229
+
return nil, err
230
+
}
231
+
issue.Created = issueCreatedTime
232
+
233
+
issues = append(issues, issue)
234
+
}
235
+
236
+
if err := rows.Err(); err != nil {
237
+
return nil, err
238
+
}
239
+
240
+
return issues, nil
241
+
}
242
+
181
243
// timeframe here is directly passed into the sql query filter, and any
182
244
// timeframe in the past should be negative; e.g.: "-3 months"
183
245
func GetIssuesByOwnerDid(e Execer, ownerDid string, timeframe string) ([]Issue, error) {