File manager - Edit - /var/www/html/portal/app/Http/Services/Accounts/ContaPublicaService.php
Back
<?php namespace App\Http\Services\Accounts; use App\Http\Controllers\Controller; use App\Models\User; use App\Models\Accounts\SolicitanteDeConta; use App\Http\Requests\Accounts\ContaPublicaRequest; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Str; use Carbon\Carbon; use App\Mail\NovaContaMail; use Illuminate\Support\Facades\DB; use Illuminate\Http\RedirectResponse; class ContaPublicaService extends Controller { protected $SolicitanteDeConta = SolicitanteDeConta::class; public function store(ContaPublicaRequest $request): RedirectResponse { $cpfLimpo = $this->clearCPF($request->cpf); $email = mb_strtolower(trim($request->email)); if (User::where('cpf', $cpfLimpo)->orWhere('email', $email)->exists()) { return redirect()->route('admin.contas.publicas.create')->with('error', __('CPF ou e‑mail já cadastrado. Recupere sua senha.'))->withInput(); } $recente = $this->SolicitanteDeConta::where('email', $email) ->where('created_at', '>=', Carbon::now()->subSeconds(120)) ->where('status', 'PENDENTE') ->first(); if ($recente) { return redirect()->route('admin.contas.publicas.create')->with('error', __('Aguarde 2 minutos para solicitar um novo token.'))->withInput(); } $token = Str::uuid()->toString(); $expires = Carbon::now()->addMinutes(60); try { DB::beginTransaction(); $array_solicitacao = [ "cpf" => $cpfLimpo, "email" => $email, "token" => $token, "expires_at" => $expires, "status" => 'PENDENTE', ]; SolicitanteDeConta::create($array_solicitacao); DB::commit(); Mail::to($email)->send(new NovaContaMail($email, $token)); return redirect()->route('admin.login')->with('success', __('Falta pouco para a criação da sua Conta Angra! Nós lhe enviamos um e‑mail de confirmação.')); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.contas.publicas.create')->withInput()->with('error', __('Não foi possível iniciar a solicitação.') . $e->getMessage()); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings