nanosanteservice/app/Http/Controllers/HelperController.php

159 lines
5.1 KiB
PHP
Raw Permalink Normal View History

2022-02-16 13:12:27 +00:00
<?php
namespace App\Http\Controllers;
use App\Models\AgentPlus;
use App\Models\User;
2022-02-16 13:12:27 +00:00
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
2022-02-16 13:12:27 +00:00
class HelperController extends Controller
{
2022-02-16 14:03:56 +00:00
/**
* @OA\Get(
* path="/pdf-viewer",
* summary="Afficher le PDF de la facture dans une web view",
* tags={"Factures"},
* @OA\Parameter(
* parameter="url",
* name="url",
* description="URL du fichier",
* in="query",
* required=true,
* @OA\Schema(
* type="string",
* default="http://localhost:8086/invoices-docs/31122021_28012022_aon8K9BZOn_1643395930.pdf"
* )
* ),
* @OA\Response(
* response=200,
* description="OK"
* )
* )
*/
2022-02-16 13:12:27 +00:00
public function pdfView(Request $request)
{
$this->validate($request, [
'url' => 'required|string'
]);
$url = $request->input('url');
return view('pdf-viewer', compact('url'));
}
/**
* @OA\Get(
* path="/exclusions/{network_id}",
* summary="Afficher les exclusions d'un reseau",
* tags={"Exclusions"},
* security={{"api_key":{}}},
* @OA\Parameter(
* parameter="network_id",
* name="network_id",
* description="ID du reseau",
* in="path",
* required=true,
* @OA\Schema(
* type="integer",
* default="250"
* )
* ),
* @OA\Response(
* response=200,
* description="OK",
* @OA\JsonContent(
* ref="#/components/schemas/ApiResponse",
* example = {
* "status" : 200,
* "response" : {"document" : "Interdit de fumer"},
* "error":null
* }
* )
* )
* )
*/
public function getNetworkExclusions($network_id)
{
$exclusion = current(DB::select("SELECT document FROM nh_exclusions WHERE network_id = :network_id LIMIT 1", ['network_id' => $network_id]));
return $this->successResponse($exclusion);
}
/**
* @OA\Post(
* path="/password-validation",
* summary="Validation du mot de passe",
* tags={"Validation du mot de passe"},
* security={{"api_key":{}}},
* @OA\RequestBody(
* description="Corps de la requete",
* required=true,
* @OA\MediaType(
* mediaType="application/json",
* @OA\Schema(
* schema="request_for_authorizations_of_care",
* title = "Demande autorisation de prise en charge",
* required={"password"},
* @OA\Property(
* property="password",
* description = "Mot de passe",
* type="string",
* example= "1234"
* ),
* @OA\Property(
* property="user_id",
* description = "ID de l'utilisateur",
* type="integer",
* example= 5
* ),
* @OA\Property(
* property="network_agent_id",
* description = "ID de l'agent dans le reseau",
* type="integer",
* example= 43959
* )
* ),
* ),
* ),
* @OA\Response(
* response=200,
* description="OK",
* @OA\JsonContent(
* ref="#/components/schemas/ApiResponse",
* example = {
* "status" : 200,
* "response" : "Authentification réussie",
* "error":null
* }
* )
* )
* )
*/
// Validation du mot de passe lors de l'ouverture du wallet coté front
public function passwordValidation(Request $request)
{
$this->validate($request, [
'password' => 'required|string',
'user_id' => 'required_without:network_agent_id|integer|exists:users,id',
'network_agent_id' => 'required_without:user_id|integer|exists:networks_agents,id',
]);
$password = $request->input('password');
$user_id = $request->input('user_id');
$network_agent_id = $request->input('network_agent_id');
if (!empty($user_id)) {
$user = User::findOrFail($user_id);
$check = checkPassword($password, $user->encrypted_password, $user->salt);
} else {
$agent = AgentPlus::where('network_agent_id', $network_agent_id)->firstOrFail();
$check = checkPassword($password, $agent->encrypted_password, $agent->salt);
}
if ($check) {
return $this->successResponse(trans('messages.successful_authentification'));
} else {
return $this->errorResponse(trans('messages.incorrect_user_password'));
}
}
2022-02-16 13:12:27 +00:00
}