Simplify get-* model accessors.

Commit
fddbcb3923d3dd019d07b3f37c033fab36c2cadc
Author
Marius Peter <dev@marius-peter.com>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
Changed files
models/crop-requirement.rkt
index f2134411..d1c6dddc 100644..100644
@@ -13,12 +13,7 @@
13 13 number?)))
14 14 ((or/c #f crop?))
15 15 crop-requirement?)]
16 Removed: [get-crop-requirements (->* ()
17 Removed: (#:id
18 Removed: (or/c #f exact-nonnegative-integer?)
19 Removed: #:profile
20 Removed: (or/c #f string?))
21 Removed: (listof crop-requirement?))]
16 Added: [get-crop-requirements (-> (listof crop-requirement?))]
22 17 [get-crop-requirement (->* ()
23 18 (#:id
24 19 (or/c #f exact-nonnegative-integer?)
@@ -90,27 +85,16 @@
90 85
91 86 ;; READ
92 87
93 Removed: (define (get-crop-requirements #:id [id #f]
94 Removed: #:profile [profile #f])
95 Removed: (define (where-expr)
96 Removed: (define clauses
97 Removed: (filter values
98 Removed: (list (and id (format "id = ~e" id))
99 Removed: (and profile (format "profile = ~e" profile)))))
100 Removed: (cond
101 Removed: [(null? clauses) ""]
102 Removed: [else (format "WHERE ~a" (string-join clauses " AND "))]))
103 Removed: (define query (string-join
104 Removed: `("SELECT id, profile"
105 Removed: "FROM crop_requirements"
106 Removed: ,(where-expr)
107 Removed: "ORDER BY id ASC")))
88 Added: (define (get-crop-requirements)
108 89 (for/list ([(id* profile*)
109 Removed: (in-query (current-conn) query)])
90 Added: (in-query (current-conn)
91 Added: (select id profile
92 Added: #:from crop_requirements
93 Added: #:order-by id #:asc))])
110 94 (crop-requirement id* profile*)))
111 95
112 96 (define (get-crop-requirement #:id [id #f]
113 Removed: #:profile [profile #f])
97 Added: #:profile [profile #f])
114 98 (define (where-expr)
115 99 (define clauses
116 100 (filter values
models/crop.rkt
index 7163cbd2..f77cbaa6 100644..100644
@@ -8,10 +8,7 @@
8 8 ;; SQL CRUD
9 9 (contract-out
10 10 [create-crop! (-> string? void?)]
11 Removed: [get-crops (->* ()
12 Removed: (#:id (or/c #f exact-nonnegative-integer?)
13 Removed: #:name (or/c #f string?))
14 Removed: (listof crop?))]
11 Added: [get-crops (-> (listof crop?))]
15 12 [get-crop (->* ()
16 13 (#:id (or/c #f exact-nonnegative-integer?)
17 14 #:name (or/c #f string?))
@@ -39,24 +36,12 @@
39 36
40 37 ;; READ
41 38
42 Removed: (define (get-crops #:id [id #f]
43 Removed: #:name [name #f])
44 Removed: (define (where-expr)
45 Removed: (define clauses
46 Removed: (filter values
47 Removed: (list
48 Removed: (and id (format "id = ~e" id))
49 Removed: (and name (format "canonical_name = ~e" name)))))
50 Removed: (cond
51 Removed: [(null? clauses) ""]
52 Removed: [else (format "WHERE ~a" (string-join clauses " AND "))]))
53 Removed: (define query (string-join
54 Removed: `("SELECT id, canonical_name"
55 Removed: "FROM crops"
56 Removed: ,(where-expr)
57 Removed: "ORDER BY id ASC")))
39 Added: (define (get-crops)
58 40 (for/list ([(id* name*)
59 Removed: (in-query (current-conn) query)])
41 Added: (in-query (current-conn)
42 Added: (select id canonical_name
43 Added: #:from crops
44 Added: #:order-by id #:asc))])
60 45 (crop id* name*)))
61 46
62 47 (define (get-crop #:id [id #f]
models/fertilizer-product.rkt
index 254ce35a..073ef4fd 100644..100644
@@ -13,12 +13,7 @@
13 13 number?)))
14 14 (string?)
15 15 fertilizer-product?)]
16 Removed: [get-fertilizer-products (->* ()
17 Removed: (#:id
18 Removed: (or/c #f exact-nonnegative-integer?)
19 Removed: #:brand-name
20 Removed: (or/c #f string?))
21 Removed: (listof fertilizer-product?))]
16 Added: [get-fertilizer-products (-> (listof fertilizer-product?))]
22 17 [get-fertilizer-product (->* ()
23 18 (#:id
24 19 (or/c #f exact-nonnegative-integer?)
@@ -85,23 +80,12 @@
85 80
86 81 ;; READ
87 82
88 Removed: (define (get-fertilizer-products #:id [id #f]
89 Removed: #:brand-name [brand-name #f])
90 Removed: (define (where-expr)
91 Removed: (define clauses
92 Removed: (filter values
93 Removed: (list (and id (format "id = ~e" id))
94 Removed: (and brand-name (format "brand_name = ~e" brand-name)))))
95 Removed: (cond
96 Removed: [(null? clauses) ""]
97 Removed: [else (format "WHERE ~a" (string-join clauses " AND "))]))
98 Removed: (define query (string-join
99 Removed: `("SELECT id, brand_name"
100 Removed: "FROM fertilizer_products"
101 Removed: ,(where-expr)
102 Removed: "ORDER BY id ASC")))
83 Added: (define (get-fertilizer-products)
103 84 (for/list ([(id* brand-name*)
104 Removed: (in-query (current-conn) query)])
85 Added: (in-query (current-conn)
86 Added: (select id brand_name
87 Added: #:from fertilizer_products
88 Added: #:order-by canonical_name #:asc))])
105 89 (fertilizer-product id* brand-name*)))
106 90
107 91 (define (get-fertilizer-product #:id [id #f]
models/nutrient-measurement.rkt
index 28e3bdcc..d1bd5347 100644..100644
@@ -12,8 +12,7 @@
12 12 nutrient?
13 13 number?))
14 14 nutrient-measurement?)]
15 Removed: [get-nutrient-measurements (-> void?
16 Removed: (listof nutrient-measurement?))]
15 Added: [get-nutrient-measurements (-> (listof nutrient-measurement?))]
17 16 [get-nutrient-measurement (->* ()
18 17 (#:id (or/c #f exact-nonnegative-integer?)
19 18 #:measured-on (or/c #f string?))
@@ -81,10 +80,9 @@
81 80 (define (get-nutrient-measurements)
82 81 (for/list ([(id* measured-on*)
83 82 (in-query (current-conn)
84 Removed: (string-join
85 Removed: `("SELECT id, measured_on"
86 Removed: "FROM nutrient_measurements"
87 Removed: "ORDER BY id ASC")))])
83 Added: (select id measured_on
84 Added: #:from nutrient_measurements
85 Added: #:order-by measured_on #:asc))])
88 86 (nutrient-measurement id* measured-on*)))
89 87
90 88 (define (get-nutrient-measurement #:id [id #f]
models/nutrient-target.rkt
index e9c168ee..29ea52bd 100644..100644
@@ -12,8 +12,7 @@
12 12 nutrient?
13 13 number?))
14 14 nutrient-target?)]
15 Removed: [get-nutrient-targets (-> void?
16 Removed: (listof nutrient-target?))]
15 Added: [get-nutrient-targets (-> (listof nutrient-target?))]
17 16 [get-nutrient-target (->* ()
18 17 (#:id
19 18 (or/c #f exact-nonnegative-integer?)
@@ -84,10 +83,9 @@
84 83 (define (get-nutrient-targets)
85 84 (for/list ([(id* effective-on*)
86 85 (in-query (current-conn)
87 Removed: (string-join
88 Removed: `("SELECT id, effective_on"
89 Removed: "FROM nutrient_targets"
90 Removed: "ORDER BY id ASC")))])
86 Added: (select id effective_on
87 Added: #:from nutrient_targets
88 Added: #:order-by id ASC))])
91 89 (nutrient-target id* effective-on*)))
92 90
93 91 (define (get-nutrient-target #:id [id #f]
models/nutrient.rkt
index 5a32e70c..f2ef4fd9 100644..100644
@@ -8,11 +8,7 @@
8 8 ;; SQL CRUD
9 9 (contract-out
10 10 [create-nutrient! (-> string? string? void?)]
11 Removed: [get-nutrients (->* ()
12 Removed: (#:id (or/c #f exact-nonnegative-integer?)
13 Removed: #:name (or/c #f string?)
14 Removed: #:formula (or/c #f string?))
15 Removed: (listof nutrient?))]
11 Added: [get-nutrients (-> (listof nutrient?))]
16 12 [get-nutrient (->* ()
17 13 (#:id (or/c #f exact-nonnegative-integer?)
18 14 #:name (or/c #f string?)
@@ -42,26 +38,12 @@
42 38
43 39 ;; READ
44 40
45 Removed: (define (get-nutrients #:id [id #f]
46 Removed: #:name [name #f]
47 Removed: #:formula [formula #f])
48 Removed: (define (where-expr)
49 Removed: (define clauses
50 Removed: (filter values
51 Removed: (list
52 Removed: (and id (format "id = ~e" id))
53 Removed: (and name (format "canonical_name = ~e" name))
54 Removed: (and formula (format "formula = ~e" formula)))))
55 Removed: (cond
56 Removed: [(null? clauses) ""]
57 Removed: [else (format "WHERE ~a" (string-join clauses " AND "))]))
41 Added: (define (get-nutrients)
58 42 (for/list ([(id* name* formula*)
59 43 (in-query (current-conn)
60 Removed: (string-join
61 Removed: `("SELECT id, canonical_name, formula"
62 Removed: "FROM nutrients"
63 Removed: ,(where-expr)
64 Removed: "ORDER BY id ASC")))])
44 Added: (select id canonical_name formula
45 Added: #:from nutrients
46 Added: #:order-by id #:asc))])
65 47 (nutrient id* name* formula*)))
66 48
67 49 (define (get-nutrient #:id [id #f]