aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-09-04 13:20:41 +0200
committerChristopher Baines <mail@cbaines.net>2019-09-05 16:07:23 +0200
commit6c90fe432496a2b2ace6984ac24beb7f7736ef1c (patch)
tree2c193f8c307950b1d5f5a94ec948baba76836acd
parentf1a9495727add78bdf53fb5547b317d7fba242a6 (diff)
downloaddata-service-6c90fe432496a2b2ace6984ac24beb7f7736ef1c.tar
data-service-6c90fe432496a2b2ace6984ac24beb7f7736ef1c.tar.gz
Reduce code duplication in the package module
By using insert-missing-data-and-return-all-ids.
-rw-r--r--guix-data-service/model/package.scm36
1 files changed, 5 insertions, 31 deletions
diff --git a/guix-data-service/model/package.scm b/guix-data-service/model/package.scm
index 1579469..477a25c 100644
--- a/guix-data-service/model/package.scm
+++ b/guix-data-service/model/package.scm
@@ -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))