style: apply Laravel Pint formatting across codebase

Auto-formatted by Laravel Pint (default Laravel preset): string
concatenation spacing, anonymous class brace placement, constructor
body shorthand, import ordering, and assertion indentation.
This commit is contained in:
Thorsten Bus 2026-03-02 23:02:03 +01:00
parent 5b35afb31d
commit 04d271f96a
48 changed files with 173 additions and 174 deletions

View file

@ -18,6 +18,5 @@ public function __construct(
public int $processedPages = 0,
public int $totalPages = 0,
public array $convertedFiles = [],
) {
}
) {}
}

View file

@ -27,7 +27,7 @@ public function importPro(Request $request): JsonResponse
}
try {
$service = new ProImportService();
$service = new ProImportService;
$songs = $service->import($file);
return response()->json([
@ -53,7 +53,7 @@ public function downloadPro(Song $song): BinaryFileResponse
abort(422, 'Song hat keine Gruppen oder Slides zum Exportieren.');
}
$exportService = new ProExportService();
$exportService = new ProExportService;
$tempPath = $exportService->generateProFile($song);
$filename = preg_replace('/[^a-zA-Z0-9äöüÄÖÜß\-_ ]/', '', $song->title).'.pro';

View file

@ -12,8 +12,7 @@ class ServiceSongController extends Controller
{
public function __construct(
private readonly SongMatchingService $songMatchingService,
) {
}
) {}
/**
* Manuell einen Song aus der DB einem ServiceSong zuordnen.

View file

@ -13,8 +13,7 @@ class SongController extends Controller
{
public function __construct(
private readonly SongService $songService,
) {
}
) {}
/**
* Alle Songs auflisten (paginiert, durchsuchbar).

View file

@ -13,8 +13,7 @@ class TranslationController extends Controller
{
public function __construct(
private readonly TranslationService $translationService,
) {
}
) {}
public function page(Song $song): Response
{

View file

@ -23,8 +23,7 @@ class ConvertPowerPointJob implements ShouldQueue
public function __construct(
public string $inputPath,
public string $jobId,
) {
}
) {}
public function handle(FileConversionService $conversionService): void
{

View file

@ -15,8 +15,7 @@ public function __construct(
public string $songName,
public ?string $ccliId,
public mixed $service,
) {
}
) {}
public function build()
{

View file

@ -2,11 +2,11 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Casts\Attribute;
class Song extends Model
{

View file

@ -11,6 +11,7 @@ class User extends Authenticatable
{
/** @use HasFactory<\Database\Factories\UserFactory> */
use HasFactory;
use Notifiable;
/**

View file

@ -2,9 +2,9 @@
namespace App\Providers;
use App\Socialite\ChurchToolsProvider;
use Illuminate\Support\Facades\Vite;
use Illuminate\Support\ServiceProvider;
use App\Socialite\ChurchToolsProvider;
use Laravel\Socialite\Facades\Socialite;
class AppServiceProvider extends ServiceProvider

View file

@ -3,11 +3,11 @@
namespace App\Services;
use App\Models\ApiRequestLog;
use Closure;
use CTApi\CTConfig;
use CTApi\Models\Events\Event\EventAgendaRequest;
use CTApi\Models\Events\Event\EventRequest;
use CTApi\Models\Events\Song\SongRequest;
use Closure;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\DB;
@ -24,8 +24,7 @@ public function __construct(
private readonly ?Closure $songFetcher = null,
private readonly ?Closure $agendaFetcher = null,
private readonly ?Closure $eventServiceFetcher = null,
) {
}
) {}
public function sync(): array
{

View file

@ -85,7 +85,7 @@ public function processZip(UploadedFile|string|SplFileInfo $file): array
$this->assertSize($file, $sourcePath);
$zip = new ZipArchive();
$zip = new ZipArchive;
if ($zip->open($sourcePath) !== true) {
throw new InvalidArgumentException('ZIP-Datei konnte nicht geoeffnet werden.');
}
@ -121,11 +121,13 @@ public function processZip(UploadedFile|string|SplFileInfo $file): array
if (in_array($entryExtension, self::IMAGE_EXTENSIONS, true)) {
$results[] = $this->convertImage($entryPath);
continue;
}
if (in_array($entryExtension, self::POWERPOINT_EXTENSIONS, true)) {
$results[] = ['job_id' => $this->convertPowerPoint($entryPath)];
continue;
}
@ -240,6 +242,7 @@ private function deleteDirectory(string $directory): void
if ($item->isDir()) {
@rmdir($item->getPathname());
continue;
}
@ -265,6 +268,6 @@ private function createImageManager(): mixed
$managerClass = implode('\\', ['Intervention', 'Image', 'ImageManager']);
$driverClass = implode('\\', ['Intervention', 'Image', 'Drivers', 'Gd', 'Driver']);
return new $managerClass(new $driverClass());
return new $managerClass(new $driverClass);
}
}

View file

@ -6,7 +6,6 @@
use App\Models\SongArrangement;
use App\Models\SongArrangementGroup;
use App\Models\SongGroup;
use App\Models\SongSlide;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\DB;
use ProPresenter\Parser\ProFileReader;
@ -34,7 +33,7 @@ public function import(UploadedFile $file): array
/** @return Song[] */
private function importZip(UploadedFile $file): array
{
$zip = new ZipArchive();
$zip = new ZipArchive;
if ($zip->open($file->getRealPath()) !== true) {
throw new \RuntimeException('ZIP-Datei konnte nicht geöffnet werden.');

View file

@ -51,7 +51,7 @@ protected function getUserByToken($token): array
protected function mapUserToObject(array $user): User
{
return (new User())->setRaw($user)->map([
return (new User)->setRaw($user)->map([
'id' => $user['id'] ?? null,
'name' => $user['displayName'] ?? trim(($user['firstName'] ?? '').' '.($user['lastName'] ?? '')),
'email' => $user['email'] ?? null,

View file

@ -1,9 +1,9 @@
<?php
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
use Illuminate\Console\Scheduling\Schedule;
return Application::configure(basePath: dirname(__DIR__))
->withRouting(

View file

@ -4,7 +4,8 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class () extends Migration {
return new class extends Migration
{
public function up(): void
{
Schema::table('users', function (Blueprint $table) {

View file

@ -4,7 +4,8 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class () extends Migration {
return new class extends Migration
{
public function up(): void
{
Schema::create('services', function (Blueprint $table) {

View file

@ -4,7 +4,8 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class () extends Migration {
return new class extends Migration
{
public function up(): void
{
Schema::create('songs', function (Blueprint $table) {

View file

@ -4,7 +4,8 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class () extends Migration {
return new class extends Migration
{
public function up(): void
{
Schema::create('song_groups', function (Blueprint $table) {

View file

@ -4,7 +4,8 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class () extends Migration {
return new class extends Migration
{
public function up(): void
{
Schema::create('song_slides', function (Blueprint $table) {

View file

@ -4,7 +4,8 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class () extends Migration {
return new class extends Migration
{
public function up(): void
{
Schema::create('song_arrangements', function (Blueprint $table) {

View file

@ -4,7 +4,8 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class () extends Migration {
return new class extends Migration
{
public function up(): void
{
Schema::create('song_arrangement_groups', function (Blueprint $table) {

View file

@ -4,7 +4,8 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class () extends Migration {
return new class extends Migration
{
public function up(): void
{
Schema::create('service_songs', function (Blueprint $table) {

View file

@ -4,7 +4,8 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class () extends Migration {
return new class extends Migration
{
public function up(): void
{
Schema::create('slides', function (Blueprint $table) {

View file

@ -4,7 +4,8 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class () extends Migration {
return new class extends Migration
{
public function up(): void
{
Schema::create('cts_sync_log', function (Blueprint $table) {

View file

@ -4,7 +4,8 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class () extends Migration {
return new class extends Migration
{
public function up(): void
{
Schema::create('api_request_logs', function (Blueprint $table) {

View file

@ -4,7 +4,8 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class () extends Migration {
return new class extends Migration
{
/**
* Run the migrations.
*/

View file

@ -4,7 +4,8 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class () extends Migration {
return new class extends Migration
{
public function up(): void
{
Schema::table('songs', function (Blueprint $table) {

View file

@ -19,7 +19,6 @@
Route::middleware('auth:sanctum')->group(function () {
Route::apiResource('songs', SongController::class)->names('api.songs');
Route::post('/service-songs/{serviceSongId}/assign', [ServiceSongController::class, 'assignSong'])
->name('api.service-songs.assign');

View file

@ -1,11 +1,11 @@
<?php
use App\Services\ChurchToolsService;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
beforeEach(function () {
ensureSyncTables();
@ -132,8 +132,7 @@ public function __construct(
private readonly string $startDate,
private readonly ?string $note = null,
private readonly array $eventServices = [],
) {
}
) {}
public function getId(): string
{
@ -166,8 +165,7 @@ final class FakeEventService
public function __construct(
private readonly string $name,
private readonly ?FakePerson $person,
) {
}
) {}
public function getName(): string
{
@ -185,8 +183,7 @@ final class FakePerson
public function __construct(
private readonly string $firstName,
private readonly string $lastName,
) {
}
) {}
public function getFirstName(): string
{
@ -201,9 +198,7 @@ public function getLastName(): string
final class FakeAgenda
{
public function __construct(private readonly array $songs)
{
}
public function __construct(private readonly array $songs) {}
public function getSongs(): array
{
@ -217,8 +212,7 @@ public function __construct(
private readonly int $id,
private readonly string $title,
private readonly ?string $ccli,
) {
}
) {}
public function getId(): string
{

View file

@ -34,7 +34,7 @@
'type' => 'text',
'cclid' => '7115744',
'lyricParts' => [
['key' => 'v1', 'text' => "Du bist hier"],
['key' => 'v1', 'text' => 'Du bist hier'],
],
],
],

View file

@ -3,7 +3,6 @@
namespace Tests\Feature;
use App\Mail\MissingSongRequest;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Route;
use Tests\TestCase;
@ -28,7 +27,7 @@ public function test_missing_song_request_mailable_renders_with_german_content()
$serviceDate = '2026-03-08';
// Create a mock service object
$service = new \stdClass();
$service = new \stdClass;
$service->id = $serviceId;
$service->title = $serviceTitle;
$service->date = $serviceDate;
@ -55,7 +54,7 @@ public function test_missing_song_request_mailable_has_correct_subject(): void
$songName = 'Großer Gott';
$ccliId = '12345678';
$service = new \stdClass();
$service = new \stdClass;
$service->id = 1;
$service->title = 'Sonntagsgottesdienst';
$service->date = '2026-03-08';

View file

@ -50,7 +50,7 @@
});
it('creates a new user from OAuth callback', function () {
$socialiteUser = new SocialiteUser();
$socialiteUser = new SocialiteUser;
$socialiteUser->map([
'id' => '42',
'name' => 'Max Mustermann',
@ -104,7 +104,7 @@
'churchtools_id' => 42,
]);
$socialiteUser = new SocialiteUser();
$socialiteUser = new SocialiteUser;
$socialiteUser->map([
'id' => '42',
'name' => 'Max Mustermann',

View file

@ -12,7 +12,7 @@ final class ProFileImportTest extends TestCase
{
use RefreshDatabase;
private function testProFile(): UploadedFile
private function test_pro_file(): UploadedFile
{
$sourcePath = base_path('../propresenter-work/ref/Test.pro');
@ -24,7 +24,7 @@ public function test_import_pro_datei_erstellt_song_mit_gruppen_und_slides(): vo
$user = User::factory()->create();
$response = $this->actingAs($user)->postJson(route('api.songs.import-pro'), [
'file' => $this->testProFile(),
'file' => $this->test_pro_file(),
]);
$response->assertOk();
@ -43,13 +43,13 @@ public function test_import_pro_ohne_ccli_erstellt_neuen_song(): void
$user = User::factory()->create();
$this->actingAs($user)->postJson(route('api.songs.import-pro'), [
'file' => $this->testProFile(),
'file' => $this->test_pro_file(),
]);
$this->assertSame(1, Song::count());
$this->actingAs($user)->postJson(route('api.songs.import-pro'), [
'file' => $this->testProFile(),
'file' => $this->test_pro_file(),
]);
$this->assertSame(2, Song::count());
@ -71,7 +71,7 @@ public function test_import_pro_upsert_mit_ccli_dupliziert_nicht(): void
$this->assertSame(1, Song::count());
$response = $this->actingAs($user)->postJson(route('api.songs.import-pro'), [
'file' => $this->testProFile(),
'file' => $this->test_pro_file(),
]);
$response->assertOk();
@ -94,7 +94,7 @@ public function test_import_pro_lehnt_ungueltige_datei_ab(): void
public function test_import_pro_erfordert_authentifizierung(): void
{
$response = $this->postJson(route('api.songs.import-pro'), [
'file' => $this->testProFile(),
'file' => $this->test_pro_file(),
]);
$response->assertUnauthorized();
@ -105,7 +105,7 @@ public function test_import_pro_erstellt_arrangement_gruppen(): void
$user = User::factory()->create();
$this->actingAs($user)->postJson(route('api.songs.import-pro'), [
'file' => $this->testProFile(),
'file' => $this->test_pro_file(),
]);
$song = Song::where('title', 'Test')->first();

View file

@ -149,7 +149,7 @@
// Build zip
$zipPath = $tempDir.'/slides.zip';
$zip = new ZipArchive();
$zip = new ZipArchive;
$zip->open($zipPath, ZipArchive::CREATE);
$zip->addFile($imgPath, 'slide1.png');
$zip->close();

View file

@ -1,7 +1,6 @@
<?php
use App\Mail\MissingSongRequest;
use App\Models\Service;
use App\Models\ServiceSong;
use App\Models\Song;
use App\Models\SongArrangement;

View file

@ -1,9 +1,8 @@
<?php
use App\Services\ChurchToolsService;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
beforeEach(function () {
ensureSyncControllerTables();

View file

@ -196,10 +196,10 @@
SongSlide::factory()->create([
'song_group_id' => $group->id,
'order' => 1,
'text_content' => "Line 1",
'text_content' => 'Line 1',
]);
$this->service->importTranslation($song, "Zeile 1");
$this->service->importTranslation($song, 'Zeile 1');
$song->refresh();
expect($song->has_translation)->toBeTrue();
@ -229,15 +229,15 @@
$slide1 = SongSlide::factory()->create([
'song_group_id' => $group->id,
'order' => 1,
'text_content' => "Original",
'text_content_translated' => "Übersetzt",
'text_content' => 'Original',
'text_content_translated' => 'Übersetzt',
]);
$slide2 = SongSlide::factory()->create([
'song_group_id' => $group->id,
'order' => 2,
'text_content' => "Original 2",
'text_content_translated' => "Übersetzt 2",
'text_content' => 'Original 2',
'text_content_translated' => 'Übersetzt 2',
]);
$this->service->removeTranslation($song);
@ -350,8 +350,8 @@
SongSlide::factory()->create([
'song_group_id' => $group->id,
'order' => 1,
'text_content' => "Original",
'text_content_translated' => "Übersetzt",
'text_content' => 'Original',
'text_content_translated' => 'Übersetzt',
]);
$response = $this->actingAs($this->user)