QrCodeController.php 1.0 KB

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. * @param \App\Models\TwoFAccount $twofaccount
  13. * @return \Illuminate\Http\JsonResponse
  14. */
  15. public function show(TwoFAccount $twofaccount)
  16. {
  17. $uri = $twofaccount->getURI();
  18. return response()->json(['qrcode' => QrCode::encode($uri)], 200);
  19. }
  20. /**
  21. * Decode an uploaded QR Code image
  22. *
  23. * @param \App\Api\v1\Requests\QrCodeDecodeRequest $request
  24. * @return \Illuminate\Http\JsonResponse
  25. */
  26. public function decode(QrCodeDecodeRequest $request)
  27. {
  28. $file = $request->file('qrcode');
  29. return $file instanceof \Illuminate\Http\UploadedFile
  30. ? response()->json(['data' => QrCode::decode($file)], 200)
  31. : response()->json(['message' => __('errors.file_upload_failed')], 500);
  32. }
  33. }