aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/model/package-metadata.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-09-04 19:28:48 +0200
committerChristopher Baines <mail@cbaines.net>2019-09-05 16:07:23 +0200
commit1a55022524043bdf2f120dd38990d42949ecb6e2 (patch)
treebe78a6ade65501dfa4563214f7fb60766eaea746 /guix-data-service/model/package-metadata.scm
parentf29230e034bd9d7ae201901efee18a166c966ea5 (diff)
downloaddata-service-1a55022524043bdf2f120dd38990d42949ecb6e2.tar
data-service-1a55022524043bdf2f120dd38990d42949ecb6e2.tar.gz
Improve the package and package-metadata modules
Add tests around the package module, extract out the use of the inferior-package record assessors so that they aren't part of the tests, and switch across the package-metadata module to use insert-missing-data-and-return-all-ids.
Diffstat (limited to 'guix-data-service/model/package-metadata.scm')
-rw-r--r--guix-data-service/model/package-metadata.scm43
1 files changed, 5 insertions, 38 deletions
diff --git a/guix-data-service/model/package-metadata.scm b/guix-data-service/model/package-metadata.scm
index 178d783..daca676 100644
--- a/guix-data-service/model/package-metadata.scm
+++ b/guix-data-service/model/package-metadata.scm
@@ -144,42 +144,9 @@ WHERE packages.id IN (
packages
license-set-ids))
- (let* ((existing-package-metadata-entries
- (exec-query->vhash conn
- (select-package-metadata package-metadata)
- (match-lambda
- ((id synopsis description home-page
- location-id license-set-id)
- (list synopsis
- description
- (non-empty-string-or-false home-page)
- location-id
- license-set-id)))
- first)) ;; id))
- (missing-package-metadata-entries
- (delete-duplicates
- (filter (lambda (metadata)
- (not (vhash-assoc metadata
- existing-package-metadata-entries)))
- package-metadata)))
- (new-package-metadata-entries
- (if (null? missing-package-metadata-entries)
- '()
- (map first
- (exec-query conn
- (insert-package-metadata
- missing-package-metadata-entries)))))
- (new-entries-id-lookup-vhash
- (two-lists->vhash missing-package-metadata-entries
- new-package-metadata-entries)))
+ (insert-missing-data-and-return-all-ids
+ conn
+ "package_metadata"
+ '(synopsis description home_page location_id license_set_id)
+ package-metadata))
- (map (lambda (package-metadata-values)
- (cdr
- (or (vhash-assoc package-metadata-values
- existing-package-metadata-entries)
- (vhash-assoc package-metadata-values
- new-entries-id-lookup-vhash)
- (begin
- (error "missing package-metadata entry"
- package-metadata-values)))))
- package-metadata)))