Reduce code duplication in the package module
By using insert-missing-data-and-return-all-ids.
This commit is contained in:
parent
f1a9495727
commit
6c90fe4324
1 changed files with 5 additions and 31 deletions
|
|
@ -169,34 +169,8 @@ WHERE packages.id IN (
|
||||||
packages
|
packages
|
||||||
metadata-ids))
|
metadata-ids))
|
||||||
|
|
||||||
(let* ((existing-package-entry-ids
|
(insert-missing-data-and-return-all-ids
|
||||||
(exec-query->vhash conn
|
|
||||||
(select-existing-package-entries package-entries)
|
|
||||||
;; name, version and package_metadata_id
|
|
||||||
cdr
|
|
||||||
first)) ;;id
|
|
||||||
(missing-package-entries
|
|
||||||
(filter (lambda (package-entry)
|
|
||||||
(not (vhash-assoc package-entry
|
|
||||||
existing-package-entry-ids)))
|
|
||||||
(delete-duplicates package-entries)))
|
|
||||||
(new-package-entry-ids
|
|
||||||
(if (null? missing-package-entries)
|
|
||||||
'()
|
|
||||||
(map car
|
|
||||||
(exec-query
|
|
||||||
conn
|
conn
|
||||||
(insert-into-package-entries
|
"packages"
|
||||||
missing-package-entries)))))
|
'(name version package_metadata_id)
|
||||||
(new-entries-id-lookup-vhash
|
package-entries))
|
||||||
(two-lists->vhash missing-package-entries
|
|
||||||
new-package-entry-ids)))
|
|
||||||
|
|
||||||
(map (lambda (package-entry)
|
|
||||||
(cdr
|
|
||||||
(or (vhash-assoc package-entry
|
|
||||||
existing-package-entry-ids)
|
|
||||||
(vhash-assoc package-entry
|
|
||||||
new-entries-id-lookup-vhash)
|
|
||||||
(error "missing package entry"))))
|
|
||||||
package-entries)))
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue