diff --git a/app/Http/Controllers/QuoteController.php b/app/Http/Controllers/QuoteController.php index 1d7c6ff79ecb..d3f26596b839 100644 --- a/app/Http/Controllers/QuoteController.php +++ b/app/Http/Controllers/QuoteController.php @@ -782,6 +782,11 @@ class QuoteController extends BaseController public function downloadPdf($invitation_key) { $invitation = $this->quote_repo->getInvitationByKey($invitation_key); + + if (! $invitation) { + return response()->json(['message' => 'no record found'], 400); + } + $contact = $invitation->contact; $quote = $invitation->quote; diff --git a/routes/api.php b/routes/api.php index bd443d6d7353..dcd6cb570de3 100644 --- a/routes/api.php +++ b/routes/api.php @@ -245,6 +245,7 @@ Route::group(['middleware' => ['throttle:300,1', 'api_db', 'token_auth', 'locale Route::get('quotes/{quote}/{action}', [QuoteController::class, 'action'])->name('quotes.action'); Route::post('quotes/bulk', [QuoteController::class, 'bulk'])->name('quotes.bulk'); Route::put('quotes/{quote}/upload', [QuoteController::class, 'upload']); + Route::get('quote/{invitation_key}/download', [QuoteController::class, 'downloadPdf'])->name('quotes.downloadPdf'); Route::resource('recurring_expenses', RecurringExpenseController::class); Route::post('recurring_expenses/bulk', [RecurringExpenseController::class, 'bulk'])->name('recurring_expenses.bulk'); diff --git a/tests/Feature/QuoteTest.php b/tests/Feature/QuoteTest.php index 0477a4ce0dff..1550e8ec8206 100644 --- a/tests/Feature/QuoteTest.php +++ b/tests/Feature/QuoteTest.php @@ -50,6 +50,20 @@ class QuoteTest extends TestCase ); } + public function testQuoteDownloadPDF() + { + $i = $this->quote->invitations->first(); + + $response = $this->withHeaders([ + 'X-API-SECRET' => config('ninja.api_secret'), + 'X-API-TOKEN' => $this->token, + ])->get("/api/v1/quote/{$i->key}/download"); + + $response->assertStatus(200); + $this->assertTrue($response->headers->get('content-type') == 'application/pdf'); + + } + public function testQuoteListApproved() { $response = $this->withHeaders([