49 lines
1.9 KiB
Java
49 lines
1.9 KiB
Java
package com.rosetta.im.service.services;
|
||
|
||
import java.util.List;
|
||
|
||
import com.rosetta.im.database.entity.Device;
|
||
import com.rosetta.im.database.entity.User;
|
||
import com.rosetta.im.database.repository.DeviceRepository;
|
||
import com.rosetta.im.service.Service;
|
||
|
||
public class DeviceService extends Service<DeviceRepository> {
|
||
|
||
public DeviceService(DeviceRepository repository) {
|
||
super(repository);
|
||
}
|
||
|
||
/**
|
||
* Проверяет, верифицировано ли устройство с deviceId для пользователя user
|
||
* @param deviceId ID устройства
|
||
* @param user пользователь
|
||
* @return true если устройство верифицировано, иначе false
|
||
*/
|
||
public boolean isDeviceVerifiedByUser(String deviceId, User user) {
|
||
List<Device> devices = this.getRepository().findAll(user);
|
||
if(devices.size() == 0) {
|
||
/**
|
||
* Если у пользователя нет устройств, значит текущее устройство верифицировано
|
||
* такого быть не может, это избыточная проверка
|
||
*/
|
||
return true;
|
||
}
|
||
for(Device device : devices) {
|
||
if(device.getDeviceId().equals(deviceId)) {
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
/**
|
||
* Получить список устройств для публичного ключа
|
||
* @param publicKey публичный ключ пользователя, для которого нужно получить список устройств
|
||
* @return список устройств для публичного ключа
|
||
*/
|
||
public List<Device> getDevicesByPK(String publicKey) {
|
||
return this.getRepository().findAllByField("publicKey", publicKey);
|
||
}
|
||
|
||
}
|