mirror of
https://github.com/InvoiceShelf/InvoiceShelf.git
synced 2026-04-12 15:57:22 +00:00
Move Mail, PDF configuration to Database, standardize configurations
This commit is contained in:
@@ -238,29 +238,6 @@ class EnvironmentManager
|
||||
return DB::connection()->getPdo();
|
||||
}
|
||||
|
||||
/**
|
||||
* Save the mail content to the .env file.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function saveMailVariables(MailEnvironmentRequest $request)
|
||||
{
|
||||
$mailEnv = $this->getMailConfiguration($request);
|
||||
|
||||
try {
|
||||
|
||||
$this->updateEnv($mailEnv);
|
||||
} catch (Exception $e) {
|
||||
return [
|
||||
'error' => 'mail_variables_save_error',
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
'success' => 'mail_variables_save_successfully',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Save the pdf generation content to the .env file.
|
||||
*
|
||||
@@ -315,169 +292,6 @@ class EnvironmentManager
|
||||
return $pdfEnv;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the mail configuration
|
||||
*
|
||||
* @param MailEnvironmentRequest $request
|
||||
* @return array
|
||||
*/
|
||||
private function getMailConfiguration($request)
|
||||
{
|
||||
$mailEnv = [];
|
||||
|
||||
$driver = $request->get('mail_driver');
|
||||
|
||||
switch ($driver) {
|
||||
case 'smtp':
|
||||
|
||||
$mailEnv = [
|
||||
'MAIL_MAILER' => $request->get('mail_driver'),
|
||||
'MAIL_HOST' => $request->get('mail_host'),
|
||||
'MAIL_PORT' => $request->get('mail_port'),
|
||||
'MAIL_USERNAME' => $request->get('mail_username'),
|
||||
'MAIL_PASSWORD' => $request->get('mail_password'),
|
||||
'MAIL_SCHEME' => $request->get('mail_encryption') !== 'none' ? $request->get('mail_encryption') : 'null',
|
||||
'MAIL_FROM_ADDRESS' => $request->get('from_mail'),
|
||||
'MAIL_FROM_NAME' => $request->get('from_name'),
|
||||
];
|
||||
|
||||
break;
|
||||
|
||||
case 'mailgun':
|
||||
|
||||
$mailEnv = [
|
||||
'MAIL_MAILER' => $request->get('mail_driver'),
|
||||
'MAIL_HOST' => $request->get('mail_host'),
|
||||
'MAIL_PORT' => $request->get('mail_port'),
|
||||
'MAIL_USERNAME' => config('mail.username'),
|
||||
'MAIL_PASSWORD' => config('mail.password'),
|
||||
'MAIL_FROM_ADDRESS' => $request->get('from_mail'),
|
||||
'MAIL_FROM_NAME' => $request->get('from_name'),
|
||||
'MAILGUN_DOMAIN' => $request->get('mail_mailgun_domain'),
|
||||
'MAILGUN_SECRET' => $request->get('mail_mailgun_secret'),
|
||||
'MAILGUN_ENDPOINT' => $request->get('mail_mailgun_endpoint'),
|
||||
];
|
||||
|
||||
break;
|
||||
|
||||
case 'ses':
|
||||
|
||||
$mailEnv = [
|
||||
'MAIL_MAILER' => $request->get('mail_driver'),
|
||||
'MAIL_HOST' => $request->get('mail_host'),
|
||||
'MAIL_PORT' => $request->get('mail_port'),
|
||||
'MAIL_USERNAME' => config('mail.username'),
|
||||
'MAIL_PASSWORD' => config('mail.password'),
|
||||
'MAIL_ENCRYPTION' => $request->get('mail_encryption'),
|
||||
'MAIL_FROM_ADDRESS' => $request->get('from_mail'),
|
||||
'MAIL_FROM_NAME' => $request->get('from_name'),
|
||||
'SES_KEY' => $request->get('mail_ses_key'),
|
||||
'SES_SECRET' => $request->get('mail_ses_secret'),
|
||||
'SES_REGION' => $request->get('mail_ses_region'),
|
||||
];
|
||||
|
||||
break;
|
||||
|
||||
case 'sendmail':
|
||||
case 'mail':
|
||||
|
||||
$mailEnv = [
|
||||
'MAIL_MAILER' => $request->get('mail_driver'),
|
||||
'MAIL_HOST' => config('mail.host'),
|
||||
'MAIL_PORT' => config('mail.port'),
|
||||
'MAIL_USERNAME' => config('mail.username'),
|
||||
'MAIL_PASSWORD' => config('mail.password'),
|
||||
'MAIL_ENCRYPTION' => config('mail.encryption'),
|
||||
'MAIL_FROM_ADDRESS' => $request->get('from_mail'),
|
||||
'MAIL_FROM_NAME' => $request->get('from_name'),
|
||||
];
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return $mailEnv;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save the disk content to the .env file.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function saveDiskVariables(DiskEnvironmentRequest $request)
|
||||
{
|
||||
$diskEnv = $this->getDiskConfiguration($request);
|
||||
|
||||
try {
|
||||
|
||||
$this->updateEnv($diskEnv);
|
||||
} catch (Exception $e) {
|
||||
return [
|
||||
'error' => 'disk_variables_save_error',
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
'success' => 'disk_variables_save_successfully',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the disk configuration
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function getDiskConfiguration(DiskEnvironmentRequest $request)
|
||||
{
|
||||
$diskEnv = [];
|
||||
|
||||
$driver = $request->get('app_domain');
|
||||
|
||||
if ($driver) {
|
||||
$diskEnv['FILESYSTEM_DRIVER'] = $driver;
|
||||
}
|
||||
|
||||
switch ($request->get('selected_driver')) {
|
||||
case 's3':
|
||||
|
||||
$diskEnv = [
|
||||
'AWS_KEY' => $request->get('aws_key'),
|
||||
'AWS_SECRET' => $request->get('aws_secret'),
|
||||
'AWS_REGION' => $request->get('aws_region'),
|
||||
'AWS_BUCKET' => $request->get('aws_bucket'),
|
||||
'AWS_ROOT' => $request->get('aws_root'),
|
||||
];
|
||||
|
||||
break;
|
||||
|
||||
case 'doSpaces':
|
||||
|
||||
$diskEnv = [
|
||||
'DO_SPACES_KEY' => $request->get('do_spaces_key'),
|
||||
'DO_SPACES_SECRET' => $request->get('do_spaces_secret'),
|
||||
'DO_SPACES_REGION' => $request->get('do_spaces_region'),
|
||||
'DO_SPACES_BUCKET' => $request->get('do_spaces_bucket'),
|
||||
'DO_SPACES_ENDPOINT' => $request->get('do_spaces_endpoint'),
|
||||
'DO_SPACES_ROOT' => $request->get('do_spaces_root'),
|
||||
];
|
||||
|
||||
break;
|
||||
|
||||
case 'dropbox':
|
||||
|
||||
$diskEnv = [
|
||||
'DROPBOX_TOKEN' => $request->get('dropbox_token'),
|
||||
'DROPBOX_KEY' => $request->get('dropbox_key'),
|
||||
'DROPBOX_SECRET' => $request->get('dropbox_secret'),
|
||||
'DROPBOX_APP' => $request->get('dropbox_app'),
|
||||
'DROPBOX_ROOT' => $request->get('dropbox_root'),
|
||||
];
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return $diskEnv;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save sanctum stateful domain to the .env file.
|
||||
*
|
||||
@@ -507,35 +321,6 @@ class EnvironmentManager
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Order the env contents
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function reoderEnv()
|
||||
{
|
||||
$contents = $this->getEnvContents();
|
||||
$contents = explode($this->delimiter, $contents);
|
||||
if (empty($contents)) {
|
||||
return;
|
||||
}
|
||||
natsort($contents);
|
||||
|
||||
$formatted = '';
|
||||
$previous = '';
|
||||
foreach ($contents as $current) {
|
||||
$parts_line = explode('_', $current);
|
||||
$parts_last = explode('_', $previous);
|
||||
if ($parts_line[0] != $parts_last[0]) {
|
||||
$formatted .= $this->delimiter;
|
||||
}
|
||||
$formatted .= $current.$this->delimiter;
|
||||
$previous = $current;
|
||||
}
|
||||
|
||||
file_put_contents($this->envPath, trim($formatted));
|
||||
}
|
||||
|
||||
private function getDomains(string $requestDomain): array
|
||||
{
|
||||
$appUrl = config('app.url');
|
||||
|
||||
Reference in New Issue
Block a user