API version2 update
Added get tcket lists master API update
This commit is contained in:

committed by
Manish Verma

parent
8e006192b1
commit
8f4a43a723
@@ -61,3 +61,19 @@
|
|||||||
*/
|
*/
|
||||||
Route::post('fcmtoken', ['as' => 'fcmtoken', 'uses' => 'Common\PushNotificationController@fcmToken']);
|
Route::post('fcmtoken', ['as' => 'fcmtoken', 'uses' => 'Common\PushNotificationController@fcmToken']);
|
||||||
});
|
});
|
||||||
|
/*
|
||||||
|
* ================================================================================================
|
||||||
|
* @version v1
|
||||||
|
* @access public
|
||||||
|
* @copyright (c) 2016, Ladybird web solution
|
||||||
|
* @author Manish Verma<manish.verma@ladybirdweb.com>
|
||||||
|
* @name Faveo
|
||||||
|
*/
|
||||||
|
Route::group(['prefix' => 'api/v2'], function () {
|
||||||
|
/*
|
||||||
|
* Helpdesk
|
||||||
|
*/
|
||||||
|
Route::group(['prefix' => 'helpdesk'], function () {
|
||||||
|
Route::get('tickets', '\App\Api\v2\TicketController@getTickets');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
99
app/Api/v2/TicketController.php
Normal file
99
app/Api/v2/TicketController.php
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Api\v2;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Lang;
|
||||||
|
class TicketController extends Controller
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->middleware('jwt.authOveride');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getTickets(Request $request)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$user = \JWTAuth::parseToken()->authenticate();
|
||||||
|
$input = [];
|
||||||
|
if ($request->has('api') && $request->has('show') && $request->has('departments')) {
|
||||||
|
if ($request->get('api') != '' || $request->get('show') != '' || $request->get('departments') != '') {
|
||||||
|
if ($request->get('api') == '1') {
|
||||||
|
$tickets = new \App\Http\Controllers\Agent\helpdesk\Filter\FilterController($request);
|
||||||
|
$result = $tickets->getFilter($request);
|
||||||
|
if ($request->has('sort-by') && in_array($request->get('sort-by'), ['id', 'ticket_title', 'updated_at', 'created_at', 'due', 'ticket_number', 'priority'])) {
|
||||||
|
if ($request->has('order') && in_array($request->get('order'), ['asc', 'ASC', 'desc', 'DESC'])) {
|
||||||
|
$result = $result->orderBy($request->get('sort-by'), $request->get('order'));
|
||||||
|
} else {
|
||||||
|
$result = $result->orderBy($request->get('sort-by'), 'ASC');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$result = $result->orderBy('updated_at', 'DESC');
|
||||||
|
}
|
||||||
|
|
||||||
|
$fetch = 10;
|
||||||
|
if ($request->has('records_per_page') && (int) $request->get('records_per_page') != 0 && ($request->get('records_per_page') >= 0 && $request->get('records_per_page') < 500)) {
|
||||||
|
$fetch = $request->get('records_per_page');
|
||||||
|
} elseif ($request->has('records_per_page') && $request->get('records_per_page') > 500) {
|
||||||
|
$fetch = 500;
|
||||||
|
}
|
||||||
|
if ($request->has('created') ||
|
||||||
|
$request->has('updated') ||
|
||||||
|
$request->has('due-on') ||
|
||||||
|
$request->has('last-response-by')) {
|
||||||
|
$result = $result->simplePaginate($fetch);
|
||||||
|
} else {
|
||||||
|
$result = $result->paginate($fetch);
|
||||||
|
}
|
||||||
|
|
||||||
|
// $result = json_encode($result[0]);
|
||||||
|
|
||||||
|
foreach ($result as $value) {
|
||||||
|
|
||||||
|
if ($value->profile_pic == '') {
|
||||||
|
$value->profile_pic = \Gravatar::src($value->c_email);
|
||||||
|
} else {
|
||||||
|
$value->profile_pic = url('/') . '/uploads/profilepic/' . $value->profile_pic;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$value['from'] = ['id' => $value['c_uid'], 'first_name' => $value['c_fname'], 'last_name' => $value['c_lname'], 'user_name' => $value['c_uname'], 'email' => $value['c_email'], 'profile_pic' => $value['profile_pic']];
|
||||||
|
|
||||||
|
$value['assignee'] = ['id' => $value['a_uid'], 'first_name' => $value['a_fname'], 'last_name' => $value['a_lname'], 'user_name' => $value['a_uname'], 'email' => $value['a_email']];
|
||||||
|
$value['priority'] = ['name' => $value['priority'], 'color' => $value['color']];
|
||||||
|
|
||||||
|
$value['thread_count'] = $value['countthread'];
|
||||||
|
$value['status'] = $value['ticket_status_name'];
|
||||||
|
$value['title'] = $value['ticket_title'];
|
||||||
|
|
||||||
|
unset($value['c_uid'], $value['c_fname'], $value['c_lname'], $value['c_uname'], $value['c_email'], $value['a_uid'], $value['a_fname'], $value['a_lname'], $value['a_uname'], $value['a_email']);
|
||||||
|
unset($value['assigned_to'], $value['profile_pic'], $value['created_at2'], $value['updated_at2'], $value['dept_id'], $value['css'], $value['name'], $value['color'], $value['due'], $value['countattachment'], $value['countthread'], $value['ticket_status_name'], $value['ticket_title']);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// $result = json_encode($result);
|
||||||
|
return successResponse('', $result);
|
||||||
|
} else {
|
||||||
|
$error = Lang::get('lang.invalid_value_for_api_in_parameters');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$error = Lang::get('lang.required_parameters_can_not_be_empty');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$error = Lang::get('lang.missing_requre_parameters');
|
||||||
|
}
|
||||||
|
return errorResponse($error, $responseCode = 400);
|
||||||
|
// return response()->json(compact('error'));
|
||||||
|
} catch (\Exception $ex) {
|
||||||
|
$error = $ex->getMessage();
|
||||||
|
$line = $ex->getLine();
|
||||||
|
$file = $ex->getFile();
|
||||||
|
dd($e);
|
||||||
|
return errorResponse(compact('error', 'file', 'line'), $responseCode = 400);
|
||||||
|
} catch (\TokenExpiredException $e) {
|
||||||
|
dd($e);
|
||||||
|
return errorResponse($e->getMessage(), $responseCode = 400);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -222,3 +222,42 @@ function timezone()
|
|||||||
|
|
||||||
return $tz;
|
return $tz;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// For API response
|
||||||
|
/**
|
||||||
|
* formats the error message into json error response
|
||||||
|
* @param string/array $errorMsg errorMsg can be an array of errors or string
|
||||||
|
* @param integer $responseCode
|
||||||
|
* @return json
|
||||||
|
*/
|
||||||
|
function errorResponse($errorMsg, $responseCode = 400){
|
||||||
|
$response = ['success'=>false, 'message'=>$errorMsg];
|
||||||
|
return response()->json($response, $responseCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* formats success message/data into json success response
|
||||||
|
* @param string $successMsg
|
||||||
|
* @param array/string $data data of the response
|
||||||
|
* @param integer $responseCode
|
||||||
|
* @return json
|
||||||
|
*/
|
||||||
|
function successResponse($successMsg='', $data='', $responseCode=200){
|
||||||
|
$response = !$successMsg ? ['success'=>true, 'data'=>$data] : (!$data ? ['success'=>true, 'message'=>$successMsg] : ['success'=>true, 'message'=>$successMsg, 'data'=>$data]);
|
||||||
|
return response()->json($response);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* formats exception response by giving enough information for debugginh
|
||||||
|
* @param \Exception $exception exception object
|
||||||
|
* @return Response with json response content
|
||||||
|
*/
|
||||||
|
function exceptionResponse(\Exception $exception){
|
||||||
|
return errorResponse([
|
||||||
|
'file'=>$exception->getFile(),
|
||||||
|
'line_number'=>$exception->getLine(),
|
||||||
|
'exception'=>$exception->getMessage(),
|
||||||
|
], 500);
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user