aboutsummaryrefslogtreecommitdiff
path: root/hcel-client.el
diff options
context:
space:
mode:
Diffstat (limited to 'hcel-client.el')
-rw-r--r--hcel-client.el20
1 files changed, 14 insertions, 6 deletions
diff --git a/hcel-client.el b/hcel-client.el
index 1e30167..4561af9 100644
--- a/hcel-client.el
+++ b/hcel-client.el
@@ -59,8 +59,10 @@
(defun hcel-definition-site-location-info (approx-location-info)
"Call definitionSite with info from an approximate location."
- (when (string= (hcel-location-tag approx-location-info) "ExactLocation")
- (error "An ExactLocation supplied."))
+ (when (not (equal (hcel-location-tag approx-location-info)
+ "ApproximateLocation"))
+ (error "An non ApproximateLocation supplied: %s"
+ (prin1-to-string approx-location-info)))
(when-let* ((package-id (alist-get 'packageId approx-location-info))
(component-id (alist-get 'componentId approx-location-info))
(module-name (alist-get 'moduleName approx-location-info))
@@ -78,8 +80,12 @@
(hcel-api-definition-site
package-id "lib" module-name entity name)))
-(defun hcel-approx-to-exact-location (approx-location-info)
- "Fetch exact location given approximate location.
+(defun hcel-to-exact-location (location-info)
+ "Returns exact location given location info.
+
+If LOCATION-INFO is approximate, then fetches exact location info
+using the supplied approximate location-info. Otherwise returns
+LOCATION-INFO.
Example of approximate location:
@@ -95,8 +101,10 @@ Example of approximate location:
},
\"tag\": \"ApproximateLocation\"
}"
- (alist-get 'location
- (hcel-definition-site-location-info approx-location-info)))
+ (if (equal (hcel-location-tag location-info) "ApproximateLocation")
+ (alist-get 'location
+ (hcel-definition-site-location-info location-info))
+ location-info))
(defun hcel-api-module-info (package-id module-path)
(hcel-url-fetch-json