123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- <?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;
- use Illuminate\Support\Facades\Cookie;
- use Illuminate\Support\Facades\Http;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Storage;
- use App\Models\BaseModel;
- use Ramsey\Uuid\Uuid;
- use Illuminate\Support\Facades\Mail;
- use App\Mail\NotifyEmail;
- use App\Models\AppSession;
- class Controller extends BaseController
- {
- use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
- protected $performer = null;
- protected $user = null;
- protected $sessionKey = null;
- protected $appInternalName = null;
- protected $stringMappingConfig = null;
- public function __construct()
- {
- $this->sessionKey = Cookie::get(config('app.sessionKeyName'));
- $this->performer = AppSession::where('session_key', $this->sessionKey)->where('is_active', true)->first();
- if($this->performer){
- $this->user = $this->performer ? $this->performer->user : null;
- }
- $this->appInternalName = config('app.internalName');
- $this->stringMappingConfig = config('constants.' . $this->appInternalName);
-
- view()->share('appInternalName', $this->appInternalName);
- view()->share('stringMappingConfig', $this->stringMappingConfig);
- view()->share('performer', $this->performer);
- view()->share('user', $this->user);
- }
- public function sendEmailNotification($details){
- $to = $details['to'];
- if(config('app.env') !== 'production'){
- $to = [
- ['email' => config('app.testEmailAddress'), 'name' => 'Test Email Address']
- ];
- }
-
- Mail::to($to)->send(new NotifyEmail($details));
- return true;
- }
- public function callJava($endPoint, $data, $sessionKey)
- {
- $url = config('app.backendUrl') . $endPoint;
- $response = Http::asForm()
- ->withHeaders([
- 'sessionKey' => $sessionKey
- ])
- ->post($url, $data)
- ->body();
- return json_decode($response, true);
- }
- public function pass($data = null): array
- {
- return [
- 'success' => true,
- 'data' => $data,
- ];
- }
- public function fail($message): array
- {
- return [
- 'success' => false,
- 'message' => $message
- ];
- return null;
- }
- public function filterMultiQuery(Request $request, $query, $columnName, $keyName, $valueName1, $valueName2) {
- switch($request->input($keyName)) {
- case 'EXACTLY':
- if($request->input($valueName1)) {
- $query->where($columnName, $request->input($valueName1));
- }
- break;
- case 'LESS_THAN':
- if($request->input($valueName1)) {
- $query->where($columnName, '<', $request->input($valueName1));
- }
- break;
- case 'GREATER_THAN':
- if($request->input($valueName1)) {
- $query->where($columnName, '>', $request->input($valueName1));
- }
- break;
- case 'BETWEEN':
- if($request->input($valueName1) && $request->input($valueName2)) {
- $query
- ->where($columnName, '>=', $request->input($valueName1))
- ->where($columnName, '<=', $request->input($valueName2));
- }
- break;
- case 'NOT_BETWEEN':
- if($request->input($valueName1) && $request->input($valueName2)) {
- $query
- ->where(function ($q) use ($request, $columnName, $valueName1, $valueName2) {
- $q->where($columnName, '<', $request->input($valueName1))
- ->orWhere($columnName, '>', $request->input($valueName2));
- });
- }
- break;
- }
- }
- public function filterDateMultiQuery(Request $request, $query, $columnName, $keyName, $valueName1, $valueName2) {
- switch($request->input($keyName)) {
- case 'EXACTLY':
- if($request->input($valueName1)) {
- $query->whereDate($columnName, $request->input($valueName1));
- }
- break;
- case 'LESS_THAN':
- if($request->input($valueName1)) {
- $query->whereDate($columnName, '<', $request->input($valueName1));
- }
- break;
- case 'GREATER_THAN':
- if($request->input($valueName1)) {
- $query->whereDate($columnName, '>', $request->input($valueName1));
- }
- break;
- case 'BETWEEN':
- if($request->input($valueName1) && $request->input($valueName2)) {
- $query
- ->whereDate($columnName, '>=', $request->input($valueName1))
- ->whereDate($columnName, '<=', $request->input($valueName2));
- }
- break;
- case 'NOT_BETWEEN':
- if($request->input($valueName1) && $request->input($valueName2)) {
- $query
- ->whereDate(function ($q) use ($request, $columnName, $valueName1, $valueName2) {
- $q->whereDate($columnName, '<', $request->input($valueName1))
- ->orWhereDate($columnName, '>', $request->input($valueName2));
- });
- }
- break;
- }
- }
- public function filterSimpleQuery(Request $request, $query, $columnName, $valueName) {
- if($request->input($valueName)) {
- $query->where($columnName, $request->input($valueName));
- }
- }
- public function filterSimpleQueryByValue(Request $request, $query, $columnName, $valueName) {
- if($valueName) {
- $query->where($columnName, $valueName);
- }
- }
-
- public function storeFileAs(Request $request, $fileRef, $path){
- $file = $request->file($fileRef);
- if ($file) {
- $uid = Uuid::uuid6();
- $originalFileName = $file->getClientOriginalName();
- $fileName = $uid . "." . $file->extension();
- $tempPath = Storage::putFileAs($path, $file, $fileName);
- return [
- 'path' => $tempPath,
- 'fileName' => $fileName,
- 'url' => route('view-uploaded-file', $fileName),
- 'orginalFileName' => $originalFileName
- ];
- }
- return null;
- }
- public function downloadFileByPath($file, $path){
- return Storage::response($path . '/' . $file);
- }
- public function viewUploadedFile(Request $request, $file){
- return $this->downloadFileByPath($file, BaseModel::FILE_PATH);
- }
- }
|