API version2 update

Added get tcket lists master API

update
This commit is contained in:
Manish Verma
2018-08-23 15:32:59 +05:30
committed by Manish Verma
parent 8e006192b1
commit 8f4a43a723
3 changed files with 154 additions and 0 deletions

View File

@@ -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');
});
});

View 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);
}
}
}

View File

@@ -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);
}