Skip to content

Commit f13b32c

Browse files
committed
fix: improve error handling in Telegram storage by defining custom error messages
1 parent 4fac507 commit f13b32c

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

storage/telegram/telegram.go

+6-3
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,13 @@ func (t *TelegramStorage) Save(ctx context.Context, filePath string, _ string) (
4343
common.Logger.Debugf("saving file %s", filePath)
4444
fileBytes, err := os.ReadFile(filePath)
4545
if err != nil {
46-
return nil, err
46+
common.Logger.Errorf("failed to read file: %s", err)
47+
return nil, ErrReadFile
4748
}
4849
msg, err := Bot.SendDocument(telegoutil.Document(ChatID, telegoutil.File(telegoutil.NameReader(bytes.NewReader(fileBytes), filepath.Base(filePath)))))
4950
if err != nil {
50-
return nil, err
51+
common.Logger.Errorf("failed to send document: %s", err)
52+
return nil, ErrFailedSendDocument
5153
}
5254
fileMessage := &fileMessage{
5355
ChatID: ChatID.ID,
@@ -56,7 +58,8 @@ func (t *TelegramStorage) Save(ctx context.Context, filePath string, _ string) (
5658
}
5759
data, err := json.Marshal(fileMessage)
5860
if err != nil {
59-
return nil, err
61+
common.Logger.Errorf("failed to marshal file message: %s", err)
62+
return nil, ErrFailedMarshalFileMessage
6063
}
6164
cachePath := filepath.Join(config.Cfg.Storage.CacheDir, common.MD5Hash(fileMessage.FileID))
6265
go common.MkCache(cachePath, fileBytes, time.Duration(config.Cfg.Storage.CacheTTL)*time.Second)

storage/telegram/utils.go

+7
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
package telegram
22

33
import (
4+
"errors"
45
"fmt"
56
)
67

8+
var (
9+
ErrReadFile = errors.New("failed to read file")
10+
ErrFailedSendDocument = errors.New("failed to send document")
11+
ErrFailedMarshalFileMessage = errors.New("failed to marshal file message")
12+
)
13+
714
type fileMessage struct {
815
ChatID int64 `json:"chat_id"`
916
MessaageID int `json:"message_id"`

storage/webdav/webdav.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func (w *Webdav) Save(ctx context.Context, filePath string, storagePath string)
4747
fileBytes, err := os.ReadFile(filePath)
4848
if err != nil {
4949
common.Logger.Errorf("failed to read file: %s", err)
50-
return nil, err
50+
return nil, ErrReadFile
5151
}
5252

5353
if err := Client.Write(storagePath, fileBytes, os.ModePerm); err != nil {

0 commit comments

Comments
 (0)