AspireCloud/app/Http/JsonLines.php
Chuck Adams 35b967b124
Repo Admin API (#123)
* fix: switch redis driver to predis because laravel is hopeless

* chore: add spatie/laravel-permission

* build: composer update and bump

* style: death to captain obvious (zap laravel's banner comments)

* feat: initial roles and perms

* chore: assign User role on User created

* refactor: rename 'aspire_press' config key to 'aspirecloud'

* feat: require json content-type on admin api routes

* chore: implement BulkImport endpoint

* chore: give RepoAdmin users BulkImport permissions

* docs: update README
2024-12-28 15:57:51 -07:00

28 lines
581 B
PHP

<?php
declare(strict_types=1);
namespace App\Http;
use App\Utils\JSON;
use Generator;
use Illuminate\Http\Request;
trait JsonLines
{
public function lazyJsonLines(Request $request): Generator
{
$handle = $request->getContent(asResource: true);
try {
while (($line = fgets($handle)) !== false) {
$line = trim($line);
if (!$line) {
continue;
}
yield JSON::toAssoc($line);
}
} finally {
\Safe\fclose($handle);
}
}
}