Commit from GitHub Actions (Generate Clients & Examples)

This commit is contained in:
asim
2021-11-03 14:46:11 +00:00
parent 8827af19f5
commit 4234070dd0
12 changed files with 162 additions and 25 deletions

View File

@@ -16,36 +16,71 @@ type StreamService struct {
client *client.Client client *client.Client
} }
// Publish a message to the stream. Specify a topic to group messages for a specific topic. // List all the active channels
func (t *StreamService) Publish(request *PublishRequest) (*PublishResponse, error) { func (t *StreamService) ListChannels(request *ListChannelsRequest) (*ListChannelsResponse, error) {
rsp := &PublishResponse{} rsp := &ListChannelsResponse{}
return rsp, t.client.Call("stream", "Publish", request, rsp) return rsp, t.client.Call("stream", "ListChannels", request, rsp)
} }
// Subscribe to messages for a given topic. // List messages for a given channel
func (t *StreamService) Subscribe(request *SubscribeRequest) (*SubscribeResponse, error) { func (t *StreamService) ListMessages(request *ListMessagesRequest) (*ListMessagesResponse, error) {
rsp := &SubscribeResponse{} rsp := &ListMessagesResponse{}
return rsp, t.client.Call("stream", "Subscribe", request, rsp) return rsp, t.client.Call("stream", "ListMessages", request, rsp)
} }
type PublishRequest struct { // SendMessage a message to the stream.
// The json message to publish func (t *StreamService) SendMessage(request *SendMessageRequest) (*SendMessageResponse, error) {
Message map[string]interface{} `json:"message"` rsp := &SendMessageResponse{}
// The topic to publish to return rsp, t.client.Call("stream", "SendMessage", request, rsp)
Topic string `json:"topic"`
} }
type PublishResponse struct { type Channel struct {
// last activity time
LastActive string `json:"lastActive"`
// name of the channel
Name string `json:"name"`
} }
type SubscribeRequest struct { type ListChannelsRequest struct {
// The topic to subscribe to
Topic string `json:"topic"`
} }
type SubscribeResponse struct { type ListChannelsResponse struct {
// The next json message on the topic Channels []Channel `json:"channels"`
Message map[string]interface{} `json:"message"` }
// The topic subscribed to
Topic string `json:"topic"` type ListMessagesRequest struct {
// The channel to subscribe to
Channel string `json:"channel"`
// number of message to return
Limit int32 `json:"limit"`
}
type ListMessagesResponse struct {
// The channel subscribed to
Channel string `json:"channel"`
// Messages are chronological order
Messages []Message `json:"messages"`
}
type Message struct {
// the channel name
Channel string `json:"channel"`
// id of the message
Id string `json:"id"`
// the associated metadata
Metadata map[string]string `json:"metadata"`
// text of the message
Text string `json:"text"`
// time of message creation
Timestamp string `json:"timestamp"`
}
type SendMessageRequest struct {
// The channel to send to
Channel string `json:"channel"`
// The message text to send
Text string `json:"text"`
}
type SendMessageResponse struct {
} }

View File

@@ -78,5 +78,5 @@
"prepare": "npm run build" "prepare": "npm run build"
}, },
"types": "index.d.ts", "types": "index.d.ts",
"version": "1.0.615" "version": "1.0.618"
} }

View File

@@ -12,10 +12,10 @@ func CreateArecord() {
dbService := db.NewDbService(os.Getenv("MICRO_API_TOKEN")) dbService := db.NewDbService(os.Getenv("MICRO_API_TOKEN"))
rsp, err := dbService.Create(&db.CreateRequest{ rsp, err := dbService.Create(&db.CreateRequest{
Record: map[string]interface{}{ Record: map[string]interface{}{
"id": "1",
"name": "Jane",
"age": 42, "age": 42,
"isActive": true, "isActive": true,
"id": "1",
"name": "Jane",
}, },
Table: "users", Table: "users",
}) })

View File

@@ -0,0 +1,4 @@
curl "https://api.m3o.com/v1/stream/ListChannels" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $MICRO_API_TOKEN" \
-d '{}'

View File

@@ -0,0 +1,15 @@
package example
import (
"fmt"
"os"
"github.com/micro/services/clients/go/stream"
)
// List all the active channels
func ListChannels() {
streamService := stream.NewStreamService(os.Getenv("MICRO_API_TOKEN"))
rsp, err := streamService.ListChannels(&stream.ListChannelsRequest{})
fmt.Println(rsp, err)
}

View File

@@ -0,0 +1,10 @@
const { StreamService } = require("m3o/stream");
// List all the active channels
async function listChannels() {
let streamService = new StreamService(process.env.MICRO_API_TOKEN);
let rsp = await streamService.listChannels({});
console.log(rsp);
}
listChannels();

View File

@@ -0,0 +1,6 @@
curl "https://api.m3o.com/v1/stream/ListMessages" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $MICRO_API_TOKEN" \
-d '{
"channel": "general"
}'

View File

@@ -0,0 +1,17 @@
package example
import (
"fmt"
"os"
"github.com/micro/services/clients/go/stream"
)
// List messages for a given channel
func ListMessages() {
streamService := stream.NewStreamService(os.Getenv("MICRO_API_TOKEN"))
rsp, err := streamService.ListMessages(&stream.ListMessagesRequest{
Channel: "general",
})
fmt.Println(rsp, err)
}

View File

@@ -0,0 +1,12 @@
const { StreamService } = require("m3o/stream");
// List messages for a given channel
async function listMessages() {
let streamService = new StreamService(process.env.MICRO_API_TOKEN);
let rsp = await streamService.listMessages({
channel: "general",
});
console.log(rsp);
}
listMessages();

View File

@@ -0,0 +1,7 @@
curl "https://api.m3o.com/v1/stream/SendMessage" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $MICRO_API_TOKEN" \
-d '{
"channel": "general",
"text": "Hey checkout this tweet https://twitter.com/m3oservices/status/1455291054295498752"
}'

View File

@@ -0,0 +1,18 @@
package example
import (
"fmt"
"os"
"github.com/micro/services/clients/go/stream"
)
// SendMessage a message to the stream.
func SendAmessage() {
streamService := stream.NewStreamService(os.Getenv("MICRO_API_TOKEN"))
rsp, err := streamService.SendMessage(&stream.SendMessageRequest{
Channel: "general",
Text: "Hey checkout this tweet https://twitter.com/m3oservices/status/1455291054295498752",
})
fmt.Println(rsp, err)
}

View File

@@ -0,0 +1,13 @@
const { StreamService } = require("m3o/stream");
// SendMessage a message to the stream.
async function sendAmessage() {
let streamService = new StreamService(process.env.MICRO_API_TOKEN);
let rsp = await streamService.sendMessage({
channel: "general",
text: "Hey checkout this tweet https://twitter.com/m3oservices/status/1455291054295498752",
});
console.log(rsp);
}
sendAmessage();