From e1ea86b36bfa6a426ac9db67bfaad14183c645ae Mon Sep 17 00:00:00 2001 From: L_DelOff Date: Sat, 12 Aug 2023 19:43:49 +0300 Subject: [PATCH] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=B7=D0=B0=D0=B3?= =?UTF-8?q?=D1=80=D1=83=D0=B7=D0=BA=D0=B0=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D0=B5=D0=B9=20=D0=B2=20?= =?UTF-8?q?=D0=91=D0=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../servermonitorbot/config/UserConfig.java | 17 ++++++++++ .../servermonitorbot/init/AddUsers.java | 34 +++++++++++++++++++ .../servermonitorbot/mapper/UserMapper.java | 22 ++++++++++++ .../model/dto/InitUserDto.java | 14 ++++++++ src/main/resources/application.yml | 3 ++ 5 files changed, 90 insertions(+) create mode 100644 src/main/java/ru/ldeloff/servermonitorbot/config/UserConfig.java create mode 100644 src/main/java/ru/ldeloff/servermonitorbot/init/AddUsers.java create mode 100644 src/main/java/ru/ldeloff/servermonitorbot/mapper/UserMapper.java create mode 100644 src/main/java/ru/ldeloff/servermonitorbot/model/dto/InitUserDto.java diff --git a/src/main/java/ru/ldeloff/servermonitorbot/config/UserConfig.java b/src/main/java/ru/ldeloff/servermonitorbot/config/UserConfig.java new file mode 100644 index 0000000..9c9e51d --- /dev/null +++ b/src/main/java/ru/ldeloff/servermonitorbot/config/UserConfig.java @@ -0,0 +1,17 @@ +package ru.ldeloff.servermonitorbot.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; +import ru.ldeloff.servermonitorbot.model.dto.InitUserDto; + +import java.util.List; + +@Configuration +@ConfigurationProperties(prefix = "bot") +@Getter +@Setter +public class UserConfig { + private List users; +} diff --git a/src/main/java/ru/ldeloff/servermonitorbot/init/AddUsers.java b/src/main/java/ru/ldeloff/servermonitorbot/init/AddUsers.java new file mode 100644 index 0000000..560d72e --- /dev/null +++ b/src/main/java/ru/ldeloff/servermonitorbot/init/AddUsers.java @@ -0,0 +1,34 @@ +package ru.ldeloff.servermonitorbot.init; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.stereotype.Component; +import ru.ldeloff.servermonitorbot.config.UserConfig; +import ru.ldeloff.servermonitorbot.mapper.UserMapper; +import ru.ldeloff.servermonitorbot.model.User; +import ru.ldeloff.servermonitorbot.model.dto.InitUserDto; +import ru.ldeloff.servermonitorbot.service.user.UserService; + +import java.util.List; + +@Component +public class AddUsers implements ApplicationRunner { + final List initUsers; + final UserService userService; + final UserMapper userMapper; + + @Autowired + public AddUsers(UserConfig userConfig, UserService userService, UserMapper userMapper) { + this.initUsers = userConfig.getUsers(); + this.userService = userService; + this.userMapper = userMapper; + } + + @Override + public void run(ApplicationArguments args) throws Exception { + initUsers.forEach(initUserDto -> { + User user = userService.saveOrUpdateUser(userMapper.dtoToUser(initUserDto)); + }); + } +} diff --git a/src/main/java/ru/ldeloff/servermonitorbot/mapper/UserMapper.java b/src/main/java/ru/ldeloff/servermonitorbot/mapper/UserMapper.java new file mode 100644 index 0000000..aa7811a --- /dev/null +++ b/src/main/java/ru/ldeloff/servermonitorbot/mapper/UserMapper.java @@ -0,0 +1,22 @@ +package ru.ldeloff.servermonitorbot.mapper; + +import org.springframework.stereotype.Component; +import ru.ldeloff.servermonitorbot.model.User; +import ru.ldeloff.servermonitorbot.model.dto.InitUserDto; +import ru.ldeloff.servermonitorbot.service.role.RoleService; + +@Component +public class UserMapper { + final RoleService roleService; + + public UserMapper(RoleService roleService) { + this.roleService = roleService; + } + + public User dtoToUser(InitUserDto initUserDto) { + User user = new User(); + user.setTelegramId(initUserDto.getTelegramId()); + user.setRole(roleService.findRoleByName(initUserDto.getRole())); + return user; + } +} diff --git a/src/main/java/ru/ldeloff/servermonitorbot/model/dto/InitUserDto.java b/src/main/java/ru/ldeloff/servermonitorbot/model/dto/InitUserDto.java new file mode 100644 index 0000000..a18efdf --- /dev/null +++ b/src/main/java/ru/ldeloff/servermonitorbot/model/dto/InitUserDto.java @@ -0,0 +1,14 @@ +package ru.ldeloff.servermonitorbot.model.dto; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.springframework.stereotype.Component; + +@Data +@Component +public class InitUserDto { + @NotNull + private long telegramId; + @NotNull + private String role; +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index fd384fc..35a985d 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -19,6 +19,9 @@ spring: bot: name: "ServerMonitorBot" token: "token" + users: + - telegramId: 123456789 + role: admin ssh: servers: -