refactoring by skill
This commit is contained in:
@@ -28,49 +28,49 @@ SQL
|
||||
(format "/uploads/~a/~a" reference stored-name))
|
||||
|
||||
(define (page-references db page-id)
|
||||
(define current
|
||||
(query-row db
|
||||
"SELECT namespace, slug FROM pages WHERE id = $1"
|
||||
page-id))
|
||||
(define references
|
||||
(list (if (string=? (vector-ref current 0) "")
|
||||
(vector-ref current 1)
|
||||
(string-append (vector-ref current 0) ":" (vector-ref current 1)))))
|
||||
(define aliases-available?
|
||||
(query-value db "SELECT to_regclass('page_aliases') IS NOT NULL"))
|
||||
(when aliases-available?
|
||||
(for ((row (in-list
|
||||
(query-rows db
|
||||
"SELECT namespace, slug FROM page_aliases WHERE page_id = $1 ORDER BY id"
|
||||
page-id))))
|
||||
(define reference
|
||||
(if (string=? (vector-ref row 0) "")
|
||||
(vector-ref row 1)
|
||||
(string-append (vector-ref row 0) ":" (vector-ref row 1))))
|
||||
(set! references (cons reference references))))
|
||||
references)
|
||||
(let* ((current
|
||||
(query-row db
|
||||
"SELECT namespace, slug FROM pages WHERE id = $1"
|
||||
page-id))
|
||||
(references
|
||||
(list (if (string=? (vector-ref current 0) "")
|
||||
(vector-ref current 1)
|
||||
(string-append (vector-ref current 0) ":" (vector-ref current 1)))))
|
||||
(aliases-available?
|
||||
(query-value db "SELECT to_regclass('page_aliases') IS NOT NULL")))
|
||||
(when aliases-available?
|
||||
(for ((row (in-list
|
||||
(query-rows db
|
||||
"SELECT namespace, slug FROM page_aliases WHERE page_id = $1 ORDER BY id"
|
||||
page-id))))
|
||||
(let ((reference
|
||||
(if (string=? (vector-ref row 0) "")
|
||||
(vector-ref row 1)
|
||||
(string-append (vector-ref row 0) ":" (vector-ref row 1)))))
|
||||
(set! references (cons reference references)))))
|
||||
references))
|
||||
|
||||
(define (record-references! db page-id page-version-id markdown current? referenced-at)
|
||||
(for ((row (in-list (attachment-rows db))))
|
||||
(define attachment-id (vector-ref row 0))
|
||||
(define owner-page-id (vector-ref row 1))
|
||||
(define stored-name (vector-ref row 2))
|
||||
(define found? #f)
|
||||
(for ((reference (in-list (page-references db owner-page-id))))
|
||||
(when (string-contains? markdown (attachment-url reference stored-name))
|
||||
(set! found? #t)))
|
||||
(when found?
|
||||
(query-exec db
|
||||
#<<SQL
|
||||
(let ((attachment-id (vector-ref row 0))
|
||||
(owner-page-id (vector-ref row 1))
|
||||
(stored-name (vector-ref row 2))
|
||||
(found? #f))
|
||||
(for ((reference (in-list (page-references db owner-page-id))))
|
||||
(when (string-contains? markdown (attachment-url reference stored-name))
|
||||
(set! found? #t)))
|
||||
(when found?
|
||||
(query-exec db
|
||||
#<<SQL
|
||||
INSERT INTO attachment_references
|
||||
(attachment_id, page_id, page_version_id, current_reference, referenced_at)
|
||||
VALUES ($1, $2, $3, $4, $5)
|
||||
SQL
|
||||
attachment-id
|
||||
page-id
|
||||
page-version-id
|
||||
current?
|
||||
referenced-at))))
|
||||
attachment-id
|
||||
page-id
|
||||
page-version-id
|
||||
current?
|
||||
referenced-at)))))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Provided functions
|
||||
|
||||
Reference in New Issue
Block a user