Хэндшейк, сервисы, аннотационные блокировки в протоколе, репозитории
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
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 user пользователь
|
||||
* @return количество устройств
|
||||
*/
|
||||
public long countUserDevices(User user) {
|
||||
return this.getRepository().countByField("publicKey", user.getPublicKey());
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user