QrCodeController.php 984 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Api\v1\Controllers;
  3. use App\Api\v1\Requests\QrCodeDecodeRequest;
  4. use App\Facades\QrCode;
  5. use App\Http\Controllers\Controller;
  6. use App\Models\TwoFAccount;
  7. class QrCodeController extends Controller
  8. {
  9. /**
  10. * Show a QR code image
  11. *
  12. * @return \Illuminate\Http\JsonResponse
  13. */
  14. public function show(TwoFAccount $twofaccount)
  15. {
  16. $this->authorize('view', $twofaccount);
  17. $uri = $twofaccount->getURI();
  18. return response()->json(['qrcode' => QrCode::encode($uri)], 200);
  19. }
  20. /**
  21. * Decode an uploaded QR Code image
  22. *
  23. * @return \Illuminate\Http\JsonResponse
  24. */
  25. public function decode(QrCodeDecodeRequest $request)
  26. {
  27. $file = $request->file('qrcode');
  28. return $file instanceof \Illuminate\Http\UploadedFile
  29. ? response()->json(['data' => QrCode::decode($file)], 200)
  30. : response()->json(['message' => __('errors.file_upload_failed')], 500);
  31. }
  32. }