team_directory/app/Http/Controllers/PBXController.php

134 lines
4.1 KiB
PHP
Raw Normal View History

2023-05-25 15:04:43 -04:00
<?php
namespace App\Http\Controllers;
use DB;
use Mail;
use Illuminate\Support\Facades\Log;
use App\Models\User;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
use Illuminate\Http\Request;
use App\Mail\NotifyAdmin;
use App\Mail\NotifyUser;
use App\Models\ExpiredPin;
use App\Models\PBXPin;
use GuzzleHttp\RetryMiddleware;
class PBXController extends Controller
{
public function pbx (Request $request) {
$pins = DB::table('pbx_pin')->orderBy('name')->get();
$curr_user = $request->session()->get('credentials');
$data = [
'pins' => $pins,
'curr_user' => $curr_user[0]['name']
];
return view('Admin.pbx', compact('data'));
}
public function pbxSearch (Request $request) {
$data = $request->all();
$criteria = $data['search'];
$pins = pbx_pin::where('name', 'LIKE', '%'.$criteria.'%')
->orWhere('pin', '=', $criteria)
->get();
$curr_user = $request->session()->get('credentials');
$data = [
'pins' => $pins,
'curr_user' => $curr_user[0]['name']
];
return view('Admin.pbx', compact('data'));
}
public function createPin (Request $request) {
$data = $request->all();
$curr_user = $request->session()->get('credentials');
try {
$pins = DB::table('pbx_pin')->orderBy("name")->get();
$user = DB::table('users')->where('email', '=', $data['add-pbx'])->get();
if (!$user->isEmpty()) {
$user_check = DB::table('pbx_pin')->where('email', '=', $data['add-pbx'])->get();
if($user_check->isEmpty()){
$check = 0;
while ($check == 0) {
$pinGenerator = rand(10000,99999);
$check_curr = DB::table('pbx_pin')->where('pin', '=', $pinGenerator)->get();
$check_old = DB::table('expired_pins')->where('pin', '=', $pinGenerator)->get();
if ($check_curr->isEmpty() && $check_old->isEmpty()){
$check = 1;
}
}
$pbx = new PBXPin();
$pbx->name = $user_check[0]->name;
$pbx->email = $user_check[0]->email;
$pbx->updated_by = $curr_user[0]['name'];
$pbx->pin = $pinGenerator;
$pbx->save();
}
else {
// User already has PBX pin assigned
$data = [
'pins' => $pins,
'error' => '1',
'curr_user' => $curr_user[0]['name']
];
return view('Admin.pbx', compact('data'));
}
}
else {
// User is not found
$pins = DB::table('pbx_pin')->orderBy("name")->get();
$data = [
'pins' => $pins,
'error' => '2',
'curr_user' => $curr_user[0]['name']
];
return view('Admin.pbx', compact('data'));
}
} catch (\Exception $ex) {
Log::channel('error')->info('Error:'.$ex);
}
}
public function unauthorizedAccess () {
return view('Admin.unauthorized');
}
public function disable (Request $request, $id) {
try {
$pin = DB::table('pbx_pin')->where('id', $id)->delete();
$curr_user = $request->session()->get('credentials');
$pins = DB::table('pbx_pin')->orderBy("name")->get();
$data = [
'pins' => $pins,
'curr_user' => $curr_user[0]['name']
];
return redirect()->route('pbx');
}
catch (\Exception $ex) {
Log::channel('error')->info('Error:'.$ex);
}
}
}