Skip to content

Commit 53e0cb6

Browse files
authored
Merge pull request #15 from chatbotkit/next
Release go-sdk
2 parents 648a866 + 71ed05e commit 53e0cb6

13 files changed

Lines changed: 1022 additions & 585 deletions

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ client.Integration.Trigger.Execution // Trigger execution management
108108
client.Integration.Twilio // Twilio integrations
109109
client.Integration.Email // Email integrations
110110
client.Integration.McpServer // MCP server integrations
111-
client.Integration.Teams // Teams integrations
111+
client.Integration.Microsoftteams // Microsoft Teams integrations
112112
client.Integration.GoogleChat // Google Chat integrations
113113
client.Memory // Memory management
114114
client.Partner // Partner operations

portable-embedded-agent

-9.27 MB
Binary file not shown.

sdk/integration/discord.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,3 +88,14 @@ func (c *DiscordClient) Setup(ctx context.Context, discordID string) (*types.Int
8888
}
8989
return &result, nil
9090
}
91+
92+
// Initiate initiates a Discord integration conversation.
93+
func (c *DiscordClient) Initiate(ctx context.Context, discordID string, req types.DiscordInitiateRequest) (*types.DiscordInitiateResponse, error) {
94+
path := fmt.Sprintf("/api/v1/integration/discord/%s/initiate", discordID)
95+
96+
var result types.DiscordInitiateResponse
97+
if err := c.httpClient.Post(ctx, path, req, &result); err != nil {
98+
return nil, err
99+
}
100+
return &result, nil
101+
}

sdk/integration/googlechat.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,3 +86,14 @@ func (c *GoogleChatClient) Setup(ctx context.Context, googleChatID string) (*typ
8686
}
8787
return &result, nil
8888
}
89+
90+
// Initiate initiates a Google Chat integration conversation.
91+
func (c *GoogleChatClient) Initiate(ctx context.Context, googleChatID string, req types.GooglechatInitiateRequest) (*types.GooglechatInitiateResponse, error) {
92+
path := fmt.Sprintf("/api/v1/integration/googlechat/%s/initiate", googleChatID)
93+
94+
var result types.GooglechatInitiateResponse
95+
if err := c.httpClient.Post(ctx, path, req, &result); err != nil {
96+
return nil, err
97+
}
98+
return &result, nil
99+
}

sdk/integration/instagram.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,3 +88,14 @@ func (c *InstagramClient) Setup(ctx context.Context, instagramID string) (*types
8888
}
8989
return &result, nil
9090
}
91+
92+
// Initiate initiates an Instagram integration conversation.
93+
func (c *InstagramClient) Initiate(ctx context.Context, instagramID string, req types.InstagramInitiateRequest) (*types.InstagramInitiateResponse, error) {
94+
path := fmt.Sprintf("/api/v1/integration/instagram/%s/initiate", instagramID)
95+
96+
var result types.InstagramInitiateResponse
97+
if err := c.httpClient.Post(ctx, path, req, &result); err != nil {
98+
return nil, err
99+
}
100+
return &result, nil
101+
}

sdk/integration/integration.go

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -38,32 +38,32 @@ type Client struct {
3838
Email *EmailClient
3939
// McpServer provides access to MCP server integration resources.
4040
McpServer *McpServerClient
41-
// Teams provides access to Teams integration resources.
42-
Teams *TeamsClient
41+
// Microsoftteams provides access to Microsoft Teams integration resources.
42+
Microsoftteams *MicrosoftteamsClient
4343
// GoogleChat provides access to Google Chat integration resources.
4444
GoogleChat *GoogleChatClient
4545
}
4646

4747
// NewClient creates a new IntegrationClient.
4848
func NewClient(httpClient *httpclient.Client) *Client {
4949
return &Client{
50-
httpClient: httpClient,
51-
Widget: NewWidgetClient(httpClient),
52-
Slack: NewSlackClient(httpClient),
53-
Discord: NewDiscordClient(httpClient),
54-
WhatsApp: NewWhatsAppClient(httpClient),
55-
Telegram: NewTelegramClient(httpClient),
56-
Messenger: NewMessengerClient(httpClient),
57-
Instagram: NewInstagramClient(httpClient),
58-
Notion: NewNotionClient(httpClient),
59-
Sitemap: NewSitemapClient(httpClient),
60-
Support: NewSupportClient(httpClient),
61-
Extract: NewExtractClient(httpClient),
62-
Trigger: NewTriggerClient(httpClient),
63-
Twilio: NewTwilioClient(httpClient),
64-
Email: NewEmailClient(httpClient),
65-
McpServer: NewMcpServerClient(httpClient),
66-
Teams: NewTeamsClient(httpClient),
67-
GoogleChat: NewGoogleChatClient(httpClient),
50+
httpClient: httpClient,
51+
Widget: NewWidgetClient(httpClient),
52+
Slack: NewSlackClient(httpClient),
53+
Discord: NewDiscordClient(httpClient),
54+
WhatsApp: NewWhatsAppClient(httpClient),
55+
Telegram: NewTelegramClient(httpClient),
56+
Messenger: NewMessengerClient(httpClient),
57+
Instagram: NewInstagramClient(httpClient),
58+
Notion: NewNotionClient(httpClient),
59+
Sitemap: NewSitemapClient(httpClient),
60+
Support: NewSupportClient(httpClient),
61+
Extract: NewExtractClient(httpClient),
62+
Trigger: NewTriggerClient(httpClient),
63+
Twilio: NewTwilioClient(httpClient),
64+
Email: NewEmailClient(httpClient),
65+
McpServer: NewMcpServerClient(httpClient),
66+
Microsoftteams: NewMicrosoftteamsClient(httpClient),
67+
GoogleChat: NewGoogleChatClient(httpClient),
6868
}
6969
}

sdk/integration/integration_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func TestIntegrationClients(t *testing.T) {
3131
{"Twilio", client.Integration.Twilio},
3232
{"Email", client.Integration.Email},
3333
{"McpServer", client.Integration.McpServer},
34-
{"Teams", client.Integration.Teams},
34+
{"Microsoftteams", client.Integration.Microsoftteams},
3535
{"GoogleChat", client.Integration.GoogleChat},
3636
}
3737

sdk/integration/messenger.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,3 +88,14 @@ func (c *MessengerClient) Setup(ctx context.Context, messengerID string) (*types
8888
}
8989
return &result, nil
9090
}
91+
92+
// Initiate initiates a Messenger integration conversation.
93+
func (c *MessengerClient) Initiate(ctx context.Context, messengerID string, req types.MessengerInitiateRequest) (*types.MessengerInitiateResponse, error) {
94+
path := fmt.Sprintf("/api/v1/integration/messenger/%s/initiate", messengerID)
95+
96+
var result types.MessengerInitiateResponse
97+
if err := c.httpClient.Post(ctx, path, req, &result); err != nil {
98+
return nil, err
99+
}
100+
return &result, nil
101+
}

sdk/integration/microsoftteams.go

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
package integration
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"net/url"
7+
8+
"github.com/chatbotkit/go-sdk/internal/httpclient"
9+
"github.com/chatbotkit/go-sdk/internal/params"
10+
"github.com/chatbotkit/go-sdk/types"
11+
)
12+
13+
// MicrosoftteamsClient provides access to Microsoft Teams integration resources.
14+
type MicrosoftteamsClient struct {
15+
httpClient *httpclient.Client
16+
}
17+
18+
// NewMicrosoftteamsClient creates a new MicrosoftteamsClient.
19+
func NewMicrosoftteamsClient(httpClient *httpclient.Client) *MicrosoftteamsClient {
20+
return &MicrosoftteamsClient{httpClient: httpClient}
21+
}
22+
23+
// List retrieves a list of Microsoft Teams integrations.
24+
func (c *MicrosoftteamsClient) List(ctx context.Context, opts *types.MicrosoftteamsIntegrationListParams) (*types.MicrosoftteamsIntegrationListResponse, error) {
25+
query := url.Values{}
26+
if opts != nil {
27+
query = params.BuildListQuery(opts.Cursor, opts.Order, opts.Take, opts.Meta)
28+
}
29+
30+
var result types.MicrosoftteamsIntegrationListResponse
31+
if err := c.httpClient.Get(ctx, "/api/v1/integration/microsoftteams/list", query, &result); err != nil {
32+
return nil, err
33+
}
34+
return &result, nil
35+
}
36+
37+
// Fetch retrieves a Microsoft Teams integration by ID.
38+
func (c *MicrosoftteamsClient) Fetch(ctx context.Context, microsoftteamsID string) (*types.MicrosoftteamsIntegrationFetchResponse, error) {
39+
path := fmt.Sprintf("/api/v1/integration/microsoftteams/%s/fetch", microsoftteamsID)
40+
41+
var result types.MicrosoftteamsIntegrationFetchResponse
42+
if err := c.httpClient.Get(ctx, path, nil, &result); err != nil {
43+
return nil, err
44+
}
45+
return &result, nil
46+
}
47+
48+
// Create creates a Microsoft Teams integration.
49+
func (c *MicrosoftteamsClient) Create(ctx context.Context, req types.MicrosoftteamsIntegrationCreateRequest) (*types.MicrosoftteamsIntegrationCreateResponse, error) {
50+
var result types.MicrosoftteamsIntegrationCreateResponse
51+
if err := c.httpClient.Post(ctx, "/api/v1/integration/microsoftteams/create", req, &result); err != nil {
52+
return nil, err
53+
}
54+
return &result, nil
55+
}
56+
57+
// Update updates a Microsoft Teams integration.
58+
func (c *MicrosoftteamsClient) Update(ctx context.Context, microsoftteamsID string, req types.MicrosoftteamsIntegrationUpdateRequest) (*types.MicrosoftteamsIntegrationUpdateResponse, error) {
59+
path := fmt.Sprintf("/api/v1/integration/microsoftteams/%s/update", microsoftteamsID)
60+
61+
var result types.MicrosoftteamsIntegrationUpdateResponse
62+
if err := c.httpClient.Post(ctx, path, req, &result); err != nil {
63+
return nil, err
64+
}
65+
return &result, nil
66+
}
67+
68+
// Delete deletes a Microsoft Teams integration.
69+
func (c *MicrosoftteamsClient) Delete(ctx context.Context, microsoftteamsID string) (*types.MicrosoftteamsIntegrationDeleteResponse, error) {
70+
path := fmt.Sprintf("/api/v1/integration/microsoftteams/%s/delete", microsoftteamsID)
71+
72+
var result types.MicrosoftteamsIntegrationDeleteResponse
73+
if err := c.httpClient.Post(ctx, path, types.MicrosoftteamsIntegrationDeleteRequest{}, &result); err != nil {
74+
return nil, err
75+
}
76+
return &result, nil
77+
}
78+
79+
// Setup sets up a Microsoft Teams integration.
80+
func (c *MicrosoftteamsClient) Setup(ctx context.Context, microsoftteamsID string) (*types.MicrosoftteamsIntegrationSetupResponse, error) {
81+
path := fmt.Sprintf("/api/v1/integration/microsoftteams/%s/setup", microsoftteamsID)
82+
83+
var result types.MicrosoftteamsIntegrationSetupResponse
84+
if err := c.httpClient.Post(ctx, path, types.MicrosoftteamsIntegrationSetupRequest{}, &result); err != nil {
85+
return nil, err
86+
}
87+
return &result, nil
88+
}
89+
90+
// Initiate initiates a Microsoft Teams integration conversation.
91+
func (c *MicrosoftteamsClient) Initiate(ctx context.Context, microsoftteamsID string, req types.TeamsInitiateRequest) (*types.TeamsInitiateResponse, error) {
92+
path := fmt.Sprintf("/api/v1/integration/microsoftteams/%s/initiate", microsoftteamsID)
93+
94+
var result types.TeamsInitiateResponse
95+
if err := c.httpClient.Post(ctx, path, req, &result); err != nil {
96+
return nil, err
97+
}
98+
return &result, nil
99+
}

sdk/integration/teams.go

Lines changed: 0 additions & 88 deletions
This file was deleted.

0 commit comments

Comments
 (0)