Updates for routes

This commit is contained in:
David Bomba 2025-10-28 08:13:52 +11:00
parent 3f391b868b
commit 9aec1415d8
4 changed files with 25 additions and 21 deletions

View File

@ -96,7 +96,7 @@ class StoreSchedulerRequest extends Request
'parameters.auto_send' => ['bail','sometimes', 'boolean', 'required_if:template,invoice_outstanding_tasks'],
'parameters.invoice_id' => ['bail', 'string', 'required_if:template,payment_schedule', new InvoiceWithNoExistingSchedule()],
'parameters.auto_bill' => ['bail', 'boolean', 'required_if:template,payment_schedule'],
'parameters.template' => ['bail', 'sometimes', 'string', Rule::in($this->templates)],
'parameters.template' => ['bail', 'sometimes', 'nullable', 'string', Rule::in($this->templates)],
'parameters.schedule' => ['bail', 'array', 'required_if:template,payment_schedule', 'min:1'],
'parameters.schedule.*.id' => ['bail','sometimes', 'integer'],
'parameters.schedule.*.date' => ['bail','sometimes', 'date:Y-m-d'],

View File

@ -93,7 +93,7 @@ class UpdateSchedulerRequest extends Request
'parameters.auto_send' => ['bail','sometimes', 'boolean', 'required_if:template,invoice_outstanding_tasks'],
// 'parameters.invoice_id' => ['bail','sometimes', 'string', 'required_if:template,payment_schedule'],
'parameters.auto_bill' => ['bail','sometimes', 'boolean', 'required_if:template,payment_schedule'],
'parameters.template' => ['bail', 'sometimes', 'string', Rule::in($this->templates)],
'parameters.template' => ['bail', 'sometimes', 'nullable', 'string', Rule::in($this->templates)],
'parameters.schedule' => ['bail', 'array', 'required_if:template,payment_schedule','min:1'],
'parameters.schedule.*.id' => ['bail','sometimes', 'integer'],

View File

@ -11,6 +11,7 @@
|
*/
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\SNSController;
use App\Http\Controllers\BaseController;
use App\Http\Controllers\PingController;
use App\Http\Controllers\SmtpController;
@ -49,6 +50,7 @@ use App\Http\Controllers\WebhookController;
use App\Http\Controllers\ActivityController;
use App\Http\Controllers\DocumentController;
use App\Http\Controllers\EInvoiceController;
use App\Http\Controllers\FeedbackController;
use App\Http\Controllers\LocationController;
use App\Http\Controllers\PostMarkController;
use App\Http\Controllers\TemplateController;
@ -116,6 +118,7 @@ use App\Http\Controllers\Reports\ARDetailReportController;
use App\Http\Controllers\Reports\DocumentReportController;
use App\Http\Controllers\Reports\ARSummaryReportController;
use App\Http\Controllers\Reports\QuoteItemReportController;
use App\Http\Controllers\Reports\TaxPeriodReportController;
use App\Http\Controllers\Reports\UserSalesReportController;
use App\Http\Controllers\Reports\TaxSummaryReportController;
use App\Http\Controllers\Support\Messages\SendingController;
@ -189,6 +192,7 @@ Route::group(['middleware' => ['throttle:api', 'token_auth', 'valid_json','local
Route::post('reactivate_email/{bounce_id}', [ClientController::class, 'reactivateEmail'])->name('clients.reactivate_email');
Route::post('feedback', FeedbackController::class)->name('feedback');
Route::post('filters/{entity}', [FilterController::class, 'index'])->name('filters');
Route::resource('client_gateway_tokens', ClientGatewayTokenController::class);
@ -238,7 +242,7 @@ Route::group(['middleware' => ['throttle:api', 'token_auth', 'valid_json','local
Route::post('einvoice/validateEntity', [EInvoiceController::class, 'validateEntity'])->name('einvoice.validateEntity');
Route::post('einvoice/configurations', [EInvoiceController::class, 'configurations'])->name('einvoice.configurations');
Route::post('einvoice/peppol/legal_entity', [EInvoicePeppolController::class, 'show'])->name('einvoice.peppol.legal_entity');
Route::post('einvoice/peppol/setup', [EInvoicePeppolController::class, 'setup'])->name('einvoice.peppol.setup');
Route::post('einvoice/peppol/disconnect', [EInvoicePeppolController::class, 'disconnect'])->name('einvoice.peppol.disconnect');
@ -271,11 +275,13 @@ Route::group(['middleware' => ['throttle:api', 'token_auth', 'valid_json','local
Route::post('import', [ImportController::class, 'import'])->name('import.import');
Route::post('import_json', [ImportJsonController::class, 'import'])->name('import.import_json');
Route::post('preimport', [ImportController::class, 'preimport'])->name('import.preimport');
Route::resource('invoices', InvoiceController::class); // name = (invoices. index / create / show / update / destroy / edit
Route::get('invoices/{invoice}/delivery_note', [InvoiceController::class, 'deliveryNote'])->name('invoices.delivery_note');
Route::get('invoices/{invoice}/{action}', [InvoiceController::class, 'action'])->name('invoices.action');
Route::put('invoices/{invoice}/upload', [InvoiceController::class, 'upload'])->name('invoices.upload');
Route::post('invoices/{invoice}/payment_schedule', [InvoiceController::class, 'paymentSchedule'])->name('invoices.payment_schedule');
Route::delete('invoices/{invoice}/payment_schedule', [InvoiceController::class, 'deletePaymentSchedule'])->name('invoices.delete_payment_schedule');
Route::get('invoice/{invitation_key}/download', [InvoiceController::class, 'downloadPdf'])->name('invoices.downloadPdf');
Route::get('invoice/{invitation_key}/download_e_invoice', [InvoiceController::class, 'downloadEInvoice'])->name('invoices.downloadEInvoice');
Route::post('invoices/bulk', [InvoiceController::class, 'bulk'])->name('invoices.bulk');
@ -316,7 +322,7 @@ Route::group(['middleware' => ['throttle:api', 'token_auth', 'valid_json','local
Route::resource('projects', ProjectController::class); // name = (projects. index / create / show / update / destroy / edit
Route::post('projects/bulk', [ProjectController::class, 'bulk'])->name('projects.bulk');
Route::put('projects/{project}/upload', [ProjectController::class, 'upload'])->name('projects.upload');
Route::resource('purchase_orders', PurchaseOrderController::class);
Route::post('purchase_orders/bulk', [PurchaseOrderController::class, 'bulk'])->name('purchase_orders.bulk');
Route::put('purchase_orders/{purchase_order}/upload', [PurchaseOrderController::class, 'upload']);
@ -370,6 +376,7 @@ Route::group(['middleware' => ['throttle:api', 'token_auth', 'valid_json','local
Route::post('reports/client_balance_report', ClientBalanceReportController::class);
Route::post('reports/client_sales_report', ClientSalesReportController::class);
Route::post('reports/tax_summary_report', TaxSummaryReportController::class);
Route::post('reports/tax_period_report', TaxPeriodReportController::class);
Route::post('reports/user_sales_report', UserSalesReportController::class);
Route::post('reports/projects', ProjectReportController::class);
Route::post('reports/preview/{hash}', ReportPreviewController::class);
@ -410,7 +417,7 @@ Route::group(['middleware' => ['throttle:api', 'token_auth', 'valid_json','local
Route::post('settings/disable_two_factor', [TwoFactorController::class, 'disableTwoFactor']);
Route::post('verify', [TwilioController::class, 'generate'])->name('verify.generate')->middleware('throttle:daily-verify');
Route::post('verify/confirm', [TwilioController::class, 'confirm'])->name('verify.confirm');
Route::post('verify/confirm', [TwilioController::class, 'confirm'])->name('verify.confirm')->middleware('throttle:daily-verify');
Route::resource('vendors', VendorController::class); // name = (vendors. index / create / show / update / destroy / edit
Route::post('vendors/bulk', [VendorController::class, 'bulk'])->name('vendors.bulk');
@ -463,7 +470,7 @@ Route::group(['middleware' => ['throttle:api', 'token_auth', 'valid_json','local
});
Route::post('api/v1/sms_reset', [TwilioController::class, 'generate2faResetCode'])->name('sms_reset.generate')->middleware('throttle:daily-verify');
Route::post('api/v1/sms_reset/confirm', [TwilioController::class, 'confirm2faResetCode'])->name('sms_reset.confirm')->middleware('throttle:3,1');
Route::post('api/v1/sms_reset/confirm', [TwilioController::class, 'confirm2faResetCode'])->name('sms_reset.confirm')->middleware('throttle:daily-verify');
Route::match(['get', 'post'], 'payment_webhook/{company_key}/{company_gateway_id}', PaymentWebhookController::class)
->middleware('throttle:1000,1')
@ -474,6 +481,7 @@ Route::match(['get', 'post'], 'payment_notification_webhook/{company_key}/{compa
->name('payment_notification_webhook');
Route::post('api/v1/postmark_webhook', [PostMarkController::class, 'webhook'])->middleware('throttle:5000,1');
Route::post('api/v1/sns_webhook', [SNSController::class, 'webhook'])->middleware('throttle:5000,1');
Route::post('api/v1/postmark_inbound_webhook', [PostMarkController::class, 'inboundWebhook'])->middleware('throttle:1000,1');
Route::post('api/v1/mailgun_webhook', [MailgunController::class, 'webhook'])->middleware('throttle:1000,1');
Route::post('api/v1/mailgun_inbound_webhook', [MailgunController::class, 'inboundWebhook'])->middleware('throttle:1000,1');
@ -507,4 +515,4 @@ Route::get('/health', function () {
'status' => 'ok',
'message' => 'API is healthy',
]);
})->middleware('throttle:20,1');
})->middleware('throttle:20,1');

View File

@ -416,23 +416,19 @@ class SchedulerTest extends TestCase
],
];
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->postJson('/api/v1/task_schedulers', $data);
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->postJson('/api/v1/task_schedulers', $data);
$response->assertStatus(200);
$response->assertStatus(200);
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->postJson('/api/v1/task_schedulers', $data);
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->postJson('/api/v1/task_schedulers', $data);
$response->assertStatus(422);