Refactor error handling

This commit is contained in:
Dimitri Lozeve 2023-10-01 18:38:45 +02:00
parent 5b22260f28
commit d37b15ab2b

View file

@ -19,6 +19,11 @@
•Import"ffi.bqn"
RandID•Import"utils.bqn"
Check{
msg"Curl: "𝕨" ("(•Fmt 𝕩)")"
msg ! 𝕩=0
}
PrepareRequest{session 𝕊 urlheaders:
idRandID 32
filename"/tmp/bqncurl."id
@ -26,22 +31,14 @@ PrepareRequest←{session 𝕊 url‿headers:
headerFilename"/tmp/bqncurl.header."id
headerFilePtrFopenheaderFilename@,"w+"
ruseragentEasySetoptStrsession,curlOptions.useragent,"curl/bqn"@
("Error setting user agent: "•Fmt ruseragent)!ruseragent=0
rurlEasySetoptStrsession,curlOptions.url,url@
("Error setting URL: "•Fmt rurl)!rurl=0
rfileEasySetoptPtrsession,curlOptions.writedata,filePtr
("Error setting file target: "•Fmt rfile)!rfile=0
rheaderfileEasySetoptPtrsession,curlOptions.headerdata,headerFilePtr
("Error setting header file target: "•Fmt rheaderfile)!rheaderfile=0
rredirectEasySetoptLongsession,curlOptions.followlocation,1
("Error setting redirect option: "•Fmt rredirect)!rredirect=0
# EasySetoptLong⟨session,curlOptions.header,1⟩
# EasySetoptLong⟨session,curlOptions.verbose,1⟩
"setting user agent"Check EasySetoptStrsession,curlOptions.useragent,"curl/bqn"@
"setting URL"Check EasySetoptStrsession,curlOptions.url,url@
"setting file target"Check EasySetoptPtrsession,curlOptions.writedata,filePtr
"setting header file target"Check EasySetoptPtrsession,curlOptions.headerdata,headerFilePtr
"setting redirect option"Check EasySetoptLongsession,curlOptions.followlocation,1
# "setting verbosity"Check EasySetoptLong⟨session,curlOptions.verbose,1⟩
slist(80){SlistAppend𝕩,𝕨@}´headers
rheadersEasySetoptPtrsession,curlOptions.httpHeader,slist
("Error setting headers: "•Fmt rheaders)!rheaders=0
"setting headers"Check rheadersEasySetoptPtrsession,curlOptions.httpHeader,slist
slistfilenamefilePtrheaderFilenameheaderFilePtr
}
@ -50,9 +47,9 @@ ReadResponse←{session 𝕊 slist‿filename‿filePtr‿headerFilename‿heade
SlistFreeAll slist
rcodecodeEasyGetinfoLongsession,curlInfo.responseCode,0
("Error retrieving response code: "•Fmt rcode)!rcode=0
"retrieving response code"Check rcode
rtimetimeEasyGetinfoDoublesession,curlInfo.totalTime,0.0
("Error retrieving request time: "•Fmt rtime)!rtime=0
"retrieving request time"Check rtime
Fclose filePtr
Fclose headerFilePtr
@ -77,8 +74,7 @@ headers 𝕊 url:
sessionEasyInit
dsession PrepareRequest urlheaders
rperformEasyPerformsession
("Error performing request: "•Fmt rperform)!rperform=0
"performing request"Check EasyPerformsession
responsesession ReadResponse d
EasyCleanup session
@ -90,15 +86,11 @@ Post←{
headers 𝕊 urldata:
sessionEasyInit
dsession PrepareRequest urlheaders
rpostEasySetoptLongsession,curlOptions.post,1
("Error setting up POST request: "•Fmt rpost)!rpost=0
rpostfieldsEasySetoptStrsession,curlOptions.postfields,data
("Error setting POST data: "•Fmt rpostfields)!rpostfields=0
rpostfieldsizeEasySetoptLongsession,curlOptions.postfieldsize,data
("Error setting POST data size: "•Fmt rpostfieldsize)!rpostfieldsize=0
"setting up POST request"Check EasySetoptLongsession,curlOptions.post,1
"setting POST data"Check EasySetoptStrsession,curlOptions.postfields,data
"setting POST data size"Check EasySetoptLongsession,curlOptions.postfieldsize,data
rperformEasyPerformsession
("Error performing request: "•Fmt rperform)!rperform=0
"performing request"Check EasyPerformsession
responsesession ReadResponse d
EasyCleanup session