From 87dc65a1a32543a816f304253d06f7040143b5b3 Mon Sep 17 00:00:00 2001 From: dusk Date: Tue, 12 Aug 2025 18:02:21 +0300 Subject: [PATCH] appview: db: pulls: add method for getting any pulls on a repo Change-Id: vpswvtqqqqlkzmwtvkuotykmoooqmwou Signed-off-by: dusk --- appview/db/pulls.go | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/appview/db/pulls.go b/appview/db/pulls.go index e993791..9d6c027 100644 --- a/appview/db/pulls.go +++ b/appview/db/pulls.go @@ -310,7 +310,7 @@ func NextPullId(e Execer, repoAt syntax.ATURI) (int, error) { return pullId - 1, err } -func GetPulls(e Execer, filters ...filter) ([]*Pull, error) { +func GetPullsWithLimit(e Execer, limit int, filters ...filter) ([]*Pull, error) { pulls := make(map[int]*Pull) var conditions []string @@ -324,6 +324,10 @@ func GetPulls(e Execer, filters ...filter) ([]*Pull, error) { if conditions != nil { whereClause = " where " + strings.Join(conditions, " and ") } + limitClause := "" + if limit != 0 { + limitClause = fmt.Sprintf(" limit %d ", limit) + } query := fmt.Sprintf(` select @@ -344,7 +348,10 @@ func GetPulls(e Execer, filters ...filter) ([]*Pull, error) { from pulls %s - `, whereClause) + order by + created desc + %s + `, whereClause, limitClause) rows, err := e.Query(query, args...) if err != nil { @@ -412,7 +419,7 @@ func GetPulls(e Execer, filters ...filter) ([]*Pull, error) { inClause := strings.TrimSuffix(strings.Repeat("?, ", len(pulls)), ", ") submissionsQuery := fmt.Sprintf(` select - id, pull_id, round_number, patch, source_rev + id, pull_id, round_number, patch, created, source_rev from pull_submissions where @@ -438,17 +445,25 @@ func GetPulls(e Execer, filters ...filter) ([]*Pull, error) { for submissionsRows.Next() { var s PullSubmission var sourceRev sql.NullString + var createdAt string err := submissionsRows.Scan( &s.ID, &s.PullId, &s.RoundNumber, &s.Patch, + &createdAt, &sourceRev, ) if err != nil { return nil, err } + createdTime, err := time.Parse(time.RFC3339, createdAt) + if err != nil { + return nil, err + } + s.Created = createdTime + if sourceRev.Valid { s.SourceRev = sourceRev.String } @@ -513,6 +528,10 @@ func GetPulls(e Execer, filters ...filter) ([]*Pull, error) { return orderedByPullId, nil } +func GetPulls(e Execer, filters ...filter) ([]*Pull, error) { + return GetPullsWithLimit(e, 0, filters...) +} + func GetPull(e Execer, repoAt syntax.ATURI, pullId int) (*Pull, error) { query := ` select -- 2.43.0