Add inline logo option

This commit is contained in:
David Bomba 2023-09-11 11:22:10 +10:00
parent 2012e0dd5e
commit 8ff3c91930
3 changed files with 33 additions and 2 deletions

View File

@ -697,4 +697,19 @@ class CompanyController extends BaseController
return $this->itemResponse($company->fresh());
}
public function logo()
{
/** @var \App\Models\User $user */
$user = auth()->user();
$company = $user->company();
$logo = strlen($company->settings->company_logo) > 5 ? $company->settings->company_logo : 'https://pdf.invoicing.co/favicon-v2.png';
$headers = ['Content-Disposition' => 'inline'];
return response()->streamDownload(function () use ($logo){
echo @file_get_contents($logo);
}, 'logo.png', $headers);
}
}

View File

@ -177,6 +177,7 @@ Route::group(['middleware' => ['throttle:api', 'api_db', 'token_auth', 'locale']
Route::post('companies/purge_save_settings/{company}', [MigrationController::class, 'purgeCompanySaveSettings'])->middleware('password_protected');
Route::resource('companies', CompanyController::class); // name = (companies. index / create / show / update / destroy / edit
Route::post('companies/{company}/logo', [CompanyController::class, 'logo']);
Route::put('companies/{company}/upload', [CompanyController::class, 'upload']);
Route::post('companies/{company}/default', [CompanyController::class, 'default']);
Route::post('companies/updateOriginTaxData/{company}', [CompanyController::class, 'updateOriginTaxData'])->middleware('throttle:3,1');

View File

@ -34,6 +34,8 @@ class CompanyTest extends TestCase
use MockAccountData;
use DatabaseTransactions;
public $faker;
protected function setUp() :void
{
parent::setUp();
@ -47,6 +49,19 @@ class CompanyTest extends TestCase
$this->makeTestData();
}
public function testCompanyLogoInline()
{
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->postJson("/api/v1/companies/{$this->company->hashed_id}/logo");
$response->assertStatus(200);
$response->streamedContent();
}
public function testUpdateCompanyPropertyInvoiceTaskHours()
{
$company_update = [
@ -56,9 +71,9 @@ class CompanyTest extends TestCase
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->putJson('/api/v1/companies/'.$this->encodePrimaryKey($this->company->id), $company_update)
->assertStatus(200);
])->putJson('/api/v1/companies/'.$this->encodePrimaryKey($this->company->id), $company_update);
$response->assertStatus(200);
$arr = $response->json();