diff options
| author | Thanos Apollo <public@thanosapollo.org> | 2026-04-30 17:42:21 +0300 |
|---|---|---|
| committer | Thanos Apollo <public@thanosapollo.org> | 2026-04-30 17:42:21 +0300 |
| commit | 16d45585d15f152497dcbff47e85f25a09f0d295 (patch) | |
| tree | dc81eb5ec40c4e67aac505d69ce13044e823d19e | |
| parent | 0ab3afbbabded1074a69645ec0e16ff7d6442e97 (diff) | |
fix: view: check if item is pr or an issue.
| -rw-r--r-- | lisp/forgejo-view.el | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/lisp/forgejo-view.el b/lisp/forgejo-view.el index 80797eb..1574c3d 100644 --- a/lisp/forgejo-view.el +++ b/lisp/forgejo-view.el @@ -270,13 +270,22 @@ Handles #N issue/PR refs and markdown URLs." (defun forgejo-view-item (owner repo number) "View issue or PR NUMBER in OWNER/REPO. -Checks the DB to determine if it's a PR, falls back to issue view." - (let ((cached (forgejo-db-get-issue - (url-host (url-generic-parse-url forgejo-repo--host)) - owner repo number))) - (if (and cached (alist-get 'pull_request cached)) - (forgejo-pull-view owner repo number) - (forgejo-issue-view owner repo number)))) +Checks the DB first, then the API if uncached." + (let* ((host (url-host (url-generic-parse-url forgejo-repo--host))) + (cached (forgejo-db-get-issue host owner repo number))) + (if cached + (if (alist-get 'pull_request cached) + (forgejo-pull-view owner repo number) + (forgejo-issue-view owner repo number)) + (forgejo-api-get + forgejo-repo--host + (format "repos/%s/%s/issues/%d" owner repo number) nil + (lambda (data _headers) + (when data + (forgejo-db-save-issues host owner repo (list data)) + (if (alist-get 'pull_request data) + (forgejo-pull-view owner repo number) + (forgejo-issue-view owner repo number)))))))) ;;; List-view format |
