feat: migrate codes from previous project
This commit is contained in:
53
internal/feishu/client.go
Normal file
53
internal/feishu/client.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package feishu
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
|
||||
"github.com/google/uuid"
|
||||
lark "github.com/larksuite/oapi-sdk-go/v3"
|
||||
larkcore "github.com/larksuite/oapi-sdk-go/v3/core"
|
||||
larkim "github.com/larksuite/oapi-sdk-go/v3/service/im/v1"
|
||||
)
|
||||
|
||||
type Client struct {
|
||||
larkClient *lark.Client
|
||||
}
|
||||
|
||||
func NewClient(larkClient *lark.Client) *Client {
|
||||
return &Client{larkClient: larkClient}
|
||||
}
|
||||
|
||||
func (c *Client) SendMessageToChat(ctx context.Context, message, chatID string) error {
|
||||
content := &MessageContent{
|
||||
Text: message,
|
||||
}
|
||||
contentJson, err := json.Marshal(content)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
contentString := string(contentJson)
|
||||
|
||||
req := larkim.NewCreateMessageReqBuilder().
|
||||
ReceiveIdType("chat_id").
|
||||
Body(larkim.NewCreateMessageReqBodyBuilder().
|
||||
ReceiveId(chatID).
|
||||
MsgType(`text`).
|
||||
Content(contentString).
|
||||
Uuid(uuid.New().String()).
|
||||
Build()).
|
||||
Build()
|
||||
|
||||
resp, err := c.larkClient.Im.V1.Message.Create(ctx, req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if !resp.Success() {
|
||||
fmt.Printf("logId: %s, error response: \n%s", resp.RequestId(), larkcore.Prettify(resp.CodeError))
|
||||
return nil
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
5
internal/feishu/types.go
Normal file
5
internal/feishu/types.go
Normal file
@@ -0,0 +1,5 @@
|
||||
package feishu
|
||||
|
||||
type MessageContent struct {
|
||||
Text string `json:"text"`
|
||||
}
|
||||
Reference in New Issue
Block a user