-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathconsole.ts
57 lines (53 loc) · 1.7 KB
/
console.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import readLineSync from "readline-sync";
import { ModelConsoleController } from "./controllers/modelControllers/ModelConsoleController";
import { ModelRepository } from "./dataProviders/model/modelRepository";
const modelRepository = new ModelRepository();
const modelConsoleController = new ModelConsoleController(modelRepository);
export const startConsole = async () => {
let userResponse;
// Mockup
await modelConsoleController.createModel("Megane", "Renault");
await modelConsoleController.createModel("Mustang", "Ford");
// ------
while (userResponse !== "Q") {
console.log("\x1b[0m", "Main Menu");
console.log("M - Model");
console.log("Q - Quit the application");
userResponse = readLineSync.question("Command => ");
switch (userResponse) {
case "M":
await model();
break;
case "Q":
console.log("Exiting ...");
break;
default:
console.error("\x1b[31m", "Unknown command.");
}
}
};
const model = async () => {
let modelUserResponse;
while (modelUserResponse !== "Q") {
console.log("\x1b[0m", "MODEL");
console.log("C - Create");
console.log("A - Get All");
console.log("B - Back to main menu.");
modelUserResponse = readLineSync.question("Model command => ");
switch (modelUserResponse) {
case "C":
const name = readLineSync.question("Name ? ");
const brand = readLineSync.question("Brand ? ");
await modelConsoleController.createModel(name, brand);
break;
case "A":
await modelConsoleController.getAll();
break;
case "B":
return;
default:
console.error("\x1b[31m", "Unknown command.");
}
}
};
startConsole();