diff options
Diffstat (limited to 'vid-app-common/src/main/java/org/onap/vid/services/BulkInstantiationServiceImpl.java')
-rw-r--r-- | vid-app-common/src/main/java/org/onap/vid/services/BulkInstantiationServiceImpl.java | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/services/BulkInstantiationServiceImpl.java b/vid-app-common/src/main/java/org/onap/vid/services/BulkInstantiationServiceImpl.java new file mode 100644 index 00000000..2a868f13 --- /dev/null +++ b/vid-app-common/src/main/java/org/onap/vid/services/BulkInstantiationServiceImpl.java @@ -0,0 +1,46 @@ +package org.onap.vid.services; + +import org.onap.vid.job.Job; +import org.onap.vid.job.JobAdapter; +import org.onap.vid.job.JobsBrokerService; +import org.onap.vid.model.JobBulk; +import org.onap.vid.model.JobModel; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.ws.rs.NotFoundException; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +@Service +public class BulkInstantiationServiceImpl implements BulkInstantiationService { + + private JobsBrokerService jobsBrokerService; + private JobAdapter jobAdapter; + + @Autowired + public BulkInstantiationServiceImpl(JobsBrokerService jobsBrokerService, JobAdapter jobAdapter) { + this.jobsBrokerService = jobsBrokerService; + this.jobAdapter = jobAdapter; + } + + @Override + public JobBulk saveBulk(Map<String, Object> bulkRequest) { + List<Job> jobList = jobAdapter.createBulkOfJobs(bulkRequest); + jobList.forEach(jobsBrokerService::add); + return jobAdapter.toModelBulk(jobList); + } + + @Override + public JobModel getJob(UUID uuid) { + Job job = jobsBrokerService.peek(uuid); + + if (job == null || job.getUuid() == null) { + throw new NotFoundException("Job with uuid " + uuid + " not found"); + } + return jobAdapter.toModel(job); + } + + +} |