🧰 Helpers
🚧 this is a work in progress
Success and Failure
introduced in v0.0.4
Success
and Failure
copy an []byte
to the shared memory, and return the position and the length of the value "packed" into a single value (uint64
).
If you use Success
, the []byte
is prefixed by rune('S')
before being copied to the shared memory.
If you use Failure
, the []byte
is prefixed by rune('F')
before being copied to the shared memory.
This value will be used by the function CallHandleFunction
of the Host SDK that will use the Result
function to extract the result status (success or failure) and the result value (value or error).
| // Package main
package main
import (
"strconv"
"github.com/bots-garden/capsule-module-sdk"
)
// OnHealthCheck function
//export OnHealthCheck
func OnHealthCheck() uint64 {
capsule.Print("⛑️ OnHealthCheck")
response := capsule.HTTPResponse{
JSONBody: `{"message": "OK"}`,
Headers: `{"Content-Type": "application/json; charset=utf-8"}`,
StatusCode: 200,
}
return capsule.Success([]byte(capsule.StringifyHTTPResponse(response)))
}
func main() {
capsule.SetHandleHTTP(func (param capsule.HTTPRequest) (capsule.HTTPResponse, error) {
return capsule.HTTPResponse{
TextBody: "👋 Hey",
Headers: `{"Content-Type": "text/plain; charset=utf-8"}`,
StatusCode: 200,
}, nil
})
}
|
👋 don't forget to export the OnHealthCheck
function
StringifyHTTPResponse
introduced in v0.0.4
StringifyHTTPResponse
converts a capsule.HTTPResponse
into a string.
| response := capsule.HTTPResponse{
JSONBody: `{"message": "OK"}`,
Headers: `{"Content-Type": "application/json; charset=utf-8"}`,
StatusCode: 200,
}
str := capsule.StringifyHTTPResponse(response)
|