about summary refs log tree commit diff
path: root/web/gn-uri.scm
diff options
context:
space:
mode:
Diffstat (limited to 'web/gn-uri.scm')
-rw-r--r--web/gn-uri.scm75
1 files changed, 75 insertions, 0 deletions
diff --git a/web/gn-uri.scm b/web/gn-uri.scm
new file mode 100644
index 0000000..a4292f0
--- /dev/null
+++ b/web/gn-uri.scm
@@ -0,0 +1,75 @@
+(define-module (web gn-uri)
+  #:use-module (ice-9 string-fun)
+
+  #:export (
+            get-version
+            ; url-parse-id
+            ; normalize-id
+            ; strip-lang
+            mk-meta
+            mk-data
+            mk-doc
+            prefix
+            url-parse-id
+            normalize-id
+            ))
+
+
+
+(define (normalize-id str)
+  ;; (string-replace-substring (string-downcase str) " " "_")
+  (string-replace-substring str " " "_")
+  )
+
+(define (url-parse-id uri)
+  (if uri
+      (car (reverse (string-split uri #\057)))
+      "unknown"
+      ))
+
+
+(define get-version
+  "2.0")
+
+; (define (base-url)
+;  "https://luna.genenetwork.org")
+
+;(define (prefix)
+;  "Build the API URL including version"
+;  (string-append (base-url) "/api/v" get-version))
+
+(define (base-url)
+  "http://localhost:8091")
+
+(define (prefix)
+  "Build the API URL including version"
+  (base-url))
+
+(define* (mk-url postfix #:optional (ext ""))
+  "Add the path to the API URL"
+  (string-append (prefix) "/" postfix ext))
+
+(define (mk-html path)
+  "Create a pointer to HTML documentation"
+  (string-append (base-url) "/" path ".html"))
+
+(define (mk-doc path)
+  "Create a pointer to HTML documentation"
+  (mk-html (string-append "doc/" path)))
+
+(define (mk-meta path)
+  "Create a meta URL for the API path"
+  (mk-url path ".meta.json"))
+
+(define (mk-data path)
+  "Create a JSON URL for the API path"
+  (mk-url path ".json"))
+
+(define (mk-term postfix)
+  (mk-html (string-append "term" "/" postfix)))
+
+(define (mk-id postfix)
+  (mk-html (string-append "id" "/" postfix)))
+
+(define (mk-predicate postfix)
+  (mk-html (string-append "predicate" "/" postfix)))