summaryrefslogtreecommitdiff
path: root/backupdesk/ted/fetch.hoon
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-09-17 12:24:41 +0700
committerpolwex <polwex@sortug.com>2025-09-17 12:24:41 +0700
commit387af8fc1603805b02ce03f8adba4fa73a954f7c (patch)
tree6ac4fe9c33a14d9da418a97955a38efb9338d869 /backupdesk/ted/fetch.hoon
parent31a47ce72255bb56920e417d250541b04be82648 (diff)
relay much more robust
Diffstat (limited to 'backupdesk/ted/fetch.hoon')
-rw-r--r--backupdesk/ted/fetch.hoon23
1 files changed, 23 insertions, 0 deletions
diff --git a/backupdesk/ted/fetch.hoon b/backupdesk/ted/fetch.hoon
new file mode 100644
index 0000000..76817f6
--- /dev/null
+++ b/backupdesk/ted/fetch.hoon
@@ -0,0 +1,23 @@
+/- spider
+/+ strandio
+=, strand=strand:spider
+=, dejs-soft:format
+=, strand-fail=strand-fail:libstrand:spider
+^- thread:spider
+|= arg=vase
+ =/ request ;;(request:http q.arg)
+ =/ m (strand ,vase) ^- form:m
+ :: =/ m (strand ,json) ^- form:m
+ ;< ~ bind:m (send-request:strandio request)
+ ;< res=client-response:iris bind:m take-client-response:strandio
+ ?. ?=(%finished -.res) (strand-fail:strand %no-body ~)
+ :: =/ headers headers.response-header.res
+ :: =/ redirect (get-header:http 'location' headers)
+ :: ?^ redirect (pure:m [%| u.redirect])
+
+ ::
+ ?~ full-file.res (strand-fail:strand %no-body ~)
+ =/ body=@t q.data.u.full-file.res
+ :: ~& resbody=body
+ =/ json [%s body]
+ (pure:m !>(json))