Added new endpoint
This commit is contained in:
parent
5a715ff68c
commit
64138d6ccf
2 changed files with 55 additions and 3 deletions
|
@ -1 +1 @@
|
||||||
Subproject commit 49d039ed07628155e7f56e2c997fcef90ecde267
|
Subproject commit 9810ce85812ca26c95b7d35196848c92e8ba813d
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
use Appwrite\Auth\Auth;
|
use Appwrite\Auth\Auth;
|
||||||
use Appwrite\Event\Delete;
|
use Appwrite\Event\Delete;
|
||||||
|
use Appwrite\Event\Mail;
|
||||||
use Appwrite\Event\Validator\Event;
|
use Appwrite\Event\Validator\Event;
|
||||||
use Appwrite\Extend\Exception;
|
use Appwrite\Extend\Exception;
|
||||||
use Appwrite\Network\Validator\Email;
|
use Appwrite\Network\Validator\Email;
|
||||||
|
@ -1542,12 +1543,12 @@ App::delete('/v1/projects/:projectId/platforms/:platformId')
|
||||||
|
|
||||||
// CUSTOM SMTP and Templates
|
// CUSTOM SMTP and Templates
|
||||||
App::patch('/v1/projects/:projectId/smtp')
|
App::patch('/v1/projects/:projectId/smtp')
|
||||||
->desc('Update SMTP configuration')
|
->desc('Update SMTP')
|
||||||
->groups(['api', 'projects'])
|
->groups(['api', 'projects'])
|
||||||
->label('scope', 'projects.write')
|
->label('scope', 'projects.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'projects')
|
->label('sdk.namespace', 'projects')
|
||||||
->label('sdk.method', 'updateSmtpConfiguration')
|
->label('sdk.method', 'updateSmtp')
|
||||||
->label('sdk.response.code', Response::STATUS_CODE_OK)
|
->label('sdk.response.code', Response::STATUS_CODE_OK)
|
||||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||||
->label('sdk.response.model', Response::MODEL_PROJECT)
|
->label('sdk.response.model', Response::MODEL_PROJECT)
|
||||||
|
@ -1631,6 +1632,57 @@ App::patch('/v1/projects/:projectId/smtp')
|
||||||
$response->dynamic($project, Response::MODEL_PROJECT);
|
$response->dynamic($project, Response::MODEL_PROJECT);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
App::post('/v1/projects/:projectId/smtp/tests')
|
||||||
|
->desc('Create SMTP test')
|
||||||
|
->groups(['api', 'projects'])
|
||||||
|
->label('scope', 'projects.write')
|
||||||
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
|
->label('sdk.namespace', 'projects')
|
||||||
|
->label('sdk.method', 'createSmtpTest')
|
||||||
|
->label('sdk.response.code', Response::STATUS_CODE_OK)
|
||||||
|
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||||
|
->label('sdk.response.model', Response::MODEL_PROJECT)
|
||||||
|
->param('projectId', '', new UID(), 'Project unique ID.')
|
||||||
|
->param('email', false, new Email(), 'Email')
|
||||||
|
->inject('response')
|
||||||
|
->inject('dbForConsole')
|
||||||
|
->inject('queueForMails')
|
||||||
|
->action(function (string $projectId, string $email, Response $response, Database $dbForConsole, Mail $queueForMails) {
|
||||||
|
$project = $dbForConsole->getDocument('projects', $projectId);
|
||||||
|
|
||||||
|
if ($project->isEmpty()) {
|
||||||
|
throw new Exception(Exception::PROJECT_NOT_FOUND);
|
||||||
|
}
|
||||||
|
|
||||||
|
$smtp = $project->getAttribute('smtp', []);
|
||||||
|
$smtpEnabled = $smtp['enabled'] ?? false;
|
||||||
|
|
||||||
|
if ($smtpEnabled) {
|
||||||
|
throw new Exception(Exception::GENERAL_SMTP_DISABLED, 'SMTP disabled');
|
||||||
|
}
|
||||||
|
|
||||||
|
$senderEmail = App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', APP_EMAIL_TEAM);
|
||||||
|
$senderName = App::getEnv('_APP_SYSTEM_EMAIL_NAME', APP_NAME . ' Server');
|
||||||
|
|
||||||
|
$subject = 'SMTP test email from Appwrite';
|
||||||
|
$body = 'You\'re good to go. If you see this email all your SMTP settings are set correctly.';
|
||||||
|
|
||||||
|
$queueForMails
|
||||||
|
->setSmtpHost($smtp['host'] ?? '')
|
||||||
|
->setSmtpPort($smtp['port'] ?? '')
|
||||||
|
->setSmtpUsername($smtp['username'] ?? '')
|
||||||
|
->setSmtpPassword($smtp['password'] ?? '')
|
||||||
|
->setSmtpSecure($smtp['secure'] ?? '')
|
||||||
|
->setSmtpSenderEmail($senderEmail)
|
||||||
|
->setSmtpSenderName($senderName)
|
||||||
|
->setSubject($subject)
|
||||||
|
->setBody($body)
|
||||||
|
->setRecipient($email)
|
||||||
|
->trigger();
|
||||||
|
|
||||||
|
return $response->noContent();
|
||||||
|
});
|
||||||
|
|
||||||
App::get('/v1/projects/:projectId/templates/sms/:type/:locale')
|
App::get('/v1/projects/:projectId/templates/sms/:type/:locale')
|
||||||
->desc('Get custom SMS template')
|
->desc('Get custom SMS template')
|
||||||
->groups(['api', 'projects'])
|
->groups(['api', 'projects'])
|
||||||
|
|
Loading…
Reference in a new issue