Add throttling

This commit is contained in:
David Bomba 2022-05-11 22:38:19 +10:00
parent 2c765d5187
commit 755b366c81
3 changed files with 37 additions and 28 deletions

View File

@ -72,11 +72,15 @@ class WePayFailureNotification extends Notification
public function toSlack($notifiable) public function toSlack($notifiable)
{ {
$ip = "";
if(request())
$ip = request()->getClientIp();
return (new SlackMessage) return (new SlackMessage)
->success() ->success()
->from(ctrans('texts.notification_bot')) ->from(ctrans('texts.notification_bot'))
->image('https://app.invoiceninja.com/favicon.png') ->image('https://app.invoiceninja.com/favicon.png')
->content("New WePay ACH Failure from Company ID: ". $this->company_id); ->content("New WePay ACH Failure from Company ID: {$this->company_id} IP: {$ip}" );
} }
} }

View File

@ -162,43 +162,48 @@ class ProfitLoss
->cursor(); ->cursor();
if($this->is_tax_included) return $this->calculateExpenses($expenses);
return $this->calculateExpensesWithTaxes($expenses);
return $this->calculateExpensesWithoutTaxes($expenses);
} }
private function calculateExpensesWithTaxes($expenses)
{
foreach($expenses as $expense)
{
if(!$expense->calculate_tax_by_amount && !$expense->uses_inclusive_taxes)
{
}
}
}
private function calculateExpensesWithoutTaxes($expenses) private function calculateExpensesWithoutTaxes($expenses)
{ {
$total = 0;
$converted_total = 0; $data = [];
foreach($expenses as $expense) foreach($expenses as $expense)
{ {
$total += $expense->amount; $data[] = [
$converted_total += $this->getConvertedTotal($expense); 'total' => $expense->amount,
'converted_total' => $this->getConvertedTotal($expense->amount, $expense->exchange_rate),
'tax' => $this->getTax($expense),
];
} }
} }
private function getConvertedTotal($expense) private function getTax($expense)
{ {
return round($expense->amount * $expense->exchange_rate,2); $amount = $expense->amount;
//is amount tax
if($expense->calculate_tax_by_amount)
{
$total_tax = $expense->tax_amount1 + $expense->tax_amount2 + $expense->tax_amount3;
}
return ($amount - ($amount / (1 + ($tax_rate / 100))));
}
private function getConvertedTotal($amount, $exchange_rate)
{
return round($amount * $exchange_rate,2);
} }
private function expenseCalcWithTax() private function expenseCalcWithTax()

View File

@ -19,11 +19,11 @@ Route::group(['middleware' => ['throttle:300,1', 'api_secret_check']], function
}); });
Route::group(['middleware' => ['throttle:10,1','api_secret_check','email_db']], function () { Route::group(['middleware' => ['throttle:10,1','api_secret_check','email_db']], function () {
Route::post('api/v1/login', 'Auth\LoginController@apiLogin')->name('login.submit'); Route::post('api/v1/login', 'Auth\LoginController@apiLogin')->name('login.submit')->middleware('throttle:20,1');;
Route::post('api/v1/reset_password', 'Auth\ForgotPasswordController@sendResetLinkEmail'); Route::post('api/v1/reset_password', 'Auth\ForgotPasswordController@sendResetLinkEmail');
}); });
Route::group(['middleware' => ['throttle:300,1', 'api_db', 'token_auth', 'locale'], 'prefix' => 'api/v1', 'as' => 'api.'], function () { Route::group(['middleware' => ['throttle:100,1', 'api_db', 'token_auth', 'locale'], 'prefix' => 'api/v1', 'as' => 'api.'], function () {
Route::post('check_subdomain', 'SubdomainController@index')->name('check_subdomain'); Route::post('check_subdomain', 'SubdomainController@index')->name('check_subdomain');
Route::get('ping', 'PingController@index')->name('ping'); Route::get('ping', 'PingController@index')->name('ping');
Route::get('health_check', 'PingController@health')->name('health_check'); Route::get('health_check', 'PingController@health')->name('health_check');
@ -152,7 +152,7 @@ Route::group(['middleware' => ['throttle:300,1', 'api_db', 'token_auth', 'locale
Route::post('recurring_quotes/bulk', 'RecurringQuoteController@bulk')->name('recurring_quotes.bulk'); Route::post('recurring_quotes/bulk', 'RecurringQuoteController@bulk')->name('recurring_quotes.bulk');
Route::put('recurring_quotes/{recurring_quote}/upload', 'RecurringQuoteController@upload'); Route::put('recurring_quotes/{recurring_quote}/upload', 'RecurringQuoteController@upload');
Route::post('refresh', 'Auth\LoginController@refresh'); Route::post('refresh', 'Auth\LoginController@refresh')->middleware('throttle:20,1');
Route::post('reports/clients', 'Reports\ClientReportController'); Route::post('reports/clients', 'Reports\ClientReportController');
Route::post('reports/contacts', 'Reports\ClientContactReportController'); Route::post('reports/contacts', 'Reports\ClientContactReportController');