From e57060f5cacb2b80ea61b58d87fbcabe2825eee0 Mon Sep 17 00:00:00 2001 From: gsd Date: Sat, 4 Mar 2023 22:45:45 +0300 Subject: [PATCH] =?UTF-8?q?=D1=80=D0=B5=D0=B3=D0=B0=20=D0=B4=D0=B8=D1=81?= =?UTF-8?q?=D0=BA=D0=BE=D1=80=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/discord/DiscordController.java | 11 ++++++----- .../java/app/services/db/DiscordAuthService.java | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/main/java/app/controllers/discord/DiscordController.java b/src/main/java/app/controllers/discord/DiscordController.java index aa5910f..0da3155 100644 --- a/src/main/java/app/controllers/discord/DiscordController.java +++ b/src/main/java/app/controllers/discord/DiscordController.java @@ -4,6 +4,7 @@ import app.annotations.enums.AuthMethod; import app.annotations.interfaces.CheckWebAccess; import app.entities.other.SteamID; import app.services.db.DiscordAuthService; +import app.utils.SteamIDConverter; import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -34,18 +35,18 @@ public class DiscordController { @RequestParam String discord_id){ SteamID steamID = discordAuthService.getSteamIDofDiscordID(discord_id); if (steamID != null) return new ResponseEntity(HttpStatus.NOT_ACCEPTABLE); - //Релизовать регистрацию пользователя - return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + steamID = SteamIDConverter.getSteamID(steam64); + boolean result = discordAuthService.setSteamIDofDiscordID(steamID, discord_id); + return new ResponseEntity(result ,HttpStatus.CREATED); } @DeleteMapping @CheckWebAccess(auth_method = AuthMethod.SECRET_KEY) public ResponseEntity unregisterDiscordUser(HttpServletRequest request, - @RequestParam String steam64, @RequestParam String discord_id){ SteamID steamID = discordAuthService.getSteamIDofDiscordID(discord_id); if (steamID == null) return new ResponseEntity(HttpStatus.NOT_ACCEPTABLE); - //Релизовать де-регистрацию - return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + boolean result = discordAuthService.removeSteamIDofDiscordID(steamID); + return new ResponseEntity(result, HttpStatus.OK); } } diff --git a/src/main/java/app/services/db/DiscordAuthService.java b/src/main/java/app/services/db/DiscordAuthService.java index 9e34011..37dc582 100644 --- a/src/main/java/app/services/db/DiscordAuthService.java +++ b/src/main/java/app/services/db/DiscordAuthService.java @@ -5,6 +5,7 @@ import app.utils.SteamIDConverter; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; @Service public class DiscordAuthService { @@ -19,4 +20,19 @@ public class DiscordAuthService { .findFirst() .orElse(null); } + + @Transactional + public boolean setSteamIDofDiscordID(SteamID steamID, String discord_id) { + return entityManager.createNativeQuery("INSERT INTO `steam2discord` (`id`, `steam_id`, `discord_id`, `timestamp`, `active`) VALUES (NULL, ?1, ?2, current_timestamp(), '1')") + .setParameter(1, steamID.steam2) + .setParameter(2, discord_id) + .executeUpdate() > 0; + } + + @Transactional + public boolean removeSteamIDofDiscordID(SteamID steamID) { + return entityManager.createNativeQuery("UPDATE `steam2discord` SET `active` = '0' WHERE `steam_id` LIKE ?1") + .setParameter(1, steamID.steam2) + .executeUpdate() > 0; + } }