From be394a39bb07edee2231373afbbe78952969853d Mon Sep 17 00:00:00 2001 From: Syuparn Date: Sat, 10 Jun 2023 20:09:28 +0900 Subject: [PATCH] native: add http module --- di/import_test.go | 4 ++++ native/modules/dummy_native_wrong.pangaea | 1 + native/modules/http.pangaea | 24 +++++++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 native/modules/dummy_native_wrong.pangaea create mode 100644 native/modules/http.pangaea diff --git a/di/import_test.go b/di/import_test.go index 6db5c94..62e4608 100644 --- a/di/import_test.go +++ b/di/import_test.go @@ -96,6 +96,10 @@ func TestEvalKernelImportError(t *testing.T) { `import("notfound")`, object.NewFileNotFoundErr("failed to read native module \"notfound\": open modules/notfound.pangaea: file does not exist"), }, + { + `import("dummy_native_wrong")`, + object.NewSyntaxErr("failed to parse"), + }, } for _, tt := range tests { diff --git a/native/modules/dummy_native_wrong.pangaea b/native/modules/dummy_native_wrong.pangaea new file mode 100644 index 0000000..ca49acb --- /dev/null +++ b/native/modules/dummy_native_wrong.pangaea @@ -0,0 +1 @@ +1 + diff --git a/native/modules/http.pangaea b/native/modules/http.pangaea new file mode 100644 index 0000000..0b19882 --- /dev/null +++ b/native/modules/http.pangaea @@ -0,0 +1,24 @@ +_internal := import("http/internal") + +Response := { + new: _init('status, 'body, 'headers), +} + +Client := { + get: m{|url, headers: {}, queries: {}| + _internal['request](method: 'GET, url: url, headers: headers, queries: queries).{self._toResponse(\)} + }, + post: m{|url, headers: {}, body: ""| + _internal['request](method: 'POST, url: url, headers: headers, body: body).{self._toResponse(\)} + }, + put: m{|url, headers: {}, body: ""| + _internal['request](method: 'PUT, url: url, headers: headers, body: body).{self._toResponse(\)} + }, + delete: m{|url, headers: {}, queries: {}| + _internal['request](method: 'DELETE, url: url, headers: headers, queries: queries).{self._toResponse(\)} + }, + patch: m{|url, headers: {}, body: ""| + _internal['request](method: 'PATCH, url: url, headers: headers, body: body).{self._toResponse(\)} + }, + _toResponse: m{|r| Response.new(r.status, r.body, r.headers)}, +}