diff --git a/appview/db/issues.go b/appview/db/issues.go index 873b4daf..2dd564b7 100644 --- a/appview/db/issues.go +++ b/appview/db/issues.go @@ -391,167 +391,10 @@ func GetIssuesPaginated(e Execer, page pagination.Page, filters ...filter) ([]Is return issues, nil } -func GetIssuesWithLimit(e Execer, limit int, filters ...filter) ([]Issue, error) { - issues := make([]Issue, 0, limit) - - var conditions []string - var args []any - for _, filter := range filters { - conditions = append(conditions, filter.Condition()) - args = append(args, filter.Arg()...) - } - - whereClause := "" - if conditions != nil { - whereClause = " where " + strings.Join(conditions, " and ") - } - limitClause := "" - if limit != 0 { - limitClause = fmt.Sprintf(" limit %d ", limit) - } - - query := fmt.Sprintf( - `select - i.id, - i.owner_did, - i.repo_at, - i.issue_id, - i.created, - i.title, - i.body, - i.open - from - issues i - %s - order by - i.created desc - %s`, - whereClause, limitClause) - - rows, err := e.Query(query, args...) - if err != nil { - return nil, err - } - defer rows.Close() - - for rows.Next() { - var issue Issue - var issueCreatedAt string - err := rows.Scan( - &issue.Id, - &issue.Did, - &issue.RepoAt, - &issue.IssueId, - &issueCreatedAt, - &issue.Title, - &issue.Body, - &issue.Open, - ) - if err != nil { - return nil, err - } - - issueCreatedTime, err := time.Parse(time.RFC3339, issueCreatedAt) - if err != nil { - return nil, err - } - issue.Created = issueCreatedTime - - issues = append(issues, issue) - } - - if err := rows.Err(); err != nil { - return nil, err - } - - return issues, nil -} - func GetIssues(e Execer, filters ...filter) ([]Issue, error) { return GetIssuesPaginated(e, pagination.FirstPage(), filters...) } -// timeframe here is directly passed into the sql query filter, and any -// timeframe in the past should be negative; e.g.: "-3 months" -func GetIssuesByOwnerDid(e Execer, ownerDid string, timeframe string) ([]Issue, error) { - var issues []Issue - - rows, err := e.Query( - `select - i.id, - i.owner_did, - i.rkey, - i.repo_at, - i.issue_id, - i.created, - i.title, - i.body, - i.open, - r.did, - r.name, - r.knot, - r.rkey, - r.created - from - issues i - join - repos r on i.repo_at = r.at_uri - where - i.owner_did = ? and i.created >= date ('now', ?) - order by - i.created desc`, - ownerDid, timeframe) - if err != nil { - return nil, err - } - defer rows.Close() - - for rows.Next() { - var issue Issue - var issueCreatedAt, repoCreatedAt string - var repo Repo - err := rows.Scan( - &issue.Id, - &issue.Did, - &issue.Rkey, - &issue.RepoAt, - &issue.IssueId, - &issueCreatedAt, - &issue.Title, - &issue.Body, - &issue.Open, - &repo.Did, - &repo.Name, - &repo.Knot, - &repo.Rkey, - &repoCreatedAt, - ) - if err != nil { - return nil, err - } - - issueCreatedTime, err := time.Parse(time.RFC3339, issueCreatedAt) - if err != nil { - return nil, err - } - issue.Created = issueCreatedTime - - repoCreatedTime, err := time.Parse(time.RFC3339, repoCreatedAt) - if err != nil { - return nil, err - } - repo.Created = repoCreatedTime - - issues = append(issues, issue) - } - - if err := rows.Err(); err != nil { - return nil, err - } - - return issues, nil -} - func GetIssue(e Execer, repoAt syntax.ATURI, issueId int) (*Issue, error) { query := `select id, owner_did, rkey, created, title, body, open from issues where repo_at = ? and issue_id = ?` row := e.QueryRow(query, repoAt, issueId) diff --git a/appview/db/profile.go b/appview/db/profile.go index e0c96ac9..70579c8c 100644 --- a/appview/db/profile.go +++ b/appview/db/profile.go @@ -132,7 +132,11 @@ func MakeProfileTimeline(e Execer, forDid string) (*ProfileTimeline, error) { *items = append(*items, &pull) } - issues, err := GetIssuesByOwnerDid(e, forDid, timeframe) + issues, err := GetIssues( + e, + FilterEq("did", forDid), + FilterGte("created", time.Now().AddDate(0, -TimeframeMonths, 0)), + ) if err != nil { return nil, fmt.Errorf("error getting issues by owner did: %w", err) } diff --git a/appview/pages/templates/user/overview.html b/appview/pages/templates/user/overview.html index 31ce7c35..ea1d3fae 100644 --- a/appview/pages/templates/user/overview.html +++ b/appview/pages/templates/user/overview.html @@ -115,8 +115,8 @@