Completed
Push — master ( e48405...3cf851 )
by Karl
27s
created

JobFilter   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 1
lcom 0
cbo 0
dl 0
loc 23
ccs 7
cts 7
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A sort() 0 13 1
1
<?php namespace JobApis\JobsToMail\Filters;
2
3
class JobFilter
4
{
5
    /**
6
     * Sort jobs by date posted, desc
7
     *
8
     * @param array $jobs
9
     *
10
     * @return array
11
     */
12 2
    public function sort($jobs = [], $maxAge = 14, $maxJobs = 50)
13
    {
14
        // Sort by date
15
        usort($jobs, function ($item1, $item2) {
16 2
            return $item2->datePosted <=> $item1->datePosted;
17 2
        });
18
        // Filter any older than max age
19 2
        $jobs = array_filter($jobs, function ($job) use ($maxAge) {
20 2
            return $job->datePosted > new \DateTime($maxAge.' days ago');
21 2
        });
22
        // Truncate to the max number of results
23 2
        return array_slice($jobs, 0, $maxJobs);
24
    }
25
}
26