FreelanceBot

Форк
0
54 строки · 1.5 Кб
1
package telegramBot.service;
2

3
import org.springframework.beans.factory.annotation.Autowired;
4
import org.springframework.stereotype.Service;
5
import telegramBot.enums.Role;
6
import telegramBot.entity.Subscription;
7
import telegramBot.entity.User;
8
import telegramBot.repository.UserRepository;
9

10
import java.util.List;
11

12
@Service
13
public class UserService {
14

15
    @Autowired
16
    private UserRepository userRepository;
17

18
    public User save(User user) {
19
        return this.userRepository.save(user);
20
    }
21

22
    public User getByChatId(String chatId) {
23
        return this.userRepository.getByChatId(chatId);
24
    }
25

26
    public void addSubscription(User user, Subscription subscription) {
27
        if(!user.isActive()) user.setActive(true);
28
        user.addSubscription(subscription);
29
        this.update(user);
30
    }
31
    public void update(User user){
32
        this.userRepository.save(user);
33
    }
34

35
    public User createOrGet(String chatId) {
36
        User user = getByChatId(chatId);
37
        if(user == null) return save(new User(chatId, (Role.isAdmin(chatId) ? Role.ADMIN : Role.USER)));
38
        return user;
39

40
    }
41
    public void removeSubscription(User user, Subscription subscription) {
42
        user.removeSubscription(subscription);
43
        if(user.getSubscriptions().isEmpty()) user.setActive(false);
44
        this.update(user);
45
    }
46
    public void setActive(String chatId, boolean flag) {
47
        User user = getByChatId(chatId);
48
        user.setActive(flag);
49
        update(user);
50
    }
51
    public List<User> getAllActive() {
52
        return this.userRepository.getAllActive();
53
    }
54
}
55

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.