Documentation
¶
Index ¶
- type Event
- type HttpEvent
- func (e HttpEvent) Body() HttpEventBody
- func (e HttpEvent) Headers() HttpEventHeaders
- func (e HttpEvent) Host() (string, error)
- func (e HttpEvent) Method() (string, error)
- func (e HttpEvent) Path() (string, error)
- func (e HttpEvent) Query() HttpQueries
- func (e HttpEvent) Return(code int) error
- func (e HttpEvent) UserAgent() (string, error)
- func (e HttpEvent) Write(data []byte) (int, error)
- type HttpEventBody
- type HttpEventHeaders
- type HttpQueries
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Event ¶
type Event uint32
func (Event) HTTP ¶
Example ¶
package main
import (
"fmt"
"io/ioutil"
symbols "bitbucket.org/taubyte/go-sdk-symbols/event"
"bitbucket.org/taubyte/go-sdk/common"
"bitbucket.org/taubyte/go-sdk/event"
)
// Taubyte example function that gets an http call
func httpExample(e event.Event) uint32 {
httpEvent, err := e.HTTP()
if err != nil {
return 1
}
body := httpEvent.Body()
data, err := ioutil.ReadAll(body)
if err != nil {
return 1
}
fmt.Println("Body:", string(data))
err = body.Close()
if err != nil {
return 1
}
host, err := httpEvent.Host()
if err != nil {
return 1
}
fmt.Println("Host:", host)
method, err := httpEvent.Method()
if err != nil {
return 1
}
fmt.Println("Method:", method)
path, err := httpEvent.Path()
if err != nil {
return 1
}
fmt.Println("Path:", path)
userAgent, err := httpEvent.UserAgent()
if err != nil {
return 1
}
fmt.Println("UserAgent:", userAgent)
headers, err := httpEvent.Headers().List()
if err != nil {
return 1
}
fmt.Println("Headers:", headers)
contentType, err := httpEvent.Headers().Get("Content-Type")
if err != nil {
return 1
}
fmt.Println("ContentType:", contentType)
queries, err := httpEvent.Query().List()
if err != nil {
return 1
}
fmt.Println("Queries:", queries)
username, err := httpEvent.Query().Get("username")
if err != nil {
return 1
}
fmt.Println("Username:", username)
err = httpEvent.Return(200)
if err != nil {
return 1
}
_, err = httpEvent.Write([]byte("Hello from the other side!"))
if err != nil {
return 1
}
return 0
}
func main() {
// Mocking the calls to the vm for usage in tests and playground
m := symbols.MockData{
EventType: common.EventTypeHttp,
Body: []byte("Hello, world!"),
Host: "taubyte.com",
Method: "POST",
Path: "/console/v1",
UserAgent: "Mozilla/5.0 (X11; Linux x86_64)",
Headers: map[string]string{
"Content-Type": "application/json",
},
Queries: map[string]string{
"username": "taubyte",
},
}.Mock()
if httpExample(0) != 0 {
return
}
fmt.Println("ReturnCode:", m.ReturnCode)
fmt.Println("Sent:", string(m.ReturnBody))
}
Output: Body: Hello, world! Host: taubyte.com Method: POST Path: /console/v1 UserAgent: Mozilla/5.0 (X11; Linux x86_64) Headers: [Content-Type] ContentType: application/json Queries: [username] Username: taubyte ReturnCode: 200 Sent: Hello from the other side!
func (Event) P2P ¶
Gives a p2pEvent if the current function is called through p2p
Example ¶
package main
import (
"fmt"
symbols "bitbucket.org/taubyte/go-sdk-symbols/p2p/event"
"bitbucket.org/taubyte/go-sdk/event"
"github.com/ipfs/go-cid"
)
// Taubyte example function that gets a p2p call
func p2pExample(e event.Event) uint32 {
// Confirm that this is a p2p event
p2pEvent, err := e.P2P()
if err != nil {
return 1
}
// The data that was sent over p2p to this function
data, err := p2pEvent.Data()
if err != nil {
return 1
}
fmt.Println("Data:", string(data))
// The protocol that was called to reach this function
protocol, err := p2pEvent.Protocol()
if err != nil {
return 1
}
fmt.Println("Protocol:", protocol)
// The Command that was called to reach this function
command, err := p2pEvent.Command()
if err != nil {
return 1
}
fmt.Println("Command:", command)
// The cid of the node that sent the p2p request
from, err := p2pEvent.From()
if err != nil {
return 1
}
fmt.Println("From:", from.String())
// The cid of the receiving node, or the node that this function is running on
to, err := p2pEvent.To()
if err != nil {
return 1
}
fmt.Println("To:", to.String())
// Write the response
err = p2pEvent.Write([]byte("Hello from the other side!"))
if err != nil {
return 1
}
return 0
}
func main() {
// Mocking the calls to the vm for usage in tests and playground
fromCid, _ := cid.Parse("QmZjBpQzRw8UovKaMoWJ3qvQrHZvErqQuXNyXNusm4XYK3")
toCid, _ := cid.Parse("QmTLqapULGiA5ZFWk2ckEjKq2B6kGVuFUF1frSAeeGjuGt")
m := symbols.MockData{
From: fromCid,
To: toCid,
Command: "ping",
Protocol: "/test/v1",
Data: []byte("Hello, world!"),
}.Mock()
if p2pExample(0) != 0 {
return
}
fmt.Println("Sent:", string(m.DataToSend))
}
Output: Data: Hello, world! Protocol: /test/v1 Command: ping From: QmZjBpQzRw8UovKaMoWJ3qvQrHZvErqQuXNyXNusm4XYK3 To: QmTLqapULGiA5ZFWk2ckEjKq2B6kGVuFUF1frSAeeGjuGt Sent: Hello from the other side!
func (Event) PubSub ¶
func (e Event) PubSub() (pubsub.PubSubEvent, error)
Example ¶
package main
import (
"fmt"
symbols "bitbucket.org/taubyte/go-sdk-symbols/pubsub"
"bitbucket.org/taubyte/go-sdk/event"
)
// Taubyte example function that gets a Pub-Sub call
func pubSubExample(e event.Event) uint32 {
// Confirm that this is a p2p event
pubSubEvent, err := e.PubSub()
if err != nil {
return 1
}
// The data sent to the pub-sub function
data, err := pubSubEvent.Data()
if err != nil {
return 1
}
fmt.Println("Data:", string(data))
// The Channel that this function was called through
channel, err := pubSubEvent.Channel()
if err != nil {
return 1
}
fmt.Println("Channel:", channel.Name())
return 0
}
func main() {
// Mocking the calls to the vm for usage in tests and playground
symbols.MockData{
Channel: "someChannel",
EventData: []byte("Hello, world!"),
}.Mock()
if pubSubExample(0) != 0 {
return
}
}
Output: Data: Hello, world! Channel: someChannel
type HttpEvent ¶
type HttpEvent uint32
func (HttpEvent) Body ¶
func (e HttpEvent) Body() HttpEventBody
Example ¶
package main
import (
"fmt"
"io/ioutil"
symbols "bitbucket.org/taubyte/go-sdk-symbols/event"
"bitbucket.org/taubyte/go-sdk/common"
"bitbucket.org/taubyte/go-sdk/event"
)
func main() {
// Mocking the calls to the vm for usage in tests and playground
symbols.MockData{
EventType: common.EventTypeHttp,
Body: []byte("Hello, world!"),
}.Mock()
var e event.Event
httpEvent, err := e.HTTP()
if err != nil {
return
}
body := httpEvent.Body()
data, err := ioutil.ReadAll(body)
if err != nil {
return
}
err = body.Close()
if err != nil {
return
}
fmt.Println(string(data))
}
Output: Hello, world!
func (HttpEvent) Headers ¶
func (e HttpEvent) Headers() HttpEventHeaders
Example ¶
package main
import (
"fmt"
symbols "bitbucket.org/taubyte/go-sdk-symbols/event"
"bitbucket.org/taubyte/go-sdk/common"
"bitbucket.org/taubyte/go-sdk/event"
)
func main() {
// Mocking the calls to the vm for usage in tests and playground
symbols.MockData{
EventType: common.EventTypeHttp,
Headers: map[string]string{
"Content-Type": "application/json",
},
}.Mock()
var e event.Event
httpEvent, err := e.HTTP()
if err != nil {
return
}
headers := httpEvent.Headers()
contentType, err := headers.Get("Content-Type")
if err != nil {
return
}
fmt.Println("Received content type:", contentType)
headersList, err := headers.List()
if err != nil {
return
}
fmt.Println("Headers:", headersList)
err = headers.Set("Content-Type", "text/csv")
if err != nil {
return
}
contentType, err = headers.Get("Content-Type")
if err != nil {
return
}
fmt.Println("New content type:", contentType)
}
Output: Received content type: application/json Headers: [Content-Type] New content type: text/csv
func (HttpEvent) Host ¶
Example ¶
package main
import (
"fmt"
symbols "bitbucket.org/taubyte/go-sdk-symbols/event"
"bitbucket.org/taubyte/go-sdk/common"
"bitbucket.org/taubyte/go-sdk/event"
)
func main() {
// Mocking the calls to the vm for usage in tests and playground
symbols.MockData{
EventType: common.EventTypeHttp,
Host: "hal.computers.com",
}.Mock()
var e event.Event
httpEvent, err := e.HTTP()
if err != nil {
return
}
host, err := httpEvent.Host()
if err != nil {
return
}
fmt.Println("Host:", host)
}
Output: Host: hal.computers.com
func (HttpEvent) Method ¶
Example ¶
package main
import (
"fmt"
symbols "bitbucket.org/taubyte/go-sdk-symbols/event"
"bitbucket.org/taubyte/go-sdk/common"
"bitbucket.org/taubyte/go-sdk/event"
)
func main() {
// Mocking the calls to the vm for usage in tests and playground
symbols.MockData{
EventType: common.EventTypeHttp,
Method: "POST",
}.Mock()
var e event.Event
httpEvent, err := e.HTTP()
if err != nil {
return
}
method, err := httpEvent.Method()
if err != nil {
return
}
fmt.Println("Method:", method)
}
Output: Method: POST
func (HttpEvent) Path ¶
Example ¶
package main
import (
"fmt"
symbols "bitbucket.org/taubyte/go-sdk-symbols/event"
"bitbucket.org/taubyte/go-sdk/common"
"bitbucket.org/taubyte/go-sdk/event"
)
func main() {
// Mocking the calls to the vm for usage in tests and playground
symbols.MockData{
EventType: common.EventTypeHttp,
Path: "/test/v1",
}.Mock()
var e event.Event
httpEvent, err := e.HTTP()
if err != nil {
return
}
path, err := httpEvent.Path()
if err != nil {
return
}
fmt.Println("Path:", path)
}
Output: Path: /test/v1
func (HttpEvent) Query ¶
func (e HttpEvent) Query() HttpQueries
Example ¶
package main
import (
"fmt"
symbols "bitbucket.org/taubyte/go-sdk-symbols/event"
"bitbucket.org/taubyte/go-sdk/common"
"bitbucket.org/taubyte/go-sdk/event"
)
func main() {
// Mocking the calls to the vm for usage in tests and playground
symbols.MockData{
EventType: common.EventTypeHttp,
Queries: map[string]string{
"username": "taubyte",
},
}.Mock()
var e event.Event
httpEvent, err := e.HTTP()
if err != nil {
return
}
query := httpEvent.Query()
username, err := query.Get("username")
if err != nil {
return
}
if username != "taubyte" {
return
}
queryList, err := query.List()
if err != nil {
return
}
fmt.Println("Queries:", queryList)
}
Output: Queries: [username]
func (HttpEvent) Return ¶
Example ¶
package main
import (
"fmt"
symbols "bitbucket.org/taubyte/go-sdk-symbols/event"
"bitbucket.org/taubyte/go-sdk/common"
"bitbucket.org/taubyte/go-sdk/event"
)
func main() {
// Mocking the calls to the vm for usage in tests and playground
m := symbols.MockData{
EventType: common.EventTypeHttp,
}.Mock()
var e event.Event
httpEvent, err := e.HTTP()
if err != nil {
return
}
err = httpEvent.Return(404)
if err != nil {
return
}
fmt.Println("Code:", m.ReturnCode)
}
Output: Code: 404
func (HttpEvent) UserAgent ¶
Example ¶
package main
import (
"fmt"
symbols "bitbucket.org/taubyte/go-sdk-symbols/event"
"bitbucket.org/taubyte/go-sdk/common"
"bitbucket.org/taubyte/go-sdk/event"
)
func main() {
// Mocking the calls to the vm for usage in tests and playground
symbols.MockData{
EventType: common.EventTypeHttp,
UserAgent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/517.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/5447.36",
}.Mock()
var e event.Event
httpEvent, err := e.HTTP()
if err != nil {
return
}
path, err := httpEvent.UserAgent()
if err != nil {
return
}
fmt.Println("UserAgent:", path)
}
Output: UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/517.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/5447.36
func (HttpEvent) Write ¶
Example ¶
package main
import (
"fmt"
symbols "bitbucket.org/taubyte/go-sdk-symbols/event"
"bitbucket.org/taubyte/go-sdk/common"
"bitbucket.org/taubyte/go-sdk/event"
)
func main() {
// Mocking the calls to the vm for usage in tests and playground
m := symbols.MockData{
EventType: common.EventTypeHttp,
}.Mock()
var e event.Event
httpEvent, err := e.HTTP()
if err != nil {
return
}
toWrite := []byte("Hello, world!")
n, err := httpEvent.Write(toWrite)
if err != nil {
return
}
if len(toWrite) != n {
return
}
fmt.Println("ReturnBody:", string(m.ReturnBody))
}
Output: ReturnBody: Hello, world!
type HttpEventBody ¶
type HttpEventBody uint32
func (HttpEventBody) Close ¶
func (b HttpEventBody) Close() error
type HttpEventHeaders ¶
type HttpEventHeaders uint32
func (HttpEventHeaders) List ¶
func (e HttpEventHeaders) List() ([]string, error)
func (HttpEventHeaders) Set ¶
func (e HttpEventHeaders) Set(key, value string) error
type HttpQueries ¶
type HttpQueries uint32
func (HttpQueries) List ¶
func (e HttpQueries) List() ([]string, error)
Click to show internal directories.
Click to hide internal directories.