diff --git a/client/config.go b/client/config.go index e61b781..86927a9 100644 --- a/client/config.go +++ b/client/config.go @@ -5,7 +5,11 @@ package client -import "github.com/emersion/go-imap/client" +import ( + "errors" + + "github.com/emersion/go-imap/client" +) // Config holds the configuration for the IMAP client type Config struct { @@ -35,3 +39,11 @@ type IMAPClient struct { config *Config client *client.Client } + +var ( + // ErrorsClientIsNotConnected is returned when an operation is attempted on a client that is not connected. + ErrorsClientIsNotConnected = errors.New("client is not connected") + + // ErrorsFailedToReadBody is returned when there is a failure in reading the body of a message. + ErrorsFailedToReadBody = errors.New("failed to read body") +) diff --git a/client/export_messages.go b/client/export_messages.go index 68f25f8..d9189e4 100644 --- a/client/export_messages.go +++ b/client/export_messages.go @@ -15,7 +15,7 @@ import ( // ExportMessagesTo uses the provided exporter to write messages to the writer func (c *IMAPClient) ExportMessagesTo(writer io.Writer, exporter export.Exporter, mailbox string, numMessages uint32, config MessageConfig) error { if c.client == nil { - return fmt.Errorf("client is not connected") + return ErrorsClientIsNotConnected } // Fetch messages based on the provided MessageConfig and number of messages diff --git a/client/list_mailboxes.go b/client/list_mailboxes.go index d591cec..44d82d8 100644 --- a/client/list_mailboxes.go +++ b/client/list_mailboxes.go @@ -14,7 +14,7 @@ import ( // ListMailboxes retrieves all available mailboxes for the connected user func (c *IMAPClient) ListMailboxes() ([]string, error) { if c.client == nil { - return nil, fmt.Errorf("client is not connected") + return nil, ErrorsClientIsNotConnected } mailboxes := make(chan *imap.MailboxInfo, 10) diff --git a/client/list_messages.go b/client/list_messages.go index 74d456a..fe4fa78 100644 --- a/client/list_messages.go +++ b/client/list_messages.go @@ -41,7 +41,7 @@ const ( // ListMessages lists the messages in the specified mailbox based on the MessageConfig func (c *IMAPClient) ListMessages(mailbox string, numMessages uint32, config MessageConfig) ([]map[string]any, error) { if c.client == nil { - return nil, fmt.Errorf("client is not connected") + return nil, ErrorsClientIsNotConnected } mbox, err := c.selectMailbox(mailbox) @@ -194,7 +194,7 @@ func (c *IMAPClient) extractBody(body map[*imap.BodySectionName]imap.Literal) (s return result, nil } bytebufferpool.Put(buf) - return "", fmt.Errorf("failed to read body") + return "", ErrorsFailedToReadBody } return "", nil }