Skip to content

Commit

Permalink
๐Ÿš€ [Deploy] - DiscordListener ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฐ˜์˜ (#215)
Browse files Browse the repository at this point in the history
* ๐Ÿ› [Fix] - Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜ nickname ์ด์Šˆ ํ•ด๊ฒฐ (#205)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜ ์ค‘ ์ƒ๊ธด ์ด์Šˆ ํ•ด๊ฒฐ

* Fix: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜
 ์ค‘ ์ƒ๊ธด ์ด์Šˆ ํ•ด๊ฒฐ

* ๐Ÿ› [Fix] - Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜ (#207)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜ ์ค‘ ์ƒ๊ธด ์ด์Šˆ ํ•ด๊ฒฐ

* Fix: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜
 ์ค‘ ์ƒ๊ธด ์ด์Šˆ ํ•ด๊ฒฐ

* Fix: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜
 ์ค‘ ์ƒ๊ธด ์ด์Šˆ ํ•ด๊ฒฐ

* ๐Ÿ› [Fix] - Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜ nickname ์ด์Šˆ ํ•ด๊ฒฐ #51 (#209)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜ ์ค‘ ์ƒ๊ธด ์ด์Šˆ ํ•ด๊ฒฐ

* Fix: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜
 ์ค‘ ์ƒ๊ธด ์ด์Šˆ ํ•ด๊ฒฐ

* Fix: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜
 ์ค‘ ์ƒ๊ธด ์ด์Šˆ ํ•ด๊ฒฐ

* Chore: ํ”„๋ก ํŠธ์—”๋“œ redirect url ์ˆ˜์ •

* Fix: ๋””์Šค์ฝ”๋“œ ์†Œ์…œ ๋กœ๊ทธ์ธ ์ด์Šˆ ํ•ด๊ฒฐ

* ๐Ÿ› [Fix] - ์†Œ์…œ ๋กœ๊ทธ์ธ ํ›„, ์ถ”๊ฐ€ ์ •๋ณด ์ž…๋ ฅ ๋ฐ›๋Š” ๊ธฐ๋Šฅ ์˜ค๋ฅ˜ (#212)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: updateUserInfo ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* Fix: ๋””์Šค์ฝ”๋“œ ์ „ํ™˜์œผ๋กœ ์ธํ•œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* ๐Ÿ› [Fix] - DiscordListener ์˜ค๋ฅ˜ ํ•ด๊ฒฐ (#214)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* Refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* Refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* Fix: ๋””์Šค์ฝ”๋“œ ์•„์ด๋”” ์ถ”๊ฐ€

* Fix: ๊ธฐ๋ณธ ํ”„๋กœํ•„ ์‚ฌ์ง„ ์ง€์ •

* Fix: serialId => discordId๋กœ ์ „ํ™˜

* Refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •
  • Loading branch information
JeongHeumChoi authored Jul 24, 2024
1 parent 0cb40b3 commit 27e8a2f
Show file tree
Hide file tree
Showing 7 changed files with 82 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
@Slf4j
@RequiredArgsConstructor
public class DiscordListener extends ListenerAdapter {

private final UserService userService;
private final TeamService teamService;
private final MemberService memberService;
Expand All @@ -33,10 +34,13 @@ public class DiscordListener extends ListenerAdapter {
private final WorkService workService;
private final GptService gptService;
private final ReviewService reviewService;

@Override
public void onSlashCommandInteraction(SlashCommandInteractionEvent event) {

LocalDate nowLocalDate = LocalDate.now();
LocalDateTime nowLocalDateTime = LocalDateTime.now();

switch (event.getName()) {
case "1-ํŒ€์›์—…๋ฐ์ดํŠธ":
// ๋ด‡์„ ์ œ์™ธํ•œ ์‚ฌ์šฉ์ž ๋ชฉ๋ก ์ƒ์„ฑ
Expand All @@ -55,9 +59,8 @@ public void onSlashCommandInteraction(SlashCommandInteractionEvent event) {
log.info("๋ฉค๋ฒ„ ์ƒ์„ฑ ์™„๋ฃŒ");

event.reply("ํŒ€ ๊ณผ ํŒ€ ๋ฉค๋ฒ„๋ฅผ ์—ฐ๊ฒฐํ–ˆ์–ด์š”! 'ํŒŒํŠธ์ž…๋ ฅํ•˜๊ธฐ' ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์—ญํ• ์„ ์•Œ๋ ค์ฃผ์„ธ์š” !!").setEphemeral(true).queue();
} else {
} else
event.reply("์›น์— ํšŒ์›๊ฐ€์ž…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค!\n\n" + "ํšŒ์›๊ฐ€์ž… ํ•ด์ฃผ์„ธ์š” !! : " + noSignUp.toString()).setEphemeral(true).queue();
}
break;

case "2-ํŒŒํŠธ์ž…๋ ฅํ•˜๊ธฐ":
Expand Down Expand Up @@ -397,65 +400,84 @@ public void onSlashCommandInteraction(SlashCommandInteractionEvent event) {
break;
}
}

public List<String> findNoSignUp(List<Member> members) {

List<String> usersWithoutInfo = new ArrayList<>();
for (Member member : members) {
String serialId = member.getUser().getName();
if (!userService.isExisted(serialId)) {
usersWithoutInfo.add(serialId);
}
String discordId = member.getUser().getName();
if (!userService.isExisted(discordId))
usersWithoutInfo.add(discordId);
}
return usersWithoutInfo;
}

private Team myTeam(SlashCommandInteractionEvent event){
Optional<Team> optionalTeam = teamService.findByGuildId(event.getGuild().getId());
if (optionalTeam.isEmpty()){
if (optionalTeam.isEmpty())
event.reply("ํŒ€์›์—…๋ฐ์ดํŠธ๋ฅผ ํ†ตํ•ด ํŒ€์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š” !").setEphemeral(true).queue();
}
return optionalTeam.get();
}
private goormthon.team28.startup_valley.domain.User getUser(SlashCommandInteractionEvent event, String userId){
Optional<goormthon.team28.startup_valley.domain.User> optionalUser = userService.findBySerialId(userId);
if (optionalUser.isEmpty()){

private goormthon.team28.startup_valley.domain.User getUser(
SlashCommandInteractionEvent event,
String userId
){
Optional<goormthon.team28.startup_valley.domain.User> optionalUser = userService.findByDiscordId(userId);
if (optionalUser.isEmpty())
event.reply("์›น์— ํšŒ์›๊ฐ€์ž…์„ ๋จผ์ € ์ง„ํ–‰ํ•ด์ฃผ์„ธ์š” !").setEphemeral(true).queue();
}
return optionalUser.get();
}
private goormthon.team28.startup_valley.domain.Member getMember(SlashCommandInteractionEvent event, String userId){
Optional<goormthon.team28.startup_valley.domain.Member> optionalMember = memberService.findByTeamAndUser(
myTeam(event),
getUser(event, userId)
);
if (optionalMember.isEmpty()){
event.reply("ํŒ€์›์„ ์กฐํšŒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ใ… ใ… . ํŒ€์› ์—…๋ฐ์ดํŠธ๋ฅผ ํ†ตํ•ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•ด์ฃผ์„ธ์š” ~ !").setEphemeral(true).queue();
}

private goormthon.team28.startup_valley.domain.Member getMember(
SlashCommandInteractionEvent event,
String userId
){
Optional<goormthon.team28.startup_valley.domain.Member> optionalMember
= memberService.findByTeamAndUser(myTeam(event), getUser(event, userId));
if (optionalMember.isEmpty())
event.reply("ํŒ€์›์„ ์กฐํšŒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ใ… ใ… . ํŒ€์› ์—…๋ฐ์ดํŠธ๋ฅผ ํ†ตํ•ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•ด์ฃผ์„ธ์š” ~ !")
.setEphemeral(true)
.queue();
return optionalMember.get();
}
private Optional<Scrum> getProcessingScrum(SlashCommandInteractionEvent event, String userId){

private Optional<Scrum> getProcessingScrum(
SlashCommandInteractionEvent event,
String userId
){
Optional<Scrum> nowScrum = scrumService.findNowScrum(getMember(event, userId));
if (nowScrum.isEmpty()){
event.reply("์‹œ์ž‘๋œ ์ž‘์—…์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ใ… ใ… , ์ž‘์—…์„ ๋จผ์ € ์‹œ์ž‘ํ•ด์ฃผ์„ธ์š”").setEphemeral(true).queue();
event.reply("์‹œ์ž‘๋œ ์ž‘์—…์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ใ… ใ… , ์ž‘์—…์„ ๋จผ์ € ์‹œ์ž‘ํ•ด์ฃผ์„ธ์š”")
.setEphemeral(true)
.queue();
}
return nowScrum;
}

private Optional<Work> getMyProcessingWork(SlashCommandInteractionEvent event){
String userId = event.getUser().getName();
return workService.findNotOverWork(getProcessingScrum(event, userId).get(), getMember(event, userId));
}
public void saveOrGetMember(Team team, Member discordMember, SlashCommandInteractionEvent event) {
goormthon.team28.startup_valley.domain.Member teamMember = memberService.saveOrGetMember(
team,
getUser(event, discordMember.getUser().getName())
);

if (isTeamLeaderNotSet(team) && isGuildOwner(discordMember, event)) {
public void saveOrGetMember(
Team team,
Member discordMember,
SlashCommandInteractionEvent event
) {
goormthon.team28.startup_valley.domain.Member teamMember
= memberService.saveOrGetMember(team, getUser(event, discordMember.getUser().getName()));

if (isTeamLeaderNotSet(team) && isGuildOwner(discordMember, event))
teamService.updateLeader(team.getId(), teamMember);
}
}

public boolean isTeamLeaderNotSet(Team team) {
return team.getLeader() == null;
}

public boolean isGuildOwner(Member discordMember, SlashCommandInteractionEvent event) {
return discordMember.getUser().getName().equals(event.getGuild().getOwner().getUser().getName());
return discordMember.getUser().getName()
.equals(event.getGuild().getOwner().getUser().getName());
}
}
14 changes: 11 additions & 3 deletions src/main/java/goormthon/team28/startup_valley/domain/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.DynamicUpdate;
import org.springframework.transaction.annotation.Transactional;

@Entity
@Getter
@DynamicUpdate
@Table(name = "users")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class User {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
Expand All @@ -25,36 +25,44 @@ public class User {
/* ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ์ •๋ณด */
@Column(name = "serial_id", nullable = false, unique = true)
private String serialId; // discord serial id

@Column(name = "password", nullable = false)
private String password;
@Column(name = "discord_id")
private Long discordId;

@Column(name = "discord_id", nullable = false, unique = true)
private String discordId;

@Column(name = "role", nullable = false)
@Enumerated(EnumType.STRING)
private ERole role;

@Column(name = "provider", nullable = false)
@Enumerated(EnumType.STRING)
private EProvider provider;

/* ์‚ฌ์šฉ์ž ์ด์šฉ ์ •๋ณด */
@Column(name = "nickname")
private String nickname;

@Column(name = "profile_image")
@Enumerated(EnumType.STRING)
private EProfileImage profileImage;

@Column(name = "refresh_Token")
private String refreshToken;

@Builder
public User(
String serialId,
String password,
String discordId,
ERole role,
EProfileImage profileImage,
EProvider provider
) {
this.serialId = serialId;
this.password = password;
this.discordId = discordId;
this.role = role;
this.profileImage = profileImage;
this.provider = provider;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ public interface UserRepository extends JpaRepository<User, Long> {
@Query("update User u set u.refreshToken = :refreshToken where u.id = :userId")
void updateRefreshToken(Long userId, String refreshToken);
Optional<User> findById(Long userId);
Optional<User> findBySerialId(String serialId);
boolean existsBySerialId(String serialId);
Optional<User> findByDiscordId(String discordId);
boolean existsByDiscordId(String discordId);
boolean existsByIdAndNicknameIsNull(Long id);

interface UserSecurityForm {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,9 @@ public DiscordOauth2UserInfo(Map<String, Object> attributes) {
public String getId() {
return this.attributes.get("id").toString();
}

@Override
public String getDiscordId() {
return this.attributes.get("username").toString();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@
public abstract class Oauth2UserInfo {
protected final Map<String, Object> attributes;
public abstract String getId();
public abstract String getDiscordId();
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package goormthon.team28.startup_valley.security.service;

import goormthon.team28.startup_valley.domain.User;
import goormthon.team28.startup_valley.dto.type.EProfileImage;
import goormthon.team28.startup_valley.dto.type.EProvider;
import goormthon.team28.startup_valley.dto.type.ERole;
import goormthon.team28.startup_valley.repository.UserRepository;
Expand Down Expand Up @@ -53,8 +54,10 @@ public OAuth2User loadUser(
bCryptPasswordEncoder
.encode(UUID.randomUUID().toString())
)
.provider(provider)
.discordId(oauth2UserInfo.getDiscordId())
.role(ERole.USER)
.profileImage(EProfileImage.TOMATO)
.provider(provider)
.build()
);
return UserRepository.UserSecurityForm.invoke(newUser);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,16 @@
@Service
@RequiredArgsConstructor
public class UserService {

private final UserRepository userRepository;
private final MemberRepository memberRepository;
public Optional<User> findBySerialId(String serialId){
return userRepository.findBySerialId(serialId);

public Optional<User> findByDiscordId(String discordId){
return userRepository.findByDiscordId(discordId);
}
public boolean isExisted(String serialId){
return userRepository.existsBySerialId(serialId);

public boolean isExisted(String discordId){
return userRepository.existsByDiscordId(discordId);
}

public UserDto getUserInfo(Long userId) {
Expand Down

0 comments on commit 27e8a2f

Please sign in to comment.