use derive_more::Display;
use serde::Deserialize;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum PostalClientError {
#[error(transparent)]
Api(#[from] PostalApiError),
#[error(transparent)]
Reqwest(#[from] reqwest::Error),
}
#[derive(Debug, Error, Display, Deserialize)]
pub enum PostalApiError {
#[display(fmt = "An invalid API Key was given")]
InvalidServerAPIKey,
#[display(fmt = "The mail server has been suspended")]
ServerSuspended,
#[display(fmt = "The From address is not authorised to send mail from this server")]
UnauthenticatedFromAddress,
}
#[derive(Debug, Error, Display, PartialEq)]
pub enum MessageBuilderError {
#[display(fmt = "Too many Email addresses have been added to the 'to' field")]
TooManyToAddresses,
#[display(fmt = "Too many Email addresses have been added to the 'cc' field")]
TooManyCCAddresses,
#[display(fmt = "Too many Email addresses have been added to the 'bcc' field.")]
TooManyBCCAddresses,
#[display(fmt = "No recipients were added.
Please use 'add_to' or 'append_to' to add at least one Recipient.")]
NoRecipients,
#[display(fmt = "No content has been added.
Please use 'set_plain_body' ot 'set_html_body' to add content for this Message.")]
NoContent,
#[display(fmt = "You are trying to add a Header field that has already been added.")]
HeaderExists,
#[display(fmt = "You must specify a source address with 'set_from'.")]
FromAddressMissing,
}