- Added a new SMTP settings page with functionality to configure SMTP settings, test connections, and send test emails. - Implemented user management page to list users, invite new users, and manage user permissions. - Created modals for inviting users and editing user permissions. - Added tests for the new SMTP settings and user management functionalities. - Updated navigation to include links to the new SMTP settings and user management pages.
51 lines
1.3 KiB
TypeScript
51 lines
1.3 KiB
TypeScript
import client from './client'
|
|
|
|
export interface SMTPConfig {
|
|
host: string
|
|
port: number
|
|
username: string
|
|
password: string
|
|
from_address: string
|
|
encryption: 'none' | 'ssl' | 'starttls'
|
|
configured: boolean
|
|
}
|
|
|
|
export interface SMTPConfigRequest {
|
|
host: string
|
|
port: number
|
|
username: string
|
|
password: string
|
|
from_address: string
|
|
encryption: 'none' | 'ssl' | 'starttls'
|
|
}
|
|
|
|
export interface TestEmailRequest {
|
|
to: string
|
|
}
|
|
|
|
export interface SMTPTestResult {
|
|
success: boolean
|
|
message?: string
|
|
error?: string
|
|
}
|
|
|
|
export const getSMTPConfig = async (): Promise<SMTPConfig> => {
|
|
const response = await client.get<SMTPConfig>('/settings/smtp')
|
|
return response.data
|
|
}
|
|
|
|
export const updateSMTPConfig = async (config: SMTPConfigRequest): Promise<{ message: string }> => {
|
|
const response = await client.post<{ message: string }>('/settings/smtp', config)
|
|
return response.data
|
|
}
|
|
|
|
export const testSMTPConnection = async (): Promise<SMTPTestResult> => {
|
|
const response = await client.post<SMTPTestResult>('/settings/smtp/test')
|
|
return response.data
|
|
}
|
|
|
|
export const sendTestEmail = async (request: TestEmailRequest): Promise<SMTPTestResult> => {
|
|
const response = await client.post<SMTPTestResult>('/settings/smtp/test-email', request)
|
|
return response.data
|
|
}
|