diff options
author | Christopher Baines <mail@cbaines.net> | 2019-09-04 13:20:41 +0200 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2019-09-05 16:07:23 +0200 |
commit | 6c90fe432496a2b2ace6984ac24beb7f7736ef1c (patch) | |
tree | 2c193f8c307950b1d5f5a94ec948baba76836acd | |
parent | f1a9495727add78bdf53fb5547b317d7fba242a6 (diff) | |
download | data-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.scm | 36 |
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)) |