From 2139bf25eb4cb6b5db2052998744e129e1f10fb5 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Thu, 3 Oct 2024 14:02:32 +0300 Subject: [PATCH] push: implement PushableNetworkAPI --- pkg/connector/push.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 pkg/connector/push.go diff --git a/pkg/connector/push.go b/pkg/connector/push.go new file mode 100644 index 00000000..0c14312b --- /dev/null +++ b/pkg/connector/push.go @@ -0,0 +1,38 @@ +package connector + +import ( + "context" + "fmt" + + "github.com/gotd/td/tg" + "maunium.net/go/mautrix/bridgev2" +) + +var _ bridgev2.PushableNetworkAPI = (*TelegramClient)(nil) + +func (t *TelegramClient) RegisterPushNotifications(ctx context.Context, pushType bridgev2.PushType, token string) error { + var tokenType int + switch pushType { + case bridgev2.PushTypeWeb: + tokenType = 10 + case bridgev2.PushTypeFCM: + tokenType = 2 + case bridgev2.PushTypeAPNs: + tokenType = 1 + default: + return fmt.Errorf("unsupported push type %s", pushType) + } + _, err := t.client.API().AccountRegisterDevice(ctx, &tg.AccountRegisterDeviceRequest{ + NoMuted: false, + TokenType: tokenType, + Token: token, + AppSandbox: false, + Secret: nil, + OtherUIDs: nil, // TODO set properly + }) + return err +} + +func (t *TelegramClient) GetPushConfigs() *bridgev2.PushConfig { + return &bridgev2.PushConfig{} +}