Merge 1806 code of vid-common
[vid.git] / vid-app-common / src / main / java / org / onap / vid / job / impl / JobAdapterImpl.java
1 package org.onap.vid.job.impl;
2
3 import com.google.common.collect.ImmutableMap;
4 import org.onap.vid.job.Job;
5 import org.onap.vid.job.JobAdapter;
6 import org.onap.vid.job.JobType;
7 import org.onap.vid.model.JobBulk;
8 import org.onap.vid.model.JobModel;
9 import org.springframework.stereotype.Component;
10
11 import javax.ws.rs.BadRequestException;
12 import java.util.ArrayList;
13 import java.util.List;
14 import java.util.Map;
15 import java.util.UUID;
16 import java.util.stream.Collectors;
17
18 @Component
19 public class JobAdapterImpl implements JobAdapter {
20
21     @Override
22     public JobModel toModel(Job job) {
23         JobModel jobModel = new JobModel();
24         jobModel.setUuid(job.getUuid());
25         jobModel.setStatus(job.getStatus());
26         jobModel.setTemplateId(job.getTemplateId());
27         return jobModel;
28     }
29
30     @Override
31     public JobBulk toModelBulk(List<Job> jobList) {
32         return new JobBulk(jobList.stream().map(this::toModel).collect(Collectors.toList()));
33     }
34
35     @Override
36     public Job createJob(JobType jobType, AsyncJobRequest request, UUID templateId, String userId, Integer indexInBulk){
37         JobDaoImpl job = new JobDaoImpl();
38         job.setStatus(Job.JobStatus.PENDING);
39         job.setTypeAndData(jobType, ImmutableMap.of(
40                 "request", request,
41                 "userId", userId));
42         job.setTemplateId(templateId);
43         job.setIndexInBulk(indexInBulk);
44         job.setUserId(userId);
45         return job;
46     }
47
48     @Override
49     public List<Job> createBulkOfJobs(Map<String, Object> bulkRequest) {
50         int count;
51         JobType jobType;
52
53         try {
54             count = (Integer) bulkRequest.get("count");
55             jobType = JobType.valueOf((String) bulkRequest.get("type"));
56         } catch (Exception exception) {
57             throw new BadRequestException(exception);
58         }
59         List<Job> jobList = new ArrayList<>(count + 1);
60         UUID templateId = UUID.randomUUID();
61         for (int i = 0; i < count; i++) {
62             Job child = new JobDaoImpl();
63             child.setTypeAndData(jobType, bulkRequest);
64             child.setStatus(Job.JobStatus.PENDING);
65             child.setTemplateId(templateId);
66             child.setIndexInBulk(i);
67             jobList.add(child);
68         }
69         return jobList;
70     }
71
72 }