139 lines
4.6 KiB
PHP
Executable File
139 lines
4.6 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Agent;
|
|
use App\Models\AgentPlus;
|
|
use App\Models\TransfertCommissionTransaction;
|
|
use App\Models\User;
|
|
use App\Traits\ApiResponser;
|
|
use App\Traits\Helper;
|
|
use Barryvdh\DomPDF\Facade as PDF;
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
class QRCodeController extends Controller
|
|
{
|
|
use ApiResponser;
|
|
use Helper;
|
|
|
|
/**
|
|
* Create a new controller instance.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct()
|
|
{
|
|
//
|
|
}
|
|
|
|
//Generer le QRCode d'un utilisateur
|
|
public function generate($id_user)
|
|
{
|
|
$user = User::findOrFail($id_user);
|
|
try {
|
|
//Check if the directory already exists.
|
|
$directoryName = './qrcodes/';
|
|
if (!is_dir($directoryName)) {
|
|
mkdir($directoryName, 0755);
|
|
}
|
|
|
|
$pdf = PDF::loadView('emails.qr_code', ['lastname' => $user->lastname, 'data' => $user->id])
|
|
->setPaper('a4', 'portrait')->setWarnings(false)->save(public_path($directoryName . $user->id . '.pdf'));
|
|
// $recipients = [preg_replace("/\s+/", "", $email)]; // Supprimer les espaces dans le mail
|
|
// Mail::mailer('smtp')->raw($messageText, function ($message) use ($recipients, $title, $pdf, $notice) {
|
|
// $message->subject($title)
|
|
// ->to($recipients)
|
|
// ->attachData($pdf->output(), $title . ' - ' . $notice->id_tax_notice . ".pdf");
|
|
// });
|
|
|
|
$user->has_qr_code = 1;
|
|
$user->save();
|
|
return $this->successResponse(trans('messages.successful_transaction'));
|
|
} catch (\Throwable $t) {
|
|
Log::error('-------- Mail not sent -----------');
|
|
Log::error($t->getMessage());
|
|
return $this->errorResponse(trans('errors.unexpected_error'));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @OA\Get(
|
|
* path="/qrcode/read/{id_user}",
|
|
* summary="Lire les informations à partir de l'id de l'utilisateur obtenu en scanant le QRCode",
|
|
* tags={"QRCode"},
|
|
* security={{"api_key":{}}},
|
|
* @OA\Parameter(
|
|
* parameter="id_user",
|
|
* name="id_user",
|
|
* description="ID de l'utilisateur",
|
|
* @OA\Schema(
|
|
* type="integer"
|
|
* ),
|
|
* in="path",
|
|
* required=true
|
|
* ),
|
|
* @OA\Response(
|
|
* response=200,
|
|
* description="OK",
|
|
* @OA\JsonContent(
|
|
* ref="#/components/schemas/ApiResponse",
|
|
* example = {
|
|
* "status" : 200,
|
|
* "response" : {"id":349,"uid":"5fcb90ab7197f8.26608831",
|
|
* "firstname":null,"lastname":"Tom Di","phone":"+237690716648","email":"ddoubletom@gmail.com","user_code":"vdVtq7ym9S","numero_carte":null,
|
|
* "expiration_date":null,"adresse":"kotto","solde":0,"salt":"dbbaea33d9","validation_code":"xuty8dbq","active":1,"date_modified":"2020-12-05T14:52:43.000000Z",
|
|
* "date_created":"2020-12-05T14:52:43.000000Z","network_id":185,"group_id":null,"balance_credit":0,"balance_epargne":0,"balance_nano_health":11335000,
|
|
* "date_adhesion":null,"id_bank_country":null,"iban":null},
|
|
* "error":null
|
|
* }
|
|
* )
|
|
* )
|
|
* )
|
|
*/
|
|
//Lire les infos d'un utilisateur à partir de son id
|
|
public function read($id_user)
|
|
{
|
|
$user = User::findOrFail($id_user);
|
|
return $this->successResponse($user);
|
|
}
|
|
|
|
/**
|
|
* @OA\Get(
|
|
* path="/qrcode/image/{id_user}",
|
|
* summary="Generer l'image du QRCode d'un utilisateur à partir de son id",
|
|
* tags={"QRCode"},
|
|
* security={{"api_key":{}}},
|
|
* @OA\Parameter(
|
|
* parameter="id_user",
|
|
* name="id_user",
|
|
* description="ID de l'utilisateur",
|
|
* @OA\Schema(
|
|
* type="integer"
|
|
* ),
|
|
* in="path",
|
|
* required=true
|
|
* ),
|
|
* @OA\Response(
|
|
* response=200,
|
|
* description="OK",
|
|
* @OA\JsonContent(
|
|
* ref="#/components/schemas/ApiResponse",
|
|
* example = {
|
|
* "status" : 200,
|
|
* "response" : "image en base64",
|
|
* "error":null
|
|
* }
|
|
* )
|
|
* )
|
|
* )
|
|
*/
|
|
//Generer l'image du QRCode d'un utilisateur à partir de son id
|
|
public function image($id_user)
|
|
{
|
|
$user = User::findOrFail($id_user);
|
|
return $this->successResponse(base64_encode(\SimpleSoftwareIO\QrCode\Facades\QrCode::format('svg')
|
|
->size(300)->errorCorrection('H')
|
|
->generate($user->id)));
|
|
}
|
|
}
|