refactor mail stuff

This commit is contained in:
raish_varia
2019-11-19 08:39:54 +05:30
parent 19f74332dd
commit b074cda26e
4 changed files with 168 additions and 77 deletions

View File

@ -27,6 +27,9 @@ MAIL_USERNAME=
MAIL_PASSWORD= MAIL_PASSWORD=
MAIL_ENCRYPTION= MAIL_ENCRYPTION=
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=
PUSHER_APP_ID= PUSHER_APP_ID=
PUSHER_KEY= PUSHER_KEY=
PUSHER_SECRET= PUSHER_SECRET=

View File

@ -33,20 +33,20 @@ class EnvironmentManager
public function saveDatabaseVariables(DatabaseEnvironmentRequest $request) public function saveDatabaseVariables(DatabaseEnvironmentRequest $request)
{ {
$oldDatabaseData = $oldDatabaseData =
'DB_CONNECTION='.config('database.default')."\n". 'DB_CONNECTION='.config('database.default')."\n".
'DB_HOST='.config('database.connections.'.config('database.default').'.host')."\n". 'DB_HOST='.config('database.connections.'.config('database.default').'.host')."\n".
'DB_PORT='.config('database.connections.'.config('database.default').'.port')."\n". 'DB_PORT='.config('database.connections.'.config('database.default').'.port')."\n".
'DB_DATABASE='.config('database.connections.'.config('database.default').'.database')."\n". 'DB_DATABASE='.config('database.connections.'.config('database.default').'.database')."\n".
'DB_USERNAME='.config('database.connections.'.config('database.default').'.username')."\n". 'DB_USERNAME='.config('database.connections.'.config('database.default').'.username')."\n".
'DB_PASSWORD='.config('database.connections.'.config('database.default').'.password')."\n\n"; 'DB_PASSWORD='.config('database.connections.'.config('database.default').'.password')."\n\n";
$newDatabaseData = $newDatabaseData =
'DB_CONNECTION='.$request->database_connection."\n". 'DB_CONNECTION='.$request->database_connection."\n".
'DB_HOST='.$request->database_hostname."\n". 'DB_HOST='.$request->database_hostname."\n".
'DB_PORT='.$request->database_port."\n". 'DB_PORT='.$request->database_port."\n".
'DB_DATABASE='.$request->database_name."\n". 'DB_DATABASE='.$request->database_name."\n".
'DB_USERNAME='.$request->database_username."\n". 'DB_USERNAME='.$request->database_username."\n".
'DB_PASSWORD='.$request->database_password."\n\n"; 'DB_PASSWORD='.$request->database_password."\n\n";
if (! $this->checkDatabaseConnection($request)) { if (! $this->checkDatabaseConnection($request)) {
@ -97,6 +97,8 @@ class EnvironmentManager
$mailData = $this->getMailData($request); $mailData = $this->getMailData($request);
dd($mailData); dd($mailData);
// extra_mail_data
// extra_old_mail_data
try { try {
file_put_contents($this->envPath, str_replace( file_put_contents($this->envPath, str_replace(
@ -118,40 +120,68 @@ class EnvironmentManager
private function getMailData($request) private function getMailData($request)
{ {
$mailCredential = ""; $mailFromCredential = "";
$otherCredential = ""; $extraMailData = "";
$oldMailOtherCredential = ""; $extraOldMailData = "";
$oldMailData = "";
$newMailData = "";
if(env('MAIL_FROM_ADDRESS') && env('MAIL_FROM_NAME')) { if(env('MAIL_FROM_ADDRESS') && env('MAIL_FROM_NAME')) {
$oldMailOtherCredential = $mailFromCredential =
'MAIL_FROM_ADDRESS='.config('mail.from.address')."\n". 'MAIL_FROM_ADDRESS='.config('mail.from.address')."\n".
'MAIL_FROM_NAME='.config('mail.from.name')."\n\n"; 'MAIL_FROM_NAME='.config('mail.from.name')."\n\n";
} }
$oldMailCredential =
'MAIL_USERNAME='.config('mail.username')."\n".
'MAIL_PASSWORD='.config('mail.password')."\n";
$resetCredential =
'MAIL_USERNAME='."\n".
'MAIL_PASSWORD='."\n";
switch ($request->mail_driver) { switch ($request->mail_driver) {
case 'smtp': case 'smtp':
$mailCredential=
$oldMailData =
'MAIL_DRIVER='.config('mail.driver')."\n".
'MAIL_HOST='.config('mail.host')."\n".
'MAIL_PORT='.config('mail.port')."\n".
'MAIL_USERNAME='.config('mail.username')."\n".
'MAIL_PASSWORD='.config('mail.password')."\n";
'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n".
$mailFromCredential;
$newMailData =
'MAIL_DRIVER='.$request->mail_driver."\n".
'MAIL_HOST='.$request->mail_host."\n".
'MAIL_PORT='.$request->mail_port."\n".
'MAIL_USERNAME='.$request->mail_username."\n". 'MAIL_USERNAME='.$request->mail_username."\n".
'MAIL_PASSWORD='.$request->mail_password."\n"; 'MAIL_PASSWORD='.$request->mail_password."\n";
'MAIL_ENCRYPTION='.$request->mail_encryption."\n\n".
'MAIL_FROM_ADDRESS='.$request->from_mail."\n".
'MAIL_FROM_NAME='.$request->from_name."\n\n";
break; break;
case 'mailgun': case 'mailgun':
$mailCredential = $resetCredential; $oldMailData =
$otherCredential= 'MAIL_DRIVER='.config('mail.driver')."\n".
'MAIL_HOST='.config('mail.host')."\n".
'MAIL_PORT='.config('mail.port')."\n".
'MAIL_USERNAME='.config('mail.username')."\n".
'MAIL_PASSWORD='.config('mail.password')."\n";
'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n".
$mailFromCredential;
$newMailData =
'MAIL_DRIVER='.$request->mail_driver."\n".
'MAIL_HOST='.$request->mail_host."\n".
'MAIL_PORT='.$request->mail_port."\n".
'MAIL_USERNAME='.config('mail.username')."\n".
'MAIL_PASSWORD='.config('mail.password')."\n";
'MAIL_ENCRYPTION='.$request->mail_encryption."\n\n".
'MAIL_FROM_ADDRESS='.$request->from_mail."\n".
'MAIL_FROM_NAME='.$request->from_name."\n\n";
$extraMailData=
'MAILGUN_DOMAIN='.$request->mail_mailgun_domain."\n". 'MAILGUN_DOMAIN='.$request->mail_mailgun_domain."\n".
'MAILGUN_SECRET='.$request->mail_mailgun_secret."\n". 'MAILGUN_SECRET='.$request->mail_mailgun_secret."\n".
'MAILGUN_ENDPOINT='.$request->mail_mailgun_endpoint."\n\n"; 'MAILGUN_ENDPOINT='.$request->mail_mailgun_endpoint."\n\n";
if(env('MAILGUN_DOMAIN') && env('MAILGUN_SECRET') && env('MAILGUN_ENDPOINT')) { if(env('MAILGUN_DOMAIN') && env('MAILGUN_SECRET') && env('MAILGUN_ENDPOINT')) {
$oldMailOtherCredential = $extraOldMailData =
'MAILGUN_DOMAIN='.config('services.mailgun.domain')."\n". 'MAILGUN_DOMAIN='.config('services.mailgun.domain')."\n".
'MAILGUN_SECRET='.config('services.mailgun.secret')."\n". 'MAILGUN_SECRET='.config('services.mailgun.secret')."\n".
'MAILGUN_ENDPOINT='.config('services.mailgun.endpoint')."\n\n"; 'MAILGUN_ENDPOINT='.config('services.mailgun.endpoint')."\n\n";
@ -160,84 +190,142 @@ class EnvironmentManager
break; break;
case 'sparkpost': case 'sparkpost':
$mailCredential = $resetCredential; $oldMailData =
$otherCredential= 'MAIL_DRIVER='.config('mail.driver')."\n".
'MAIL_HOST='.config('mail.host')."\n".
'MAIL_PORT='.config('mail.port')."\n".
'MAIL_USERNAME='.config('mail.username')."\n".
'MAIL_PASSWORD='.config('mail.password')."\n";
'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n".
$mailFromCredential;
$newMailData =
'MAIL_DRIVER='.$request->mail_driver."\n".
'MAIL_HOST='.$request->mail_host."\n".
'MAIL_PORT='.$request->mail_port."\n".
'MAIL_USERNAME='.config('mail.username')."\n".
'MAIL_PASSWORD='.config('mail.password')."\n";
'MAIL_ENCRYPTION='.$request->mail_encryption."\n\n".
'MAIL_FROM_ADDRESS='.$request->from_mail."\n".
'MAIL_FROM_NAME='.$request->from_name."\n\n";
$extraMailData=
'SPARKPOST_SECRET='.$request->mail_sparkpost_secret."\n\n"; 'SPARKPOST_SECRET='.$request->mail_sparkpost_secret."\n\n";
if(env('SPARKPOST_SECRET')) { if(env('SPARKPOST_SECRET')) {
$oldMailOtherCredential = $extraOldMailData =
'SPARKPOST_SECRET='.config('services.sparkpost.secret')."\n\n"; 'SPARKPOST_SECRET='.config('services.sparkpost.secret')."\n\n";
} }
break; break;
case 'ses': case 'ses':
$mailCredential = $resetCredential; $oldMailData =
$otherCredential= 'MAIL_DRIVER='.config('mail.driver')."\n".
'MAIL_HOST='.config('mail.host')."\n".
'MAIL_PORT='.config('mail.port')."\n".
'MAIL_USERNAME='.config('mail.username')."\n".
'MAIL_PASSWORD='.config('mail.password')."\n";
'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n".
$mailFromCredential;
$newMailData =
'MAIL_DRIVER='.$request->mail_driver."\n".
'MAIL_HOST='.$request->mail_host."\n".
'MAIL_PORT='.$request->mail_port."\n".
'MAIL_USERNAME='.config('mail.username')."\n".
'MAIL_PASSWORD='.config('mail.password')."\n";
'MAIL_ENCRYPTION='.$request->mail_encryption."\n\n".
'MAIL_FROM_ADDRESS='.$request->from_mail."\n".
'MAIL_FROM_NAME='.$request->from_name."\n\n";
$extraMailData=
'SES_KEY='.$request->mail_ses_key."\n". 'SES_KEY='.$request->mail_ses_key."\n".
'SES_SECRET='.$request->mail_ses_secret."\n\n"; 'SES_SECRET='.$request->mail_ses_secret."\n\n";
if(env('SES_KEY') && env('SES_SECRET')) { if(env('SES_KEY') && env('SES_SECRET')) {
$oldMailOtherCredential = $extraOldMailData =
'SES_KEY='.config('services.ses.key')."\n". 'SES_KEY='.config('services.ses.key')."\n".
'SES_SECRET='.config('services.ses.secret')."\n\n"; 'SES_SECRET='.config('services.ses.secret')."\n\n";
} }
break; break;
case 'mail': case 'mail':
$existMailData = 'MAIL_DRIVER='.$request->mail_driver."\n". $oldMailData =
'MAIL_DRIVER='.config('mail.driver')."\n".
'MAIL_HOST='.config('mail.host')."\n". 'MAIL_HOST='.config('mail.host')."\n".
'MAIL_PORT='.config('mail.port')."\n". 'MAIL_PORT='.config('mail.port')."\n".
$resetCredential. 'MAIL_USERNAME='.config('mail.username')."\n".
'MAIL_PASSWORD='.config('mail.password')."\n";
'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n".
$mailFromCredential;
$newMailData =
'MAIL_DRIVER='.$request->mail_driver."\n".
'MAIL_HOST='.config('mail.host')."\n".
'MAIL_PORT='.config('mail.port')."\n".
'MAIL_USERNAME='.config('mail.username')."\n".
'MAIL_PASSWORD='.config('mail.password')."\n";
'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n". 'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n".
'MAIL_FROM_ADDRESS='.$request->from_mail."\n". 'MAIL_FROM_ADDRESS='.$request->from_mail."\n".
'MAIL_FROM_NAME='.$request->from_name."\n\n". 'MAIL_FROM_NAME='.$request->from_name."\n\n";
$otherCredential;
break; break;
case 'sendmail': case 'sendmail':
$existMailData = 'MAIL_DRIVER='.$request->mail_driver."\n". $oldMailData =
'MAIL_DRIVER='.config('mail.driver')."\n".
'MAIL_HOST='.config('mail.host')."\n". 'MAIL_HOST='.config('mail.host')."\n".
'MAIL_PORT='.config('mail.port')."\n". 'MAIL_PORT='.config('mail.port')."\n".
$resetCredential. 'MAIL_USERNAME='.config('mail.username')."\n".
'MAIL_PASSWORD='.config('mail.password')."\n";
'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n".
$mailFromCredential;
$newMailData =
'MAIL_DRIVER='.$request->mail_driver."\n".
'MAIL_HOST='.config('mail.host')."\n".
'MAIL_PORT='.config('mail.port')."\n".
'MAIL_USERNAME='.config('mail.username')."\n".
'MAIL_PASSWORD='.config('mail.password')."\n";
'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n". 'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n".
'MAIL_FROM_ADDRESS='.$request->from_mail."\n". 'MAIL_FROM_ADDRESS='.$request->from_mail."\n".
'MAIL_FROM_NAME='.$request->from_name."\n\n". 'MAIL_FROM_NAME='.$request->from_name."\n\n";
$otherCredential;
break; break;
case 'mandrill': case 'mandrill':
$mailCredential = $oldMailCredential; $oldMailData =
$otherCredential= 'MAIL_DRIVER='.config('mail.driver')."\n".
'MAIL_HOST='.config('mail.host')."\n".
'MAIL_PORT='.config('mail.port')."\n".
'MAIL_USERNAME='.config('mail.username')."\n".
'MAIL_PASSWORD='.config('mail.password')."\n";
'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n".
$mailFromCredential;
$newMailData =
'MAIL_DRIVER='.$request->mail_driver."\n".
'MAIL_HOST='.$request->mail_host."\n".
'MAIL_PORT='.$request->mail_port."\n".
'MAIL_USERNAME='.config('mail.username')."\n".
'MAIL_PASSWORD='.config('mail.password')."\n";
'MAIL_ENCRYPTION='.$request->mail_encryption."\n\n".
'MAIL_FROM_ADDRESS='.$request->from_mail."\n".
'MAIL_FROM_NAME='.$request->from_name."\n\n";
$extraMailData=
'MANDRILL_API_KEY='.$request->mail_mandrill_secret."\n\n"; 'MANDRILL_API_KEY='.$request->mail_mandrill_secret."\n\n";
if(env('MANDRILL_API_KEY')) { if(env('MANDRILL_API_KEY')) {
$oldMailOtherCredential = $extraOldMailData =
'MANDRILL_API_KEY='.config('services.mandrill.secret')."\n\n"; 'MANDRILL_API_KEY='.config('services.mandrill.secret')."\n\n";
} }
break; break;
} }
$oldMailData =
'MAIL_DRIVER='.config('mail.driver')."\n".
'MAIL_HOST='.config('mail.host')."\n".
'MAIL_PORT='.config('mail.port')."\n".
$oldMailCredential.
'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n".
$oldMailOtherCredential;
$newMailData = $existMailData ??
'MAIL_DRIVER='.$request->mail_driver."\n".
'MAIL_HOST='.$request->mail_host."\n".
'MAIL_PORT='.$request->mail_port."\n".
$mailCredential.
'MAIL_ENCRYPTION='.$request->mail_encryption."\n\n".
'MAIL_FROM_ADDRESS='.$request->from_mail."\n".
'MAIL_FROM_NAME='.$request->from_name."\n\n".
$otherCredential;
return [ return [
'old_mail_data' => $oldMailData, 'old_mail_data' => $oldMailData,
'new_mail_data' => $newMailData 'new_mail_data' => $newMailData,
'extra_mail_data' => $extraMailData,
'extra_old_mail_data' => $extraOldMailData
]; ];
} }

View File

@ -569,16 +569,16 @@ export default {
host: 'Mail Host', host: 'Mail Host',
port: 'Mail Port', port: 'Mail Port',
driver: 'Mail Driver', driver: 'Mail Driver',
domain: 'Domain',
secret: 'Secret', secret: 'Secret',
sparkpost_secret: 'Sparkpost Secret', sparkpost_secret: 'Sparkpost Secret',
mailgin_secret: 'Mailgun Secret', mailgun_secret: 'Mailgun Secret',
mailgun_domain: 'Domain',
mailgun_endpoint: 'Mailgun Endpoint',
ses_secret: 'SES Secret', ses_secret: 'SES Secret',
mandrill_secret: 'Mandrill Secret',
ses_key: 'SES Key', ses_key: 'SES Key',
mandrill_secret: 'Mandrill Secret',
password: 'Mail Password', password: 'Mail Password',
username: 'Mail Username', username: 'Mail Username',
endpoint: 'Mail Endpoint',
mail_config: 'Mail Configuration', mail_config: 'Mail Configuration',
from_name: 'From Mail Name', from_name: 'From Mail Name',
from_mail: 'From Mail Address', from_mail: 'From Mail Address',
@ -747,16 +747,16 @@ export default {
host: 'Mail Host', host: 'Mail Host',
port: 'Mail Port', port: 'Mail Port',
driver: 'Mail Driver', driver: 'Mail Driver',
domain: 'Domain',
secret: 'Secret', secret: 'Secret',
sparkpost_secret: 'Sparkpost Secret', sparkpost_secret: 'Sparkpost Secret',
mailgin_secret: 'Mailgun Secret', mailgun_secret: 'Mailgun Secret',
mailgun_domain: 'Domain',
mailgun_endpoint: 'Mailgun Endpoint',
ses_secret: 'SES Secret', ses_secret: 'SES Secret',
mandrill_secret: 'Mandrill Secret',
ses_key: 'SES Key', ses_key: 'SES Key',
mandrill_secret: 'Mandrill Secret',
password: 'Mail Password', password: 'Mail Password',
username: 'Mail Username', username: 'Mail Username',
endpoint: 'Mail Endpoint',
mail_config: 'Mail Configuration', mail_config: 'Mail Configuration',
from_name: 'From Mail Name', from_name: 'From Mail Name',
from_mail: 'From Mail Address', from_mail: 'From Mail Address',

View File

@ -112,7 +112,7 @@
</div> </div>
<div class="row my-2"> <div class="row my-2">
<div class="col-md-6 my-2"> <div class="col-md-6 my-2">
<label class="form-label">{{ $t('wizard.mail.domain') }}</label> <label class="form-label">{{ $t('wizard.mail.mailgun_domain') }}</label>
<span class="text-danger"> *</span> <span class="text-danger"> *</span>
<base-input <base-input
:invalid="$v.mailConfigData.mail_mailgun_domain.$error" :invalid="$v.mailConfigData.mail_mailgun_domain.$error"
@ -128,7 +128,7 @@
</div> </div>
</div> </div>
<div class="col-md-6 my-2"> <div class="col-md-6 my-2">
<label class="form-label">{{ $t('wizard.mail.mailgin_secret') }}</label> <label class="form-label">{{ $t('wizard.mail.mailgun_secret') }}</label>
<span class="text-danger"> *</span> <span class="text-danger"> *</span>
<base-input <base-input
:invalid="$v.mailConfigData.mail_mailgun_secret.$error" :invalid="$v.mailConfigData.mail_mailgun_secret.$error"