/**
  * Renders the Project Member view for the given project
  *
  * @param Project $project
  * @return The project members page view
  * @internal param 
  */
 public function view(Project $project)
 {
     $this->authorize('userIsMember', $project);
     $userid = Auth::user()->id;
     $files = File::forProject($project)->get();
     if (count($files) == 0) {
         File::create(['project_id' => $project->id, 'projectname' => $project->title, 'filename' => 'Main.java', 'type' => 'File', 'description' => 'Entry point of ' . $project->title . '.', 'contents' => '/* Program starts here. */\\npublic class Main {\\n\\tpublic static void main(String[] args) {\\n\\t\\n\\t}\\n}', 'user_id' => Auth::user()->id, 'parent' => 0]);
     }
     $files = File::forProject($project)->get();
     return view('project-members.view', ['project' => $project, 'files' => $files, 'userid' => $userid]);
 }
 /**
  * Takes an incoming export request and returns a download of the
  * file associated with it from Firebase.
  *
  * @param Project $project
  * @param $fileName
  * @return null
  */
 public function exportFile(Project $project, $fileName)
 {
     $file = File::forProject($project)->where('filename', $fileName)->first();
     if (!$file) {
         return null;
     }
     $filePath = $this->getFirebaseFile($file, base_path('tmp'), $this->getFirebaseConnector());
     return Response::download($filePath, $fileName);
 }
 /**
  * Renders the file list view for the given project
  *
  * @param Project $project
  * @return mixed
  * @internal param string $projectname project name
  */
 public function listFiles(Project $project)
 {
     $userid = Auth::user()->id;
     $files = File::forProject($project)->get();
     return view('editor.list', ['project' => $project, 'files' => $files, 'userid' => $userid]);
 }