Performance improvements for eager loading (#3584)

* Fixes for Sentry

* performance improvements for eager loading
This commit is contained in:
David Bomba 2020-04-02 20:02:39 +11:00 committed by GitHub
parent f99a89834b
commit cfafd65be0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 41 additions and 69 deletions

View File

@ -60,14 +60,14 @@ class Handler extends ExceptionHandler
app('sentry')->configureScope(function (Scope $scope): void { app('sentry')->configureScope(function (Scope $scope): void {
if(auth()->guard('contact')->user() && auth()->guard('contact')->user()->account->report_errors) { if(auth()->guard('contact')->user() && auth()->guard('contact')->user()->company->account->report_errors) {
$scope->setUser([ $scope->setUser([
'id' => auth()->guard('contact')->user()->account->key, 'id' => auth()->guard('contact')->user()->company->account->key,
'email' => "anonymous@example.com", 'email' => "anonymous@example.com",
'name' => "Anonymous User", 'name' => "Anonymous User",
]); ]);
} }
else if (auth()->user() && auth()->user()->account->report_errors) { else if (auth()->guard('user')->user() && auth()->user()->company()->account->report_errors) {
$scope->setUser([ $scope->setUser([
'id' => auth()->user()->account->key, 'id' => auth()->user()->account->key,
'email' => "anonymous@example.com", 'email' => "anonymous@example.com",
@ -75,6 +75,7 @@ class Handler extends ExceptionHandler
]); ]);
} }
}); });
app('sentry')->captureException($exception); app('sentry')->captureException($exception);

View File

@ -172,9 +172,11 @@ class LoginController extends BaseController
$user->setCompany($user->company_user->account->default_company); $user->setCompany($user->company_user->account->default_company);
$ct = CompanyUser::whereUserId($user->id)->with('company'); // $ct = CompanyUser::whereUserId($user->id)->with('company');
$ct = CompanyUser::whereUserId($user->id);
return $this->listResponse($ct); return $this->listResponse($ct);
} else { } else {
$this->incrementLoginAttempts($request); $this->incrementLoginAttempts($request);

View File

@ -81,6 +81,8 @@ class BaseController extends Controller
$include = implode(",", $this->forced_includes); $include = implode(",", $this->forced_includes);
} }
\Log::error(print_r($include,1));
$this->manager->parseIncludes($include); $this->manager->parseIncludes($include);
$this->serializer = request()->input('serializer') ?: EntityTransformer::API_SERIALIZER_ARRAY; $this->serializer = request()->input('serializer') ?: EntityTransformer::API_SERIALIZER_ARRAY;
@ -256,10 +258,10 @@ class BaseController extends Controller
'company.company_gateways.gateway', 'company.company_gateways.gateway',
'company.clients.contacts', 'company.clients.contacts',
'company.products', 'company.products',
'company.invoices', 'company.invoices.invitations.company',
'company.payments.paymentables', 'company.payments.paymentables',
'company.quotes', 'company.quotes.invitations.company',
'company.credits', 'company.credits.invitations.company',
'company.vendors.contacts', 'company.vendors.contacts',
'company.expenses', 'company.expenses',
'company.tasks', 'company.tasks',

View File

@ -123,7 +123,7 @@ class InvoiceController extends Controller
$invoices->map(function ($invoice) { $invoices->map(function ($invoice) {
$invoice->balance = Number::formatMoney($invoice->balance, $invoice->client); $invoice->balance = Number::formatMoney($invoice->balance, $invoice->client);
$invoice->due_date = $this->formatDate($invoice->due_date, $invoice->client->date_format()); //$invoice->due_date = $this->formatDate($invoice->due_date, $invoice->client->date_format());
return $invoice; return $invoice;
}); });

View File

@ -45,6 +45,11 @@ class SetupController extends Controller
return back(); // This should never be reached. return back(); // This should never be reached.
} }
$mail_driver = $request->input('mail_driver');
if(!$this->failsafeMailCheck())
$mail_driver = 'log';
$_ENV['APP_KEY'] = config('app.key'); $_ENV['APP_KEY'] = config('app.key');
$_ENV['APP_URL'] = $request->input('url'); $_ENV['APP_URL'] = $request->input('url');
$_ENV['APP_DEBUG'] = $request->input('debug') ? 'true' : 'false'; $_ENV['APP_DEBUG'] = $request->input('debug') ? 'true' : 'false';
@ -54,7 +59,7 @@ class SetupController extends Controller
$_ENV['DB_DATABASE1'] = $request->input('database'); $_ENV['DB_DATABASE1'] = $request->input('database');
$_ENV['DB_USERNAME1'] = $request->input('db_username'); $_ENV['DB_USERNAME1'] = $request->input('db_username');
$_ENV['DB_PASSWORD1'] = $request->input('db_password'); $_ENV['DB_PASSWORD1'] = $request->input('db_password');
$_ENV['MAIL_DRIVER'] = $request->input('mail_driver'); $_ENV['MAIL_DRIVER'] = $mail_driver;
$_ENV['MAIL_PORT'] = $request->input('mail_port'); $_ENV['MAIL_PORT'] = $request->input('mail_port');
$_ENV['MAIL_ENCRYPTION'] = $request->input('encryption'); $_ENV['MAIL_ENCRYPTION'] = $request->input('encryption');
$_ENV['MAIL_HOST'] = $request->input('mail_host'); $_ENV['MAIL_HOST'] = $request->input('mail_host');
@ -154,4 +159,17 @@ class SetupController extends Controller
return response()->json(['message' => $e->getMessage()], 400); return response()->json(['message' => $e->getMessage()], 400);
} }
} }
private function failsafeMailCheck($request)
{
$response_array = SystemHealth::testMailServer($request);
if($response_array instanceof Response)
return true;
return false;
}
} }

View File

@ -1,45 +0,0 @@
<?php
/**
* Invoice Ninja (https://invoiceninja.com)
*
* @link https://github.com/invoiceninja/invoiceninja source repository
*
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
*
* @license https://opensource.org/licenses/AAL
*/
namespace App\Http\ViewComposers;
use App\Models\Country;
use App\Models\Currency;
use App\Models\PaymentTerm;
use App\Utils\TranslationHelper;
use Cache;
use Illuminate\Support\Str;
use Illuminate\View\View;
class TranslationComposer
{
/**
* Bind data to the view.
*
* @param View $view
*
* @return void
*/
public function compose(View $view) :void
{
$view->with('industries', TranslationHelper::getIndustries());
$view->with('countries', TranslationHelper::getCountries());
$view->with('payment_types', TranslationHelper::getPaymentTypes());
$view->with('languages', TranslationHelper::getLanguages());
$view->with('currencies', TranslationHelper::getCurrencies());
$view->with('payment_terms', TranslationHelper::getPaymentTerms());
}
}

View File

@ -332,12 +332,16 @@ class Client extends BaseModel implements HasLocalePreference
{ {
$company_gateways = $this->getSetting('company_gateway_ids'); $company_gateways = $this->getSetting('company_gateway_ids');
if ($company_gateways) { info($company_gateways);
info($this->company->id);
if (strlen($company_gateways)>=1) {
$gateways = $this->company->company_gateways->whereIn('id', $payment_gateways); $gateways = $this->company->company_gateways->whereIn('id', $payment_gateways);
} else { } else {
$gateways = $this->company->company_gateways; $gateways = $this->company->company_gateways;
} }
\Log::error($gateways);
foreach ($gateways as $gateway) { foreach ($gateways as $gateway) {
if (in_array(GatewayType::CREDIT_CARD, $gateway->driver($this)->gatewayTypes())) { if (in_array(GatewayType::CREDIT_CARD, $gateway->driver($this)->gatewayTypes())) {
return $gateway; return $gateway;

View File

@ -23,16 +23,6 @@ class ComposerServiceProvider extends ServiceProvider
public function boot() public function boot()
{ {
view()->composer('portal.*', 'App\Http\ViewComposers\PortalComposer'); view()->composer('portal.*', 'App\Http\ViewComposers\PortalComposer');
//view()->composer('*', 'App\Http\ViewComposers\HeaderComposer');
/*
view()->composer(
[
'client.edit',
],
'App\Http\ViewComposers\TranslationComposer'
);
*/
} }
/** /**

View File

@ -49,7 +49,7 @@ trait Inviteable
$entity_type = strtolower(class_basename($this->entityType())); $entity_type = strtolower(class_basename($this->entityType()));
//$this->with('company','contact',$this->entity_type); //$this->with('company','contact',$this->entity_type);
$this->with('company'); //$this->with('company');
$domain = isset($this->company->portal_domain) ?: $this->company->domain(); $domain = isset($this->company->portal_domain) ?: $this->company->domain();

View File

@ -84,7 +84,7 @@
{{ $invoice->number }} {{ $invoice->number }}
</td> </td>
<td class="px-6 py-4 whitespace-no-wrap text-sm leading-5 text-gray-500"> <td class="px-6 py-4 whitespace-no-wrap text-sm leading-5 text-gray-500">
{{ $invoice->formatDate($invoice->date, $invoice->client->date_format()) }} {{ $invoice->due_date }} <!-- $invoice->formatDate($invoice->date, $invoice->client->date_format())-->
</td> </td>
<td class="px-6 py-4 whitespace-no-wrap text-sm leading-5 text-gray-500"> <td class="px-6 py-4 whitespace-no-wrap text-sm leading-5 text-gray-500">
{{ App\Utils\Number::formatMoney($invoice->balance, $invoice->client) }} {{ App\Utils\Number::formatMoney($invoice->balance, $invoice->client) }}