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, $accessToken = null){ $file = $request->file($fileRef); if ($file) { $uid = Uuid::uuid6(); $originalFileName = $file->getClientOriginalName(); $fileName = $uid . "." . $file->extension(); $tempPath = Storage::disk('custom')->putFileAs($path, $file, $fileName); $data = [ 'path' => $tempPath, 'fileName' => $fileName, 'url' => route('view-uploaded-file', $fileName), 'orginalFileName' => $originalFileName ]; if($accessToken){ $data['attachment_access_token'] = $accessToken; $data['attachmentAccessTokenUrl'] = route('view-uploaded-file-via-access-token', $accessToken); } return $data; } return null; } public function downloadFileByPath($file, $path){ return Storage::disk('custom')->response($path . '/' . $file); } public function viewUploadedFile(Request $request, $file){ return $this->downloadFileByPath($file, BaseModel::FILE_PATH); } public function viewUploadedFileViaToken(Request $request, $token){ $fileType = $request->get('fileType', 'results_attachment'); $order = StoreOrder::whereRaw("(detail_json)::json->?->>'attachment_access_token' = ?", [$fileType, $token])->first(); if(!$order) abort(404); $orderDetailJson = $order->detailJson(); $fileName = $orderDetailJson->{$fileType}->fileName; return $this->downloadFileByPath($fileName, BaseModel::FILE_PATH); } }