Skip to content

Commit 2cbbfdb

Browse files
committed
review auth
1 parent cb2b0bb commit 2cbbfdb

File tree

7 files changed

+92
-46
lines changed

7 files changed

+92
-46
lines changed

src/main/java/com/skia/lab/Components/ApplicationStartupListener.java

+1
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,6 @@ public ApplicationStartupListener(MockDataGenerator mockDataGenerator) {
1515
@Override
1616
public void onApplicationEvent(ApplicationReadyEvent event) {
1717
mockDataGenerator.generateMockData();
18+
mockDataGenerator.GenerateMockRoles();
1819
}
1920
}

src/main/java/com/skia/lab/Components/MockDataGenerator.java

+49-26
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@
66
import org.springframework.stereotype.Component;
77

88
import com.github.javafaker.Faker;
9+
import com.skia.lab.models.ERole;
10+
import com.skia.lab.models.Role;
11+
import com.skia.lab.models.User;
912
import com.skia.lab.models.usecase.AbsenceType;
1013
import com.skia.lab.models.usecase.Attendance;
1114
import com.skia.lab.models.usecase.Department;
1215
import com.skia.lab.models.usecase.Employee;
1316
import com.skia.lab.models.usecase.Hire;
17+
import com.skia.lab.repository.RoleRepository;
18+
import com.skia.lab.repository.UserRepository;
1419
import com.skia.lab.repository.usecase.AttendanceRepository;
1520
import com.skia.lab.repository.usecase.DepartmentRepository;
1621
import com.skia.lab.repository.usecase.EmployeeRepository;
@@ -21,6 +26,9 @@
2126

2227
@Component
2328
public class MockDataGenerator {
29+
30+
private final UserRepository userRepository;
31+
private final RoleRepository roleRepository;
2432
private final EmployeeRepository employeeRepository;
2533
private final DepartmentRepository departmentRepository;
2634
private final HireRepository hireRepository;
@@ -36,7 +44,9 @@ public MockDataGenerator(EmployeeRepository employeeRepository,
3644
AttendanceRepository attendanceRepository,
3745
PerformanceEvaluationRepository performanceEvaluationRepository,
3846
TrainingRepository trainingRepository,
39-
WageRepository wageRepository
47+
WageRepository wageRepository,
48+
UserRepository userRepository,
49+
RoleRepository roleRepository
4050
) {
4151
this.employeeRepository = employeeRepository;
4252
this.departmentRepository = departmentRepository;
@@ -45,14 +55,16 @@ public MockDataGenerator(EmployeeRepository employeeRepository,
4555
this.performanceEvaluationRepository = performanceEvaluationRepository;
4656
this.trainingRepository = trainingRepository;
4757
this.wageRepository = wageRepository;
58+
this.userRepository = userRepository;
59+
this.roleRepository = roleRepository;
4860
this.faker = new Faker();
4961
}
5062

63+
64+
5165
public void generateMockData() {
5266

5367
long eIdx = 0;
54-
55-
if(departmentRepository.count() != 0) departmentRepository.deleteAll();
5668
if(departmentRepository.count() == 0){
5769
for (int i = 0; i < 5; i++) {
5870
var d = new Department(faker.animal().name());
@@ -62,12 +74,8 @@ public void generateMockData() {
6274
}
6375

6476

65-
if(employeeRepository.count() != 0) employeeRepository.deleteAll();
66-
6777
Employee[] employees = new Employee[40];
6878
if(employeeRepository.count() == 0){
69-
70-
7179
for (int i = 0; i < 40; i++) {
7280
employees[i] = new Employee();
7381
employees[i].setFirstName(faker.name().firstName());
@@ -82,51 +90,66 @@ public void generateMockData() {
8290
if(i>30 && i<40) a = 3;
8391
if(departmentRepository.existsById(a))
8492
employees[i].setDepartment(departmentRepository.findById(a).get());
85-
86-
if(i>10) employees[i].setManager(employees[10]);
87-
if(i<10 && i >0) employees[i].setManager(employees[0]);
88-
89-
// employee.setDepartment(i<10 ? department1 : department2);
93+
// if(i>10) employees[i].setManager(employees[0]);
94+
// if(i<10 && i >0) employees[i].setManager(employees[1]);
9095
employeeRepository.save(employees[i]);
9196
if(i == 0) eIdx = employees[i].getId();
9297
}
9398
}
94-
if(hireRepository.count() != 0) hireRepository.deleteAll();
9599
if(hireRepository.count() == 0){
96-
97100
var e0 =employeeRepository.findById((long)eIdx);
98101
Hire hire0 = new Hire(LocalDate.now(), faker.name().title(), 50000, "commercio", e0.get());
99102
hireRepository.save(hire0);
100103
for (int i = 1; i < 20; i++) {
101104
var e =employeeRepository.findById((long)employees[i].getId());
102105
Hire hire = new Hire(LocalDate.now(), "Sales", 30000, "commercio", e.get());
103-
104106
hireRepository.save(hire);
105107
}
106-
107108
}
108-
109-
if(attendanceRepository.count() != 0) attendanceRepository.deleteAll();
110-
if(attendanceRepository.count() == 0){
111-
109+
if(attendanceRepository.count() == 0){
112110
var e0 =employeeRepository.findById((long)eIdx);
113111
Attendance att0 = new Attendance(LocalDate.of(2023,2,1), LocalTime.of(8,0,0),LocalTime.of(18,0,0), null, e0.get());
114112
attendanceRepository.save(att0);
115-
116-
for (int i = 1; i < 28; i++){
117-
113+
for (int i = 1; i < 28; i++){
118114
Attendance attX = new Attendance(LocalDate.of(2023,1,i), LocalTime.of(8,0,0),LocalTime.of(18,0,0), null , e0.get());
119115
attX.setAbsenceType(AbsenceType.sickness.ordinal());
120116
attendanceRepository.save(attX);
121117
}
122-
123118
for (int j = 1; j < employeeRepository.count(); j++) {
124119
var e =employeeRepository.findById((long)employees[j].getId());
125120

126-
for (int i = 1; i < 28; i++) { for (int k = 1; k < 12; k++) attendanceRepository.save( new Attendance(LocalDate.of(2023,k,i), LocalTime.of(8,0,0),LocalTime.of(18,0,0), null, e.get())); }
127-
121+
for (int i = 1; i < 28; i++) { for (int k = 1; k < 12; k++) attendanceRepository.save( new Attendance(LocalDate.of(2023,k,i), LocalTime.of(8,0,0),LocalTime.of(18,0,0), null, e.get())); }
128122
}
129123
}
124+
}
125+
126+
public void DeleteAllDatabase(){
127+
if(attendanceRepository.count() != 0) attendanceRepository.deleteAll();
128+
if(hireRepository.count() != 0) hireRepository.deleteAll();
129+
if(employeeRepository.count() != 0) employeeRepository.deleteAll();
130+
if(departmentRepository.count() != 0) departmentRepository.deleteAll();
131+
}
132+
133+
public void GenerateMockRoles(){
134+
135+
if(roleRepository.count() == 0){
136+
for (int i = 0; i < ERole.values().length; i++) {
130137

138+
var r = new Role(ERole.getRole(i));
139+
140+
roleRepository.save(r);
141+
}
142+
}
143+
//password ned to be crypted
144+
// if(userRepository.count() == 0){
145+
// for (int i = 0; i < ERole.values().length; i++) {
146+
147+
// var u = new User("Skia_"+ERole.getRole(i).toString(),
148+
// "Skia_"+ERole.getRole(i).toString()+"@skialab.it","password");
149+
150+
// userRepository.save(u);
151+
// }
152+
// }
131153
}
154+
132155
}

src/main/java/com/skia/lab/controllers/AuthController.java

+12
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,15 @@ public ResponseEntity<?> registerUser(@Valid @RequestBody SignupRequest signUpRe
123123
roles.add(modRole);
124124

125125
break;
126+
case "god":
127+
Role godRole = roleRepository.findByName(ERole.ROLE_GOD)
128+
.orElseThrow(() -> new RuntimeException("Error: Role is not found."));
129+
roles.add(godRole);
130+
case "viewer":
131+
Role vRole = roleRepository.findByName(ERole.ROLE_VIEWER)
132+
.orElseThrow(() -> new RuntimeException("Error: Role is not found."));
133+
roles.add(vRole);
134+
break;
126135
default:
127136
Role userRole = roleRepository.findByName(ERole.ROLE_USER)
128137
.orElseThrow(() -> new RuntimeException("Error: Role is not found."));
@@ -136,4 +145,7 @@ public ResponseEntity<?> registerUser(@Valid @RequestBody SignupRequest signUpRe
136145

137146
return ResponseEntity.ok(new MessageResponse("User registered successfully!"));
138147
}
148+
149+
150+
139151
}

src/main/java/com/skia/lab/controllers/usecase/EmployeeController.java

+7-8
Original file line numberDiff line numberDiff line change
@@ -49,25 +49,24 @@ public ResponseEntity<Employee> getEmployeeById(@PathVariable Long id) {
4949
}
5050
}
5151

52-
@GetMapping("/")
53-
public ResponseEntity<List<Employee>> getAllEmployees(@RequestParam(required = false) Long departmentId,
54-
@RequestParam(required = false) Long managerId) {
52+
@GetMapping("/all/")
53+
public ResponseEntity<List<Employee>> getAllEmployees(@RequestParam(required = false) Long departmentId/*, @RequestParam(required = false) Long managerId*/) {
5554

5655
try {
5756
List<Employee> employee = new ArrayList<Employee>();
5857

59-
if (departmentId != null && managerId == null)
58+
if (departmentId != null /* && managerId == null*/)
6059
employeeRepository.findByDepartmentId(departmentId).forEach(employee::add);
61-
else if (departmentId == null && managerId != null)
62-
employeeRepository.findByManagerId(managerId).forEach(employee::add);
60+
// else if (departmentId == null && managerId != null)
61+
// employeeRepository.findByManagerId(managerId).forEach(employee::add);
6362
else
6463
employeeRepository.findAll().forEach(employee::add);
6564

6665
if (employee.isEmpty()) {
6766
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
6867
}
69-
70-
return new ResponseEntity<>(employee, HttpStatus.OK);
68+
ResponseEntity<List<Employee>> res = new ResponseEntity<>(employee, HttpStatus.OK);
69+
return res;
7170
} catch (Exception e) {
7271
return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
7372
}

src/main/java/com/skia/lab/models/ERole.java

+12-1
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,16 @@ public enum ERole {
55
ROLE_USER,
66
ROLE_MODERATOR,
77
ROLE_ADMIN,
8-
ROLE_GOD
8+
ROLE_GOD;
9+
10+
11+
private static ERole[] list = ERole.values();
12+
13+
public static ERole getRole(int i) {
14+
return list[i];
15+
}
16+
17+
public static int listGetLastIndex() {
18+
return list.length - 1;
19+
}
920
}

src/main/java/com/skia/lab/models/usecase/Employee.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ public class Employee {
2323
@JoinColumn(name = "department_id")
2424
private Department department;
2525

26-
@ManyToOne(fetch = FetchType.LAZY)
27-
@JoinColumn(name = "manager_id")
28-
private Employee manager;
26+
// @ManyToOne(fetch = FetchType.LAZY)
27+
// @JoinColumn(name = "manager_id")
28+
// private Employee manager;
2929

3030
public Employee(String firstName, String lastName, LocalDate dateOfBirth, String email) {
3131
this.firstName = firstName;
@@ -114,11 +114,11 @@ public void setDepartment(Department department) {
114114
this.department = department;
115115
}
116116

117-
public Employee getManager() {
118-
return manager;
119-
}
117+
// public Employee getManager() {
118+
// return manager;
119+
// }
120120

121-
public void setManager(Employee manager) {
122-
this.manager = manager;
123-
}
121+
// public void setManager(Employee manager) {
122+
// this.manager = manager;
123+
// }
124124
}

src/main/java/com/skia/lab/repository/usecase/EmployeeRepository.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
@Repository //Any persistent layer which is going to communicate with the database
1313
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
1414

15-
@Query("SELECT e FROM Employee e WHERE e.manager.id = :managerId")
16-
List<Employee> findByManagerId(@Param("managerId") Long managerId);
15+
// @Query("SELECT e FROM Employee e WHERE e.manager.id = :managerId")
16+
// List<Employee> findByManagerId(@Param("managerId") Long managerId);
1717

1818
@Query("SELECT e FROM Employee e WHERE e.department.id = :departmentId")
1919
List<Employee> findByDepartmentId(@Param("departmentId") Long departmentId);

0 commit comments

Comments
 (0)