117 lines
3.1 KiB
PHP
117 lines
3.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
|
use Illuminate\Foundation\Bus\DispatchesJobs;
|
|
use Illuminate\Foundation\Validation\ValidatesRequests;
|
|
use Illuminate\Routing\Controller as BaseController;
|
|
|
|
class Controller extends BaseController
|
|
{
|
|
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
|
|
|
protected $statusCode;
|
|
|
|
public function getStatusCode()
|
|
{
|
|
return $this->statusCode;
|
|
}
|
|
|
|
public function setStatusCode($statusCode)
|
|
{
|
|
$this->statusCode = $statusCode;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function respondWithError($message = null)
|
|
{
|
|
return response()->json(
|
|
['success' => false, 'msg' => $message]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Returns a Unauthorized response.
|
|
*
|
|
* @param string $message
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function respondUnauthorized($message = 'Unauthorized action.')
|
|
{
|
|
return $this->setStatusCode(403)
|
|
->respondWithError($message);
|
|
}
|
|
|
|
/**
|
|
* Returns a went wrong response.
|
|
*
|
|
* @param object $exception = null
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function respondWentWrong($exception = null)
|
|
{
|
|
//If debug is enabled then send exception message
|
|
$message = (config('app.debug') && is_object($exception)) ? 'File:'.$exception->getFile().'Line:'.$exception->getLine().'Message:'.$exception->getMessage() : __('messages.something_went_wrong');
|
|
|
|
//TODO: show exception error message when error is enabled.
|
|
return $this->setStatusCode(200)
|
|
->respondWithError($message);
|
|
}
|
|
|
|
/**
|
|
* Returns a 200 response.
|
|
*
|
|
* @param object $message = null
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function respondSuccess($message = null, $additional_data = [])
|
|
{
|
|
$message = is_null($message) ? __('lang_v.success') : $message;
|
|
$data = ['success' => true, 'msg' => $message];
|
|
|
|
if (! empty($additional_data)) {
|
|
$data = array_merge($data, $additional_data);
|
|
}
|
|
|
|
return $this->respond($data);
|
|
}
|
|
|
|
/**
|
|
* Returns a 200 response.
|
|
*
|
|
* @param array $data
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function respond($data)
|
|
{
|
|
return response()->json($data);
|
|
}
|
|
|
|
/**
|
|
* Returns new mpdf instance
|
|
*
|
|
* @param string $orientation 'P' for portrait (default), 'L' for landscape
|
|
* @return \Mpdf\Mpdf
|
|
*/
|
|
public function getMpdf($orientation = 'P')
|
|
{
|
|
$mpdf = new \Mpdf\Mpdf(['tempDir' => public_path('uploads/temp'),
|
|
'mode' => 'utf-8',
|
|
'autoScriptToLang' => true,
|
|
'autoLangToFont' => true,
|
|
'autoVietnamese' => true,
|
|
'autoArabic' => true,
|
|
'useSubstitutions' => true,
|
|
'orientation' => $orientation,
|
|
]);
|
|
|
|
if (auth()->check() && in_array(auth()->user()->language, config('constants.langs_rtl'))) {
|
|
$mpdf->SetDirectionality('rtl');
|
|
}
|
|
|
|
return $mpdf;
|
|
}
|
|
}
|