summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThanos Apollo <public@thanosapollo.org>2026-04-30 17:42:21 +0300
committerThanos Apollo <public@thanosapollo.org>2026-04-30 17:42:21 +0300
commit16d45585d15f152497dcbff47e85f25a09f0d295 (patch)
treedc81eb5ec40c4e67aac505d69ce13044e823d19e
parent0ab3afbbabded1074a69645ec0e16ff7d6442e97 (diff)
fix: view: check if item is pr or an issue.
-rw-r--r--lisp/forgejo-view.el23
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