/**
  * Check Inspections
  *
  * @param  \Suitcoda\Model\Inspection $inspection []
  * @return void
  */
 public function check(Inspection $inspection)
 {
     $jobs = $inspection->jobInspects()->get();
     if ($jobs->isEmpty()) {
         return;
     }
     foreach ($jobs as $job) {
         if ($job->status == '1' || $job->status == '0') {
             return;
         }
     }
     $this->calc->calculate($inspection);
 }
Ejemplo n.º 2
0
 /**
  * Calculate score for one inspection
  *
  * @param  Inspection $inspection []
  * @return void
  */
 public function calculate(Inspection $inspection)
 {
     foreach ($inspection->scopeList as $category) {
         $uniqueUrlInIssues = $inspection->uniqueUrlIssueByCategory($category->slug);
         $uniqueUrlInJobs = $inspection->uniqueUrlJobByCategory($category->slug);
         $errorRate = $uniqueUrlInIssues / $uniqueUrlInJobs;
         $score = $this->score->findOrNewByRelatedId($inspection->getKey(), $category->getKey());
         $score->score = round($errorRate, 2);
         $score->inspection()->associate($inspection);
         $score->category()->associate($category);
         $score->save();
     }
     $alUniqueUrlInIssues = $inspection->uniqueUrlIssue();
     $alUniqueUrlInJobs = $inspection->uniqueUrlJob();
     $overallErrorRate = $alUniqueUrlInIssues / $alUniqueUrlInJobs;
     $inspection->update(['status' => 2, 'score' => round($overallErrorRate, 2)]);
 }
Ejemplo n.º 3
0
 /**
  * Test get inspection score by given category name
  *
  * @return void
  */
 public function testGetScoreByCategory()
 {
     $inspection = new Inspection();
     $this->assertEquals('-', $inspection->getScoreByCategory('SEO'));
     $inspectionFaker = factory(Inspection::class)->create();
     factory(Score::class)->create(['inspection_id' => $inspectionFaker->id, 'score' => 0.7]);
     $this->assertEquals('70%', $inspectionFaker->getScoreByCategory('test'));
 }