Documentation
¶
Index ¶
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" httpEventSym "github.com/taubyte/go-sdk-symbols/http/event" "github.com/taubyte/go-sdk/common" "github.com/taubyte/go-sdk/event" ) // Taubyte example function that gets an http call func httpExample(e event.Event) uint32 { // Confirm that this is a http event 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 } // The host or fqdn used to reach this function host, err := httpEvent.Host() if err != nil { return 1 } fmt.Println("Host:", host) // The Method that was called to reach this function method, err := httpEvent.Method() if err != nil { return 1 } fmt.Println("Method:", method) // The url path not including the host used to reach this function path, err := httpEvent.Path() if err != nil { return 1 } fmt.Println("Path:", path) // The user agent of the http request userAgent, err := httpEvent.UserAgent() if err != nil { return 1 } fmt.Println("UserAgent:", userAgent) // The headers of the http request 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) // A list of queries sent in the url queries, err := httpEvent.Query().List() if err != nil { return 1 } fmt.Println("Queries:", queries) // The username query username, err := httpEvent.Query().Get("username") if err != nil { return 1 } fmt.Println("Username:", username) // Write the return code err = httpEvent.Return(200) if err != nil { return 1 } // Write the http response _, 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 := httpEventSym.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" "github.com/ipfs/go-cid" symbols "github.com/taubyte/go-sdk-symbols/p2p/event" "github.com/taubyte/go-sdk/event" ) // 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 ¶
Example ¶
package main import ( "fmt" symbols "github.com/taubyte/go-sdk-symbols/pubsub/event" "github.com/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
Click to show internal directories.
Click to hide internal directories.