126 lines
3.2 KiB
Java
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");
|
|
}
|
|
}
|
|
}
|
|
} |