public function response($id, Request $request)
 {
     $ticket = Ticket::find($id);
     if (!$ticket) {
         return redirect('/')->withErrors(config('constants.NA'));
     }
     $files = $request->file('file');
     $file_count = count($files);
     if ($request->hasFile('file') && $file_count > config('config.max_file_upload_at_once')) {
         return redirect()->back()->withErrors('Max ' . config('config.max_file_upload_at_once') . ' files are allowed to upload at once.');
     }
     $uploadcount = 0;
     $uploaded_file = array();
     if ($request->hasFile('file')) {
         foreach ($files as $file) {
             $filename = uniqid();
             $rules = array('file' => 'mimes:' . config('config.allowed_upload_file'));
             $validator = Validator::make(array('file' => $file), $rules);
             if ($validator->passes()) {
                 $destinationPath = 'uploads/response_attachment';
                 $name = $file->getClientOriginalName();
                 $extension = $file->getClientOriginalExtension();
                 $upload_success = $file->move($destinationPath, $filename . "." . $extension);
                 $uploaded_file[] = $filename . '.' . $extension;
                 $uploadcount++;
             }
         }
     }
     if ($file_count > 0 && $uploadcount == 0 && $request->hasFile('file')) {
         return redirect()->back()->withErrors('Only some files are allowed.');
     }
     $ticket_response = new TicketResponse();
     if ($uploadcount > 0) {
         $ticket_response->attachments = implode(',', $uploaded_file);
     }
     $title = $request->input('mail_subject');
     $content = $request->input('response_description');
     $ticket_response->response_description = $content;
     $ticket_response->user_id = Auth::user()->id;
     $ticket_response->ticket_id = $id;
     $ticket_response->set_response_time = $request->input('set_response_time') ? time() : null;
     $ticket_response->set_resolution_time = $request->input('set_resolution_time') ? time() : null;
     $ticket_response->save();
     if ($ticket_response->set_response_time) {
         $ticket->responded = 1;
     }
     if ($ticket_response->set_resolution_time) {
         $ticket->resolved = 1;
     }
     $ticket->ticket_status = $request->input('ticket_status');
     $ticket->save();
     if ($request->input('send_mail')) {
         Mail::send('template.mail', compact('content'), function ($message) use($ticket, $title) {
             $message->to($ticket->User->email)->subject($title);
         });
     }
     return redirect()->back()->withSuccess('Ticket reply sent.');
 }