-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJobService.java
More file actions
64 lines (54 loc) · 2.17 KB
/
Copy pathJobService.java
File metadata and controls
64 lines (54 loc) · 2.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package com.martincastroalvarez.london;
import java.util.Optional;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
@Service
public class JobService {
// --------------------------------------------------------------------
// Job business logic.
// --------------------------------------------------------------------
@Autowired
private JobRepository repository;
private Logger logger = LoggerFactory.getLogger(JobService.class);
public List<Job> list(
Optional<String> sort_key,
Optional<Integer> page_limit,
Optional<Integer> page_offset
) {
// --------------------------------------------------------------------
// Listing all Jobs.
// Supports pagination and sorting by different attributes.
// --------------------------------------------------------------------
logger.info("Service | Job | Search" + sort_key + " " + page_offset);
Sort sort = Sort.by(Sort.Direction.DESC, "createdAt");
if (sort_key.isPresent()) {
sort = Sort.by(Sort.Direction.DESC, sort_key.get());
}
Integer limit = 10;
if (page_limit.isPresent()) {
limit = page_limit.get();
}
Integer offset = 0;
if (page_offset.isPresent()) {
offset = page_offset.get();
}
Pageable page = PageRequest.of(offset, limit, sort);
List<Job> jobs;
jobs = repository.findAll(page).getContent();
return jobs;
}
public Job get(long id) throws JobNotFoundError {
// --------------------------------------------------------------------
// Getting a Job by id.
// --------------------------------------------------------------------
logger.info("Service | Job | Get by ID: " + id);
Job job = repository.findById(id).orElseThrow(() -> new JobNotFoundError());
return job;
}
}