Newer
Older
job-tracker / src / main / java / com / kpaudel / service / JobService.java
package com.kpaudel.service;

import com.kpaudel.model.ApplicationStatus;
import com.kpaudel.model.Company;
import com.kpaudel.model.JobApplication;
import com.kpaudel.repository.CompanyRepository;
import com.kpaudel.repository.JobApplicationRepository;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.UUID;

@Service
public class JobService {
    private final JobApplicationRepository jobRepo;
    private final CompanyRepository companyRepo;

    public JobService(JobApplicationRepository jobRepo, CompanyRepository companyRepo) {
        this.jobRepo = jobRepo;
        this.companyRepo = companyRepo;
    }

    public JobApplication create(UUID companyId, JobApplication data) {
        Company company = this.companyRepo.findById(companyId).orElseThrow(() -> new IllegalArgumentException("Company not found!"));
        data.setCompany(company);
        return jobRepo.save(data);
    }

    public JobApplication updateStatus(UUID id, ApplicationStatus status) {
        JobApplication job = this.jobRepo.findById(id).orElseThrow(() -> new IllegalArgumentException("Job not found"));
        job.setStatus(status);
        return this.jobRepo.save(job);
    }

    public List<JobApplication> listAll() {
        return this.jobRepo.findAll();
    }
}