qr code generator

This commit is contained in:
Čarodej
2022-01-19 09:00:54 +01:00
parent 09449539fa
commit 89e886b40c
9 changed files with 104 additions and 16 deletions
@@ -1,20 +1,20 @@
<?php
namespace Domain\Invoices\Controllers;
use App\Http\Controllers\Controller;
use App\Users\Actions\FormatUsageEstimatesAction;
use Domain\Settings\Models\Setting;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use App\Http\Controllers\Controller;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\Foundation\Application;
use App\Users\Actions\FormatUsageEstimatesAction;
use VueFileManager\Subscription\Domain\Transactions\Models\Transaction;
class GetInvoiceController extends Controller
{
public function __construct(
public FormatUsageEstimatesAction $formatUsageEstimates,
) {}
) {
}
public function __invoke(Transaction $invoice): View|Factory|Application
{
@@ -34,4 +34,4 @@ class GetInvoiceController extends Controller
->with('settings', $settings)
->with('invoice', $invoice);
}
}
}
@@ -0,0 +1,33 @@
<?php
namespace Domain\Sharing\Controllers;
use BaconQrCode\Writer;
use Illuminate\Http\Response;
use BaconQrCode\Renderer\Color\Rgb;
use App\Http\Controllers\Controller;
use BaconQrCode\Renderer\ImageRenderer;
use BaconQrCode\Renderer\RendererStyle\Fill;
use BaconQrCode\Renderer\Image\SvgImageBackEnd;
use BaconQrCode\Renderer\RendererStyle\RendererStyle;
class GetShareLinkViaQrCodeController extends Controller
{
public function __invoke($token): Response
{
// Get share url
$url = url('/share', ['token' => $token]);
// Generate qr code
$svg = (new Writer(
new ImageRenderer(
new RendererStyle(192, 2, null, null, Fill::uniformColor(new Rgb(255, 255, 255), new Rgb(0, 0, 0))),
new SvgImageBackEnd
)
))->writeString($url);
$qrCode = trim(substr($svg, strpos($svg, "\n") + 1));
// Return qr code
return response($qrCode, 201);
}
}