Commit from GitHub Actions (Publish APIs & Clients)

This commit is contained in:
asim
2021-10-25 10:42:12 +00:00
parent 55464e8104
commit 30673f9837
10 changed files with 101 additions and 8 deletions

View File

@@ -40,6 +40,7 @@ import (
"github.com/micro/services/clients/go/user"
"github.com/micro/services/clients/go/vehicle"
"github.com/micro/services/clients/go/weather"
"github.com/micro/services/clients/go/youtube"
)
func NewClient(token string) *Client {
@@ -85,6 +86,7 @@ func NewClient(token string) *Client {
UserService: user.NewUserService(token),
VehicleService: vehicle.NewVehicleService(token),
WeatherService: weather.NewWeatherService(token),
YoutubeService: youtube.NewYoutubeService(token),
}
}
@@ -130,4 +132,5 @@ type Client struct {
UserService *user.UserService
VehicleService *vehicle.VehicleService
WeatherService *weather.WeatherService
YoutubeService *youtube.YoutubeService
}

55
clients/go/youtube/youtube.go Executable file
View File

@@ -0,0 +1,55 @@
package youtube
import (
"github.com/m3o/m3o-go/client"
)
func NewYoutubeService(token string) *YoutubeService {
return &YoutubeService{
client: client.NewClient(&client.Options{
Token: token,
}),
}
}
type YoutubeService struct {
client *client.Client
}
// Search for videos on YouTube
func (t *YoutubeService) Search(request *SearchRequest) (*SearchResponse, error) {
rsp := &SearchResponse{}
return rsp, t.client.Call("youtube", "Search", request, rsp)
}
type SearchRequest struct {
// Query to search for
Query string `json:"query"`
}
type SearchResponse struct {
// List of results for the query
Results []SearchResult `json:"results"`
}
type SearchResult struct {
// if live broadcast then indicates activity.
// none, upcoming, live, completed
Broadcasting string `json:"broadcasting"`
// the channel id
ChannelId string `json:"channelId"`
// the channel title
ChannelTitle string `json:"channelTitle"`
// the result description
Description string `json:"description"`
// id of the result
Id string `json:"id"`
// kind of result; "video", "channel", "playlist"
Kind string `json:"kind"`
// published at time
PublishedAt string `json:"publishedAt"`
// title of the result
Title string `json:"title"`
// the associated url
Url string `json:"url"`
}