core/clients/telegram/tg.go
2024-06-30 21:02:23 +03:00

58 lines
1.4 KiB
Go

package telegram
import (
"context"
"fmt"
"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/dal"
"penahub.gitlab.yandexcloud.net/backend/tdlib/client"
)
type TelegramClient struct {
repo *dal.DAL
TgClients []*client.Client
WaitingClients map[string]WaitingClient
}
type WaitingClient struct {
TdLibClient *client.Client
PreviousReq AuthTgUserReq
Authorizer *client.ClientAuthorizer
}
// todo come back saved tg accs to slice for check this status
func NewTelegramClient(ctx context.Context, repo *dal.DAL) (*TelegramClient, error) {
return &TelegramClient{
repo: repo,
TgClients: make([]*client.Client, 0),
WaitingClients: make(map[string]WaitingClient),
}, nil
}
type AuthTgUserReq struct {
ApiID int32 `json:"api_id"`
ApiHash string `json:"api_hash"`
PhoneNumber string `json:"phone_number"`
Password string `json:"password"`
}
func (tg *TelegramClient) AddedToMap(data WaitingClient, id string) {
fmt.Println("AddedToMap")
tg.WaitingClients[id] = data
}
func (tg *TelegramClient) GetFromMap(id string) (WaitingClient, bool) {
fmt.Println("GetFromMap")
if data, ok := tg.WaitingClients[id]; ok {
return data, true
}
return WaitingClient{}, false
}
func (tg *TelegramClient) SaveTgAccount() {
}
func (tg *TelegramClient) CreateChannel(channelName string, botID int64) (string, error) {
return "", nil
}