Новый протокол регистрации токенов
All checks were successful
Build rosetta-wss / build (push) Successful in 1m48s

This commit is contained in:
RoyceDa
2026-03-31 17:44:09 +02:00
parent 1e00105d87
commit d2263c6b9a
14 changed files with 391 additions and 169 deletions

View File

@@ -59,57 +59,4 @@ public class UserService extends Service<UserRepository> {
User user = this.getRepository().findByField("username", username);
return user != null;
}
/**
* Подписывает пользователя на пуш уведомления, добавляя токен в его список токенов. Если токен уже был добавлен, то ничего не произойдет.
* @param user пользователь, которого нужно подписать на пуш уведомления
* @param notificationToken токен пуш уведомлений, который нужно добавить пользователю. Если токен уже был добавлен, то ничего не произойдет
*/
public void subscribeToPushNotifications(User user, String notificationToken) {
List<String> tokens = user.getNotificationsTokens();
if(tokens.contains(notificationToken)){
return;
}
tokens.add(notificationToken);
user.setNotificationsTokens(tokens);
this.getRepository().update(user);
}
/**
* Отписывает пользователя от пуш уведомлений, удаляя токен из его списка токенов. Если токена не было, то ничего не произойдет.
* @param user пользователь, которого нужно отписать от пуш уведомлений
* @param notificationToken токен пуш уведомлений, который нужно удалить у пользователя. Если токена не было, то ничего не произойдет
*/
public void unsubscribeFromPushNotifications(User user, String notificationToken) {
List<String> tokens = user.getNotificationsTokens();
if(!tokens.contains(notificationToken)){
return;
}
tokens.remove(notificationToken);
user.setNotificationsTokens(tokens);
this.getRepository().update(user);
}
/**
* Получает список токенов пуш уведомлений пользователя
* @param user пользователь, у которого нужно получить список токенов пуш уведомлений
* @return список токенов пуш уведомлений пользователя
*/
public List<String> getNotificationsTokens(User user) {
return user.getNotificationsTokens();
}
/**
* Получает список токенов пуш уведомлений пользователя
* @param publicKey публичный ключ пользователя, у которого нужно получить список токенов пуш уведомлений
* @return список токенов пуш уведомлений пользователя
*/
public List<String> getNotificationsTokens(String publicKey) {
User user = this.getRepository().findByField("publicKey", publicKey);
if(user == null){
return null;
}
return user.getNotificationsTokens();
}
}