Files
faveo/app/Http/Controllers/Agent/helpdesk/CannedController.php
2023-01-07 20:58:45 +00:00

187 lines
5.3 KiB
PHP

<?php
namespace App\Http\Controllers\Agent\helpdesk;
// controllers
use App\Http\Controllers\Controller;
// requests
use App\Http\Requests\helpdesk\CannedRequest;
use App\Http\Requests\helpdesk\CannedUpdateRequest;
// model
use App\Model\helpdesk\Agent_panel\Canned;
use App\User;
// classes
use Exception;
use Lang;
/**
* CannedController.
*
* This controller is for all the functionalities of Canned response for Agents in the Agent Panel
*
* @author Ladybird <info@ladybirdweb.com>
*/
class CannedController extends Controller
{
/**
* Create a new controller instance.
* constructor to check
* 1. authentication
* 2. user roles
* 3. roles must be agent.
*
* @return void
*/
public function __construct()
{
// checking authentication
$this->middleware('auth');
// checking if role is agent
$this->middleware('role.agent');
}
/**
* Display a listing of the Canned Responses.
*
* @return type View
*/
public function index()
{
try {
return view('themes.default1.agent.helpdesk.canned.index');
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
/**
* Show the form for creating a new Canned Response.
*
* @return type View
*/
public function create()
{
try {
return view('themes.default1.agent.helpdesk.canned.create');
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
/**
* Store a newly created Canned Response.
*
* @param type CannedRequest $request
* @param type Canned $canned
*
* @return type Redirect
*/
public function store(CannedRequest $request, Canned $canned)
{
try {
// fetching all the requested inputs
$canned->user_id = \Auth::user()->id;
$canned->title = $request->input('title');
$canned->message = $request->input('message');
// saving inputs
$canned->save();
return redirect()->route('canned.list')->with('success', Lang::get('lang.added_successfully'));
} catch (Exception $e) {
return redirect()->route('canned.list')->with('fails', $e->getMessage());
}
}
/**
* Show the form for editing the Canned Response.
*
* @param type $id
* @param type Canned $canned
*
* @return type View
*/
public function edit($id, Canned $canned)
{
try {
// fetching requested canned response
$canned = $canned->where('user_id', '=', \Auth::user()->id)->where('id', '=', $id)->first();
return view('themes.default1.agent.helpdesk.canned.edit', compact('canned'));
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
/**
* Update the Canned Response in database.
*
* @param type $id
* @param type CannedUpdateRequest $request
* @param type Canned $canned
*
* @return type Redirect
*/
public function update($id, CannedUpdateRequest $request, Canned $canned)
{
try {
/* select the field where id = $id(request Id) */
$canned = $canned->where('id', '=', $id)->where('user_id', '=', \Auth::user()->id)->first();
// fetching all the requested inputs
$canned->user_id = \Auth::user()->id;
$canned->title = $request->input('title');
$canned->message = $request->input('message');
// saving inputs
$canned->save();
return redirect()->route('canned.list')->with('success', Lang::get('lang.updated_successfully'));
} catch (Exception $e) {
return redirect()->route('canned.list')->with('fails', $e->getMessage());
}
}
/**
* Delete the Canned Response from storage.
*
* @param type $id
* @param type Canned $canned
*
* @return type Redirect
*/
public function destroy($id, Canned $canned)
{
try {
/* select the field where id = $id(request Id) */
$canned = $canned->whereId($id)->first();
/* delete the selected field */
/* Check whether function success or not */
$canned->delete();
/* redirect to Index page with Success Message */
return redirect()->route('canned.list')->with('success', Lang::get('lang.canned_response_deleted'));
} catch (Exception $e) {
/* redirect to Index page with Fails Message */
return redirect()->route('canned.list')->with('fails', $e->getMessage());
}
}
/**
* Fetch Canned Response in the ticket detail page.
*
* @param type $id
*
* @return type json
*/
public function get_canned($id)
{
// checking for the canned response with requested value
if ($id != 'zzz') {
// fetching canned response
$canned = Canned::where('id', '=', $id)->where('user_id', '=', \Auth::user()->id)->first();
$msg = $canned->message;
} else {
$msg = '';
}
// returning the canned response in JSON format
return \Response::json($msg);
}
}