Files
WS-10-Database/src/main/java/dev/ui/ConsoleMenu.java
T

126 lines
3.2 KiB
Java

package dev.ui;
import dev.model.User;
import dev.service.AuthService;
import dev.service.MenuService;
import dev.service.OrderService;
import java.util.Scanner;
public class ConsoleMenu
{
private final Scanner scanner = new Scanner(System.in);
private final AuthService authService;
private final MenuService menuService;
private final OrderService orderService;
private User loggedInUser;
public ConsoleMenu(AuthService authService,
MenuService menuService,
OrderService orderService) {
this.authService = authService;
this.menuService = menuService;
this.orderService = orderService;
}
public void start()
{
while (true)
{
System.out.println();
System.out.println("===== JAVA PIZZERIA =====");
System.out.println("1. Login");
System.out.println("2. Register");
System.out.println("3. Exit");
int choice = scanner.nextInt();
scanner.nextLine();
switch (choice)
{
case 1 -> login();
case 2 -> register();
case 3 ->
{
System.out.println("Goodbye!");
return;
}
default -> System.out.println("Invalid choice");
}
}
}
private void login()
{
System.out.print("Username: ");
String username = scanner.nextLine();
System.out.print("Password: ");
String password = scanner.nextLine();
User user = authService.login(username, password);
if (user != null)
{
loggedInUser = user;
System.out.println("Login successful!");
userMenu();
}
else {System.out.println("Login failed!");}
}
private void register()
{
System.out.print("Username: ");
String username = scanner.nextLine();
System.out.print("Password: ");
String password = scanner.nextLine();
System.out.print("Email: ");
String email = scanner.nextLine();
boolean success = authService.register(username, password, email);
if (success) {System.out.println("Registration successful!");}
else {System.out.println("Registration failed!");}
}
private void userMenu()
{
while (true)
{
System.out.println();
System.out.println("===== MAIN MENU =====");
System.out.println("1. View Menu");
System.out.println("2. Place Order");
System.out.println("3. Order History");
System.out.println("4. Logout");
int choice = scanner.nextInt();
scanner.nextLine();
switch (choice)
{
case 1 -> menuService.showMenu();
case 2 -> orderService.placeOrder(loggedInUser.getId());
case 3 -> orderService.showOrderHistory(loggedInUser.getId());
case 4 ->
{
loggedInUser = null;
return;
}
default -> System.out.println("Invalid choice");
}
}
}
}