appview: db/issues: add ID field to Issue #1

closed
opened by boltless.me targeting master from feat/search

This will help indexing Issues faster when we introduce external search indexer

Signed-off-by: Seongmin Lee boltlessengineer@proton.me

Changed files
+17 -6
appview
+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 from issues where repo_at = ? and issue_id = ?` 291 + query := `select id, owner_did, issue_id, created, title, body, open 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) 296 + err := row.Scan(&issue.ID, &issue.OwnerDid, &issue.IssueId, &createdAt, &issue.Title, &issue.Body, &issue.Open) 286 297 if err != nil { 287 298 return nil, nil, err 288 299 }