Example #1
0
 public static function boot()
 {
     parent::boot();
     Package::created(function ($package) {
         $snapshot = new PackageSnapshot();
         $snapshot->application_package_id = $package->id;
         $snapshot->application_package_name = $package->name;
         $snapshot->application_package_version = $package->version;
         $severity = $package->vulnerability_severity;
         if (!$package->vulnerability_severity) {
             $severity = 0;
         }
         $snapshot->application_package_vulnerability_severity = $severity;
         $snapshot->save();
         return true;
     });
     Package::updated(function ($package) {
         $snapshot = new PackageSnapshot();
         $snapshot->application_package_id = $package->id;
         $snapshot->application_package_name = $package->name;
         $snapshot->application_package_version = $package->version;
         $severity = $package->vulnerability_severity;
         if (!$package->vulnerability_severity) {
             $severity = 0;
         }
         $snapshot->application_package_vulnerability_severity = $severity;
         $snapshot->save();
         return true;
     });
 }
 public function getReportingDataForRange($start, $end)
 {
     $all_data = PackageSnapshot::whereBetween('created_at', array(new \DateTime($start), new \DateTime($end)))->groupBy('id')->groupBy('application_package_id')->groupBy('created_at')->get()->sortBy('created_at');
     $riskByDateAndSeverity = array();
     foreach ($all_data as $data) {
         $data->created_at = $data->created_at;
         $created_at_string = $data->created_at . "";
         if (!array_key_exists($created_at_string, $riskByDateAndSeverity)) {
             $riskByDateAndSeverity[$created_at_string] = array('all_risk' => array(), 'high_risk' => array(), 'low_risk' => array(), 'medium_risk' => array());
         }
         if ($data->application_package_vulnerability_severity > 4.5) {
             if ($data->application_package_vulnerability_severity < 7) {
                 array_push($riskByDateAndSeverity[$created_at_string]['medium_risk'], $data);
             } else {
                 array_push($riskByDateAndSeverity[$created_at_string]['high_risk'], $data);
             }
         } else {
             array_push($riskByDateAndSeverity[$created_at_string]['low_risk'], $data);
         }
         array_push($riskByDateAndSeverity[$created_at_string]['all_risk'], $data);
     }
     return Response::json($riskByDateAndSeverity);
 }