2
0
Fork 0
mirror of git://git.savannah.gnu.org/guix/data-service.git synced 2023-12-14 03:23:03 +01:00

Reduce code duplication in the package module

By using insert-missing-data-and-return-all-ids.
This commit is contained in:
Christopher Baines 2019-09-04 13:20:41 +02:00
parent f1a9495727
commit 6c90fe4324

View file

@ -169,34 +169,8 @@ WHERE packages.id IN (
packages
metadata-ids))
(let* ((existing-package-entry-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
(insert-into-package-entries
missing-package-entries)))))
(new-entries-id-lookup-vhash
(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)))
(insert-missing-data-and-return-all-ids
conn
"packages"
'(name version package_metadata_id)
package-entries))