DeviceService.java
package com.oliwier.listmebackend.domain.service;
import com.oliwier.listmebackend.domain.model.Device;
import com.oliwier.listmebackend.domain.model.User;
import com.oliwier.listmebackend.domain.repository.DeviceRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.UUID;
@Service
@RequiredArgsConstructor
public class DeviceService {
private final DeviceRepository deviceRepository;
private final UserService userService;
@Transactional
public Device getOrCreate(UUID deviceId, UUID userId) {
User user = userService.getOrCreate(userId);
Device device = deviceRepository.findById(deviceId)
.orElseGet(() -> deviceRepository.save(new Device(deviceId)));
if (device.getUser() == null || !device.getUser().getId().equals(userId)) {
device.setUser(user);
}
return device;
}
}