App\Http\Controllers\AccountController::saveEmailSettings PHP Method

saveEmailSettings() private method

private saveEmailSettings ( )
    private function saveEmailSettings()
    {
        if (Auth::user()->account->hasFeature(FEATURE_CUSTOM_EMAILS)) {
            $user = Auth::user();
            $subdomain = null;
            $iframeURL = null;
            $rules = [];
            if (Input::get('custom_link') == 'subdomain') {
                $subdomain = preg_replace('/[^a-zA-Z0-9_\\-\\.]/', '', substr(strtolower(Input::get('subdomain')), 0, MAX_SUBDOMAIN_LENGTH));
                $exclude = ['www', 'app', 'mail', 'admin', 'blog', 'user', 'contact', 'payment', 'payments', 'billing', 'invoice', 'business', 'owner', 'info', 'ninja', 'docs', 'doc', 'documents'];
                $rules['subdomain'] = "unique:accounts,subdomain,{$user->account_id},id|not_in:" . implode(',', $exclude);
            } else {
                $iframeURL = preg_replace('/[^a-zA-Z0-9_\\-\\:\\/\\.]/', '', substr(strtolower(Input::get('iframe_url')), 0, MAX_IFRAME_URL_LENGTH));
                $iframeURL = rtrim($iframeURL, '/');
            }
            $validator = Validator::make(Input::all(), $rules);
            if ($validator->fails()) {
                return Redirect::to('settings/' . ACCOUNT_EMAIL_SETTINGS)->withErrors($validator)->withInput();
            } else {
                $account = Auth::user()->account;
                $account->subdomain = $subdomain;
                $account->iframe_url = $iframeURL;
                $account->pdf_email_attachment = Input::get('pdf_email_attachment') ? true : false;
                $account->document_email_attachment = Input::get('document_email_attachment') ? true : false;
                $account->email_design_id = Input::get('email_design_id');
                if (Utils::isNinja()) {
                    $account->enable_email_markup = Input::get('enable_email_markup') ? true : false;
                }
                $account->save();
                Session::flash('message', trans('texts.updated_settings'));
            }
        }
        return Redirect::to('settings/' . ACCOUNT_EMAIL_SETTINGS);
    }

Usage Example

 /**
  * @param $section
  * @return \Illuminate\Http\RedirectResponse
  */
 public function doSection($section = ACCOUNT_COMPANY_DETAILS)
 {
     if ($section === ACCOUNT_COMPANY_DETAILS) {
         return AccountController::saveDetails();
     } elseif ($section === ACCOUNT_LOCALIZATION) {
         return AccountController::saveLocalization();
     } elseif ($section == ACCOUNT_PAYMENTS) {
         return self::saveOnlinePayments();
     } elseif ($section === ACCOUNT_NOTIFICATIONS) {
         return AccountController::saveNotifications();
     } elseif ($section === ACCOUNT_EXPORT) {
         return AccountController::export();
     } elseif ($section === ACCOUNT_INVOICE_SETTINGS) {
         return AccountController::saveInvoiceSettings();
     } elseif ($section === ACCOUNT_EMAIL_SETTINGS) {
         return AccountController::saveEmailSettings();
     } elseif ($section === ACCOUNT_INVOICE_DESIGN) {
         return AccountController::saveInvoiceDesign();
     } elseif ($section === ACCOUNT_CUSTOMIZE_DESIGN) {
         return AccountController::saveCustomizeDesign();
     } elseif ($section === ACCOUNT_CLIENT_PORTAL) {
         return AccountController::saveClientPortal();
     } elseif ($section === ACCOUNT_TEMPLATES_AND_REMINDERS) {
         return AccountController::saveEmailTemplates();
     } elseif ($section === ACCOUNT_PRODUCTS) {
         return AccountController::saveProducts();
     } elseif ($section === ACCOUNT_TAX_RATES) {
         return AccountController::saveTaxRates();
     } elseif ($section === ACCOUNT_PAYMENT_TERMS) {
         return AccountController::savePaymetTerms();
     }
 }