X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=api%2Fapi.go;h=e01181123633e4a7112dd1124375ae8d7f5e680b;hb=2da5b12c31074591eaf16929b760322b98f189e8;hp=42b9923986484cf896d7587efaa8c508f2bde379;hpb=85545aba62546f219a9c9730945511412a3174ef;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FCryptoportfolio%2FFront.git diff --git a/api/api.go b/api/api.go index 42b9923..e011811 100644 --- a/api/api.go +++ b/api/api.go @@ -8,8 +8,18 @@ import ( ) var CONFIG Config +var MAIL_CONFIG MailConfig + +type MailConfig struct { + IsEnabled bool + SmtpAddress string `toml:"smtp_address"` + AddressFrom string `toml:"address_from"` + Login string `toml:"login"` + Password string `toml:"password"` +} type Config struct { + Domain string `toml:"domain"` JwtSecret string `toml:"jwt_secret"` PasswordResetSecret string `toml:"password_reset_secret"` FreeSMSUser string `toml:"free_sms_user"` @@ -23,6 +33,15 @@ func SetConfig(config Config) { PASSWORD_RESET_SECRET = []byte(config.PasswordResetSecret) } +func SetMailConfig(config MailConfig) { + MAIL_CONFIG = config + + if config.Login != "" && config.AddressFrom != "" && config.Password != "" && config.SmtpAddress != "" { + MAIL_CONFIG.IsEnabled = true + ConfigureMailTemplateEngine() + } +} + type Error struct { Code ErrorCode UserMessage string @@ -45,7 +64,22 @@ func (e Error) Error() string { return "" } +func ErrorIs(err error, code ErrorCode) bool { + if err == nil { + return false + } + + if apiError, ok := err.(*Error); !ok { + return false + } else { + return apiError.Code == code + } +} + func NewInternalError(err error) *Error { + if apiError, ok := err.(*Error); ok { + return apiError + } return &Error{InternalError, "internal error", err} }