FreelanceBot
54 строки · 1.5 Кб
1package telegramBot.service;
2
3import org.springframework.beans.factory.annotation.Autowired;
4import org.springframework.stereotype.Service;
5import telegramBot.enums.Role;
6import telegramBot.entity.Subscription;
7import telegramBot.entity.User;
8import telegramBot.repository.UserRepository;
9
10import java.util.List;
11
12@Service
13public class UserService {
14
15@Autowired
16private UserRepository userRepository;
17
18public User save(User user) {
19return this.userRepository.save(user);
20}
21
22public User getByChatId(String chatId) {
23return this.userRepository.getByChatId(chatId);
24}
25
26public void addSubscription(User user, Subscription subscription) {
27if(!user.isActive()) user.setActive(true);
28user.addSubscription(subscription);
29this.update(user);
30}
31public void update(User user){
32this.userRepository.save(user);
33}
34
35public User createOrGet(String chatId) {
36User user = getByChatId(chatId);
37if(user == null) return save(new User(chatId, (Role.isAdmin(chatId) ? Role.ADMIN : Role.USER)));
38return user;
39
40}
41public void removeSubscription(User user, Subscription subscription) {
42user.removeSubscription(subscription);
43if(user.getSubscriptions().isEmpty()) user.setActive(false);
44this.update(user);
45}
46public void setActive(String chatId, boolean flag) {
47User user = getByChatId(chatId);
48user.setActive(flag);
49update(user);
50}
51public List<User> getAllActive() {
52return this.userRepository.getAllActive();
53}
54}
55