PersonService.java

package se.jobtechdev.personaldatagateway.api.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import se.jobtechdev.personaldatagateway.api.generated.entities.PersonEntity;
import se.jobtechdev.personaldatagateway.api.repository.PersonRepository;
import se.jobtechdev.personaldatagateway.api.util.TimeProvider;

import java.util.Optional;

@Component
public class PersonService {

  private final PersonRepository personRepository;

  @SuppressWarnings("unused")
  @Autowired
  public PersonService(PersonRepository personRepository) {
    this.personRepository = personRepository;
  }

  @Transactional
  public PersonEntity createPerson(String id) {
    final var person = new PersonEntity(id, TimeProvider.now());
    return personRepository.save(person);
  }

  public Optional<PersonEntity> getPersonById(String id) {
    return personRepository.findById(id);
  }
}