Skip to content

Commit 812636e

Browse files
committed
입력처리 구현
1 parent b9fb9a2 commit 812636e

File tree

1 file changed

+200
-94
lines changed

1 file changed

+200
-94
lines changed

src/main/java/com/sprint/mission/discodeit/JavaApplication.java

Lines changed: 200 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -7,114 +7,220 @@
77
import com.sprint.mission.discodeit.service.jcf.JCFMessageService;
88
import com.sprint.mission.discodeit.service.jcf.JCFUserService;
99

10-
import java.util.Comparator;
10+
import java.util.Scanner;
11+
import java.util.UUID;
1112

1213
public class JavaApplication {
1314
public static void main(String[] args) {
15+
Scanner scanner = new Scanner(System.in);
1416
JCFUserService userService = new JCFUserService();
1517
JCFMessageService messageService = new JCFMessageService(userService, null);
1618
JCFChannelService channelService = new JCFChannelService(messageService, userService);
1719

1820
messageService.setChannelService(channelService);
1921
userService.addChannelService(channelService);
2022

21-
System.out.println("유저 생성 및 조회");
22-
User user1 = new User("유저1");
23-
User user2 = new User("유저2");
24-
User user3 = new User("유저3");
25-
User user4 = new User("유저4");
26-
27-
userService.createUser(user1);
28-
userService.createUser(user2);
29-
userService.createUser(user3);
30-
userService.createUser(user4);
31-
32-
System.out.println("모든 유저 조회");
33-
userService.getAllUsers().stream()
34-
.sorted(Comparator.comparing(User::getUserName))
35-
.forEach(user -> System.out.println("Id : " + user.getId() + " 유저 이름 : " + user.getUserName()));
36-
37-
System.out.println();
38-
System.out.println("채널 생성 및 조회");
39-
Channel channel1 = new Channel("채널1");
40-
Channel channel2 = new Channel("채널2");
41-
42-
channelService.createChannel(channel1);
43-
channelService.createChannel(channel2);
44-
45-
channelService.addUserToChannel(channel1.getId(), user1.getId());
46-
channelService.addUserToChannel(channel1.getId(), user2.getId());
47-
channelService.addUserToChannel(channel2.getId(), user3.getId());
48-
channelService.addUserToChannel(channel2.getId(), user4.getId());
49-
50-
System.out.println("채널 참가 유저 목록 조회");
51-
System.out.println("채널 : " + channel1.getChannelName());
52-
System.out.println(channel1.getUserIds());
53-
System.out.println("채널 : " + channel2.getChannelName());
54-
System.out.println(channel2.getUserIds());
55-
56-
System.out.println();
57-
System.out.println("메시지 생성 및 조회");
58-
messageService.createMessageCheck("안녕하세요", user1.getId(), channel1.getId());
59-
messageService.createMessageCheck("여긴 채널1입니다", user2.getId(), channel1.getId());
60-
messageService.createMessageCheck("여긴 채널2입니다", user3.getId(), channel2.getId());
61-
messageService.createMessageCheck("테스트중", user4.getId(), channel2.getId());
62-
63-
System.out.println("채널 : " + channel1.getChannelName() + "의 모든 메시지 목록");
64-
messageService.getAllMessages().stream()
65-
.filter(message -> message.getChannelId().equals(channel1.getId()))
66-
.forEach(message -> System.out.println(message.getId() + " - " + message));
67-
68-
System.out.println("채널 : " + channel2.getChannelName() + "의 모든 메시지 목록");
69-
messageService.getAllMessages().stream()
70-
.filter(message -> message.getChannelId().equals(channel2.getId()))
71-
.forEach(message -> System.out.println(message.getId() + " - " + message));
72-
73-
System.out.println();
74-
System.out.print("수정된 유저 정보 : ");
75-
System.out.print(userService.getUser(user1.getId()).getUserName());
76-
userService.updateUser(user1.getId(), "superuser1");
77-
System.out.print(" -> ");
78-
System.out.println(userService.getUser(user1.getId()).getUserName());
79-
System.out.println();
80-
81-
System.out.print("수정된 채널 정보 : ");
82-
System.out.println(channelService.getChannel(channel2.getId()));
83-
channelService.updateChannel(channel2.getId(), "special channel");
84-
System.out.print(" -> ");
85-
System.out.println(channelService.getChannel(channel2.getId()));
86-
System.out.println();
87-
88-
Message message1 = messageService.getAllMessages().stream()
89-
.filter(msg -> msg.getChannelId().equals(channel1.getId()) && msg.getMsgContent().equals("안녕하세요"))
90-
.findFirst().orElse(null);
91-
92-
if (message1 != null) {
93-
System.out.print("수정된 메시지 : ");
94-
System.out.print(message1.getMsgContent());
95-
messageService.updateMessage(message1.getId(), "Update Message");
96-
System.out.print(" -> ");
97-
System.out.println(messageService.getMessage(message1.getId()).getMsgContent());
23+
while (true) {
24+
System.out.println("===== MAIN MENU =====");
25+
System.out.println("1. 사용자 메뉴");
26+
System.out.println("2. 메시지 메뉴");
27+
System.out.println("3. 채널 메뉴");
28+
System.out.println("0. 종료");
29+
System.out.println("번호를 입력하세요");
30+
String mainMenu = scanner.nextLine();
31+
32+
switch (mainMenu) {
33+
case "1":
34+
userMenu(scanner, userService);
35+
break;
36+
case "2":
37+
channelMenu(scanner, channelService, userService);
38+
break;
39+
case "3":
40+
messageMenu(scanner, messageService, channelService, userService);
41+
break;
42+
case "0":
43+
System.out.println("종료");
44+
return;
45+
default:
46+
System.out.println("표시되지 않은 번호를 눌렀습니다");
47+
}
9848
}
49+
}
9950

100-
System.out.println();
101-
userService.deleteUser(user4.getId());
102-
channelService.deleteChannel(channel1.getId());
103-
104-
Message messageToDelete = messageService.getAllMessages().stream()
105-
.filter(msg -> msg.getChannelId().equals(channel2.getId()) && msg.getMsgContent().equals("여긴 채널2입니다"))
106-
.findFirst().orElse(null);
107-
if (messageToDelete != null) {
108-
messageService.deleteMessage(messageToDelete.getId());
51+
private static void userMenu(Scanner scanner, JCFUserService userService) {
52+
while (true) {
53+
System.out.println("===== USER MENU =====");
54+
System.out.println("1. 사용자 등록");
55+
System.out.println("2. 사용자 단건 조회");
56+
System.out.println("3. 사용자 다건 조회");
57+
System.out.println("4. 사용자 수정");
58+
System.out.println("5. 사용자 삭제");
59+
System.out.println("0. 초기 화면으로");
60+
System.out.println("번호를 입력하세요");
61+
String select = scanner.nextLine();
62+
63+
switch (select) {
64+
case "1":
65+
System.out.println("사용자 이름 입력");
66+
String userName = scanner.nextLine();
67+
User user = new User(userName);
68+
System.out.println("생성된 사용자 식별키 : " + user.getId());
69+
break;
70+
case "2":
71+
System.out.println("조회할 사용자의 식별키 입력");
72+
UUID id = UUID.fromString(scanner.nextLine());
73+
User userId = userService.getUser(id);
74+
if (userId != null) {
75+
System.out.println("사용자 이름 : " + userId.getUserName());
76+
} else {
77+
System.out.println("해당 식별키를 가진 사용자가 없습니다");
78+
}
79+
break;
80+
case "3":
81+
System.out.println("전체 사용자 목록");
82+
userService.getAllUsers()
83+
.forEach(u -> System.out.println(u.getId()
84+
+ " - " + u.getUserName()));
85+
case "4":
86+
System.out.println("수정할 사용자 식별키 입력");
87+
UUID updateId = UUID.fromString(scanner.nextLine());
88+
System.out.println("새로운 사용자 이름 입력");
89+
String newUserName = scanner.nextLine();
90+
userService.updateUser(updateId, newUserName);
91+
System.out.println("수정 완료");
92+
break;
93+
case "5":
94+
System.out.println("삭제할 사용자 식별키 입력");
95+
UUID deleteId = UUID.fromString(scanner.nextLine());
96+
userService.deleteUser(deleteId);
97+
System.out.println("삭제 완료");
98+
break;
99+
case "0":
100+
return;
101+
default:
102+
System.out.println("표시되지 않은 번호를 눌렀습니다");
103+
}
109104
}
105+
}
110106

111-
System.out.println("삭제 후 남은 유저");
112-
userService.getAllUsers().forEach(user -> System.out.println(user.getUserName()));
113-
114-
System.out.println("삭제 후 남은 채널");
115-
channelService.getAllChannels().forEach(channel -> System.out.println(channel.getChannelName()));
107+
private static void channelMenu(Scanner scanner, JCFChannelService channelService, JCFUserService userService) {
108+
while (true) {
109+
System.out.println("===== CHANNEL MENU =====");
110+
System.out.println("1. 채널 생성");
111+
System.out.println("2. 채널 단건 조회");
112+
System.out.println("3. 채널 다건 조회");
113+
System.out.println("4. 채널 수정");
114+
System.out.println("5. 채널 삭제");
115+
System.out.println("6. 채널에 사용자 추가");
116+
System.out.println("0. 초기 화면으로");
117+
System.out.println("번호를 입력하세요");
118+
String select = scanner.nextLine();
119+
120+
switch (select) {
121+
case "1":
122+
System.out.println("채널 이름 입력");
123+
String channelName = scanner.nextLine();
124+
Channel channel = new Channel(channelName);
125+
channelService.createChannel(channel);
126+
System.out.println("생성된 채널 식별키 : " + channel.getId());
127+
break;
128+
case "2":
129+
System.out.println("조회할 채널 식별키 입력");
130+
UUID channelId = UUID.fromString(scanner.nextLine());
131+
Channel find = channelService.getChannel(channelId);
132+
if (find != null) {
133+
System.out.println("채널 이름 : " + find.getChannelName());
134+
System.out.println("참가자 : " + find.getUserIds());
135+
} else {
136+
System.out.println("해당 식별키를 가진 채널이 없습니다");
137+
}
138+
break;
139+
case "3":
140+
channelService.getAllChannels()
141+
.forEach(ch -> System.out.println(ch.getId()
142+
+ " - " + ch.getChannelName()));
143+
break;
144+
case "4":
145+
System.out.println("수정할 채널 식별키 입력");
146+
UUID updateCh = UUID.fromString(scanner.nextLine());
147+
System.out.println("새로운 채널 이름 입력");
148+
String newChannelName = scanner.nextLine();
149+
channelService.updateChannel(updateCh, newChannelName);
150+
break;
151+
case "5":
152+
System.out.println("삭제할 채널 식별키 입력");
153+
UUID deleteCh = UUID.fromString(scanner.nextLine());
154+
channelService.deleteChannel(deleteCh);
155+
break;
156+
case "6":
157+
System.out.println("채널 식별키 입력");
158+
UUID joinCh = UUID.fromString(scanner.nextLine());
159+
System.out.println("등록할 사용자 식별키 입력");
160+
UUID userJoin = UUID.fromString(scanner.nextLine());
161+
channelService.addUserToChannel(joinCh, userJoin);
162+
break;
163+
case "0":
164+
return;
165+
default:
166+
System.out.println("표시되지 않은 번호를 눌렀습니다");
167+
}
168+
}
169+
}
116170

117-
System.out.println("삭제 후 남은 메시지");
118-
messageService.getAllMessages().forEach(message -> System.out.println(message.getMsgContent()));
171+
private static void messageMenu(Scanner scanner, JCFMessageService messageService, JCFChannelService channelService, JCFUserService userService) {
172+
while (true) {
173+
System.out.println("===== MESSAGE MENU =====");
174+
System.out.println("1. 메시지 생성");
175+
System.out.println("2. 메시지 단건 조회");
176+
System.out.println("3. 메시지 다건 조회");
177+
System.out.println("4. 메시지 수정");
178+
System.out.println("5. 메시지 삭제");
179+
System.out.println("0. 초기 화면으로");
180+
System.out.println("번호를 입력하세요");
181+
String choice = scanner.nextLine();
182+
183+
switch (choice) {
184+
case "1":
185+
System.out.print("보낼 메시지 내용");
186+
String content = scanner.nextLine();
187+
System.out.print("보낸 사용자 식별키");
188+
UUID senderId = UUID.fromString(scanner.nextLine());
189+
System.out.print("보낼 채널 식별키");
190+
UUID channelId = UUID.fromString(scanner.nextLine());
191+
Message message = messageService.createMessageCheck(content, senderId, channelId);
192+
System.out.println("생성된 메시지 식별키 " + message.getId());
193+
break;
194+
case "2":
195+
System.out.print("조회할 메시지 식별키 입력");
196+
UUID messageId = UUID.fromString(scanner.nextLine());
197+
Message msg = messageService.getMessage(messageId);
198+
if (msg != null) {
199+
System.out.println(msg);
200+
} else {
201+
System.out.println("메시지를 찾을 수 없습니다.");
202+
}
203+
break;
204+
case "3":
205+
messageService.getAllMessages().forEach(System.out::println);
206+
break;
207+
case "4":
208+
System.out.print("수정할 메시지 식별키 입력");
209+
UUID msgId = UUID.fromString(scanner.nextLine());
210+
System.out.print("새 메시지 내용 입력");
211+
String newMsg = scanner.nextLine();
212+
messageService.updateMessage(msgId, newMsg);
213+
break;
214+
case "5":
215+
System.out.print("삭제할 메시지 식별키 입력");
216+
UUID delId = UUID.fromString(scanner.nextLine());
217+
messageService.deleteMessage(delId);
218+
break;
219+
case "0":
220+
return;
221+
default:
222+
System.out.println("표시되지 않은 번호를 눌렀습니다");
223+
}
224+
}
119225
}
120226
}

0 commit comments

Comments
 (0)