SmtpForm.utils.ts 919 B

12345678910111213141516171819202122232425262728293031
  1. import type { components } from '@/data/api'
  2. type AuthConfig = components['schemas']['GoTrueConfigResponse']
  3. interface AuthConfigForm extends AuthConfig {
  4. ENABLE_SMTP: boolean
  5. }
  6. export const isSmtpEnabled = (config?: Partial<AuthConfig>): boolean => {
  7. return !!(
  8. config?.SMTP_ADMIN_EMAIL &&
  9. config?.SMTP_SENDER_NAME &&
  10. config?.SMTP_USER &&
  11. config?.SMTP_HOST &&
  12. config?.SMTP_PORT &&
  13. (config?.SMTP_MAX_FREQUENCY ?? 0) >= 0
  14. )
  15. }
  16. export const generateFormValues = (config?: Partial<AuthConfig>): Partial<AuthConfigForm> => {
  17. return {
  18. ENABLE_SMTP: isSmtpEnabled(config),
  19. SMTP_ADMIN_EMAIL: config?.SMTP_ADMIN_EMAIL ?? '',
  20. SMTP_SENDER_NAME: config?.SMTP_SENDER_NAME ?? '',
  21. SMTP_USER: config?.SMTP_USER ?? '',
  22. SMTP_HOST: config?.SMTP_HOST ?? '',
  23. SMTP_PASS: '',
  24. SMTP_PORT: config?.SMTP_PORT ?? '465',
  25. SMTP_MAX_FREQUENCY: config?.SMTP_MAX_FREQUENCY ?? 60,
  26. }
  27. }