wad-lab 1.1.6 → 1.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/templates/fullstack-springboot-vue/backend/src/main/java/com/example/company/controller/CompanyController.java +88 -74
- package/templates/fullstack-springboot-vue/backend/src/main/java/com/example/company/model/Employee.java +73 -73
- package/templates/fullstack-springboot-vue/backend/src/main/java/com/example/company/service/CompanyService.java +90 -60
- package/templates/fullstack-springboot-vue/frontend/vue-axios-basic/src/App.vue +429 -405
- package/templates/fullstack-springboot-vue/frontend/vue-axios-interceptor/src/App.vue +177 -159
- package/templates/fullstack-springboot-vue/frontend/vue-axios-pinia/src/App.vue +441 -427
- package/templates/fullstack-springboot-vue/frontend/vue-axios-pinia/src/stores/companyStore.js +126 -96
- package/templates/fullstack-springboot-vue/frontend/vue-axios-pinia-props/src/App.vue +84 -69
- package/templates/fullstack-springboot-vue/frontend/vue-axios-pinia-props/src/components/DepartmentSection.vue +164 -152
- package/templates/fullstack-springboot-vue/frontend/vue-axios-pinia-props/src/components/EmployeeSection.vue +193 -181
- package/templates/fullstack-springboot-vue/frontend/vue-axios-pinia-props/src/stores/companyStore.js +126 -35
- package/templates/fullstack-springboot-vue/frontend/vue-axios-props-emits/src/App.vue +191 -167
- package/templates/fullstack-springboot-vue/frontend/vue-axios-props-emits/src/components/DepartmentForm.vue +98 -98
- package/templates/fullstack-springboot-vue/frontend/vue-axios-props-emits/src/components/DepartmentList.vue +92 -91
- package/templates/fullstack-springboot-vue/frontend/vue-axios-props-emits/src/components/EmployeeForm.vue +128 -128
- package/templates/fullstack-springboot-vue/frontend/vue-axios-props-emits/src/components/EmployeeList.vue +95 -94
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router/src/App.vue +90 -90
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router/src/views/AddEmployeeView.vue +247 -247
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router/src/views/DepartmentView.vue +296 -273
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router/src/views/EmployeeView.vue +219 -196
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router/src/views/HomeDashboardView.vue +263 -263
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router-children/src/views/DepartmentListView.vue +250 -231
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router-children/src/views/EmployeeDetailView.vue +181 -159
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router-children/src/views/EmployeeListView.vue +315 -295
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router-pinia/src/stores/companyStore.js +137 -70
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router-pinia/src/views/DepartmentView.vue +229 -209
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router-pinia/src/views/EmployeeView.vue +257 -237
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router-pinia-props/src/components/EntityTable.vue +106 -92
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router-pinia-props/src/stores/companyStore.js +139 -84
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router-pinia-props/src/views/ManageDepartmentsView.vue +73 -64
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router-pinia-props/src/views/ManageEmployeesView.vue +76 -67
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router-props/src/App.vue +59 -59
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router-props/src/components/DataCard.vue +72 -53
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router-props/src/views/DepartmentPage.vue +89 -77
- package/templates/fullstack-springboot-vue/frontend/vue-axios-router-props/src/views/EmployeePage.vue +128 -116
- package/templates/springboot-2model-1controller-api/src/main/java/com/example/company/controller/CompanyController.java +88 -74
- package/templates/springboot-2model-1controller-api/src/main/java/com/example/company/model/Employee.java +73 -73
- package/templates/springboot-2model-1controller-api/src/main/java/com/example/company/service/CompanyService.java +90 -60
- package/templates/springboot-course-registration/src/main/java/com/example/coursereg/controller/CourseController.java +46 -42
- package/templates/springboot-course-registration/src/main/java/com/example/coursereg/service/CourseService.java +70 -60
- package/templates/springboot-hospital-api/src/main/java/com/example/hospital/controller/HospitalController.java +54 -50
- package/templates/springboot-hospital-api/src/main/java/com/example/hospital/service/HospitalService.java +65 -54
- package/templates/springboot-library-api/src/main/java/com/example/library/controller/LibraryController.java +57 -51
- package/templates/springboot-library-api/src/main/java/com/example/library/service/LibraryService.java +70 -60
- package/templates/springboot-mockmvc/src/main/java/com/example/mockmvc/controller/ItemController.java +45 -41
- package/templates/springboot-mockmvc/src/main/java/com/example/mockmvc/service/ItemService.java +48 -38
- package/templates/springboot-mongo-aggregation/src/main/java/com/example/aggregation/controller/ItemController.java +45 -41
- package/templates/springboot-mongo-aggregation/src/main/java/com/example/aggregation/service/ItemService.java +48 -38
- package/templates/springboot-mongo-aggregation-mockmvc/src/main/java/com/example/aggmockmvc/controller/ItemController.java +45 -41
- package/templates/springboot-mongo-aggregation-mockmvc/src/main/java/com/example/aggmockmvc/service/ItemService.java +48 -38
- package/templates/springboot-mongo-crud/src/main/java/com/example/crud/controller/ItemController.java +45 -41
- package/templates/springboot-mongo-crud/src/main/java/com/example/crud/service/ItemService.java +48 -38
- package/templates/vue-axios/src/App.vue +264 -243
- package/templates/vue-axios/src/services/ItemService.js +27 -21
- package/templates/vue-axios-basic/src/App.vue +24 -0
- package/templates/vue-axios-interceptor/src/App.vue +177 -159
- package/templates/vue-axios-pinia/src/App.vue +14 -0
- package/templates/vue-axios-pinia/src/stores/companyStore.js +126 -96
- package/templates/vue-axios-pinia-props/src/App.vue +84 -69
- package/templates/vue-axios-pinia-props/src/components/DepartmentSection.vue +164 -152
- package/templates/vue-axios-pinia-props/src/components/EmployeeSection.vue +193 -181
- package/templates/vue-axios-pinia-props/src/stores/companyStore.js +126 -35
- package/templates/vue-axios-props-emits/src/App.vue +24 -0
- package/templates/vue-axios-props-emits/src/components/DepartmentList.vue +2 -1
- package/templates/vue-axios-props-emits/src/components/EmployeeList.vue +2 -1
- package/templates/vue-axios-router/src/views/DepartmentView.vue +23 -0
- package/templates/vue-axios-router/src/views/EmployeeView.vue +23 -0
- package/templates/vue-axios-router-children/src/views/DepartmentListView.vue +250 -231
- package/templates/vue-axios-router-children/src/views/EmployeeDetailView.vue +181 -159
- package/templates/vue-axios-router-children/src/views/EmployeeListView.vue +315 -295
- package/templates/vue-axios-router-pinia/src/stores/companyStore.js +137 -70
- package/templates/vue-axios-router-pinia/src/views/DepartmentView.vue +229 -209
- package/templates/vue-axios-router-pinia/src/views/EmployeeView.vue +257 -237
- package/templates/vue-axios-router-pinia-props/src/components/EntityTable.vue +106 -92
- package/templates/vue-axios-router-pinia-props/src/stores/companyStore.js +139 -84
- package/templates/vue-axios-router-pinia-props/src/views/ManageDepartmentsView.vue +73 -64
- package/templates/vue-axios-router-pinia-props/src/views/ManageEmployeesView.vue +76 -67
- package/templates/vue-axios-router-props/src/components/DataCard.vue +72 -53
- package/templates/vue-axios-router-props/src/views/DepartmentPage.vue +89 -77
- package/templates/vue-axios-router-props/src/views/EmployeePage.vue +128 -116
- package/templates/vue-fetch/src/App.vue +285 -259
- package/templates/vue-router-pinia-springboot/backend/src/main/java/com/example/crud/controller/ItemController.java +45 -41
- package/templates/vue-router-pinia-springboot/backend/src/main/java/com/example/crud/service/ItemService.java +45 -35
- package/templates/vue-router-pinia-springboot/frontend/src/services/ItemService.js +24 -21
- package/templates/vue-router-pinia-springboot/frontend/src/stores/itemStore.js +42 -37
- package/templates/vue-router-pinia-springboot/frontend/src/views/ListView.vue +76 -67
- package/templates/vue-springboot-mongo-aggregation/backend/src/main/java/com/example/aggregation/controller/ItemController.java +45 -41
- package/templates/vue-springboot-mongo-aggregation/backend/src/main/java/com/example/aggregation/service/ItemService.java +45 -35
- package/templates/vue-springboot-mongo-crud/backend/src/main/java/com/example/crud/controller/ItemController.java +45 -41
- package/templates/vue-springboot-mongo-crud/backend/src/main/java/com/example/crud/service/ItemService.java +45 -35
- package/templates/vue-springboot-mongo-crud/frontend/src/App.vue +158 -149
- package/templates/vue-springboot-mongo-crud/frontend/src/services/ItemService.js +24 -21
package/package.json
CHANGED
|
@@ -1,74 +1,88 @@
|
|
|
1
|
-
package com.example.company.controller;
|
|
2
|
-
|
|
3
|
-
import com.example.company.model.Department;
|
|
4
|
-
import com.example.company.model.Employee;
|
|
5
|
-
import com.example.company.service.CompanyService;
|
|
6
|
-
import org.springframework.beans.factory.annotation.Autowired;
|
|
7
|
-
import org.springframework.http.ResponseEntity;
|
|
8
|
-
import org.springframework.web.bind.annotation.*;
|
|
9
|
-
|
|
10
|
-
import java.util.List;
|
|
11
|
-
|
|
12
|
-
@RestController
|
|
13
|
-
@RequestMapping("/api")
|
|
14
|
-
@CrossOrigin(origins = "*")
|
|
15
|
-
public class CompanyController {
|
|
16
|
-
|
|
17
|
-
private final CompanyService companyService;
|
|
18
|
-
|
|
19
|
-
@Autowired
|
|
20
|
-
public CompanyController(CompanyService companyService) {
|
|
21
|
-
this.companyService = companyService;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
@GetMapping("/departments")
|
|
25
|
-
public List<Department> getAllDepartments() {
|
|
26
|
-
return companyService.getAllDepartments();
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
@GetMapping("/departments/{id}")
|
|
30
|
-
public ResponseEntity<Department> getDepartmentById(@PathVariable String id) {
|
|
31
|
-
return companyService.getDepartmentById(id)
|
|
32
|
-
.map(ResponseEntity::ok)
|
|
33
|
-
.orElse(ResponseEntity.notFound().build());
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
@PostMapping("/departments")
|
|
37
|
-
public Department createDepartment(@RequestBody Department department) {
|
|
38
|
-
return companyService.createDepartment(department);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
@
|
|
42
|
-
public ResponseEntity<
|
|
43
|
-
companyService.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
@GetMapping("/employees/
|
|
60
|
-
public
|
|
61
|
-
return companyService.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
1
|
+
package com.example.company.controller;
|
|
2
|
+
|
|
3
|
+
import com.example.company.model.Department;
|
|
4
|
+
import com.example.company.model.Employee;
|
|
5
|
+
import com.example.company.service.CompanyService;
|
|
6
|
+
import org.springframework.beans.factory.annotation.Autowired;
|
|
7
|
+
import org.springframework.http.ResponseEntity;
|
|
8
|
+
import org.springframework.web.bind.annotation.*;
|
|
9
|
+
|
|
10
|
+
import java.util.List;
|
|
11
|
+
|
|
12
|
+
@RestController
|
|
13
|
+
@RequestMapping("/api")
|
|
14
|
+
@CrossOrigin(origins = "*")
|
|
15
|
+
public class CompanyController {
|
|
16
|
+
|
|
17
|
+
private final CompanyService companyService;
|
|
18
|
+
|
|
19
|
+
@Autowired
|
|
20
|
+
public CompanyController(CompanyService companyService) {
|
|
21
|
+
this.companyService = companyService;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@GetMapping("/departments")
|
|
25
|
+
public List<Department> getAllDepartments() {
|
|
26
|
+
return companyService.getAllDepartments();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@GetMapping("/departments/{id}")
|
|
30
|
+
public ResponseEntity<Department> getDepartmentById(@PathVariable String id) {
|
|
31
|
+
return companyService.getDepartmentById(id)
|
|
32
|
+
.map(ResponseEntity::ok)
|
|
33
|
+
.orElse(ResponseEntity.notFound().build());
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@PostMapping("/departments")
|
|
37
|
+
public Department createDepartment(@RequestBody Department department) {
|
|
38
|
+
return companyService.createDepartment(department);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@PatchMapping("/departments/{id}")
|
|
42
|
+
public ResponseEntity<Department> patchDepartment(@PathVariable String id, @RequestBody Department patch) {
|
|
43
|
+
return companyService.patchDepartment(id, patch)
|
|
44
|
+
.map(ResponseEntity::ok)
|
|
45
|
+
.orElse(ResponseEntity.notFound().build());
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@DeleteMapping("/departments/{id}")
|
|
49
|
+
public ResponseEntity<Void> deleteDepartment(@PathVariable String id) {
|
|
50
|
+
companyService.deleteDepartment(id);
|
|
51
|
+
return ResponseEntity.noContent().build();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@GetMapping("/employees")
|
|
55
|
+
public List<Employee> getAllEmployees() {
|
|
56
|
+
return companyService.getAllEmployees();
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@GetMapping("/employees/{id}")
|
|
60
|
+
public ResponseEntity<Employee> getEmployeeById(@PathVariable String id) {
|
|
61
|
+
return companyService.getEmployeeById(id)
|
|
62
|
+
.map(ResponseEntity::ok)
|
|
63
|
+
.orElse(ResponseEntity.notFound().build());
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
@GetMapping("/employees/dept/{deptId}")
|
|
67
|
+
public List<Employee> getEmployeesByDepartment(@PathVariable String deptId) {
|
|
68
|
+
return companyService.getEmployeesByDepartment(deptId);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@PostMapping("/employees")
|
|
72
|
+
public Employee createEmployee(@RequestBody Employee employee) {
|
|
73
|
+
return companyService.createEmployee(employee);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@PatchMapping("/employees/{id}")
|
|
77
|
+
public ResponseEntity<Employee> patchEmployee(@PathVariable String id, @RequestBody Employee patch) {
|
|
78
|
+
return companyService.patchEmployee(id, patch)
|
|
79
|
+
.map(ResponseEntity::ok)
|
|
80
|
+
.orElse(ResponseEntity.notFound().build());
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@DeleteMapping("/employees/{id}")
|
|
84
|
+
public ResponseEntity<Void> deleteEmployee(@PathVariable String id) {
|
|
85
|
+
companyService.deleteEmployee(id);
|
|
86
|
+
return ResponseEntity.noContent().build();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
package com.example.company.model;
|
|
2
|
-
|
|
3
|
-
import org.springframework.data.annotation.Id;
|
|
4
|
-
import org.springframework.data.mongodb.core.mapping.Document;
|
|
5
|
-
|
|
6
|
-
@Document(collection = "employees")
|
|
7
|
-
public class Employee {
|
|
8
|
-
|
|
9
|
-
@Id
|
|
10
|
-
private String id;
|
|
11
|
-
private String name;
|
|
12
|
-
private String email;
|
|
13
|
-
private String departmentId;
|
|
14
|
-
private
|
|
15
|
-
|
|
16
|
-
public Employee() {
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
public Employee(String name, String email, String departmentId,
|
|
20
|
-
this.name = name;
|
|
21
|
-
this.email = email;
|
|
22
|
-
this.departmentId = departmentId;
|
|
23
|
-
this.salary = salary;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
public Employee(String id, String name, String email, String departmentId,
|
|
27
|
-
this.id = id;
|
|
28
|
-
this.name = name;
|
|
29
|
-
this.email = email;
|
|
30
|
-
this.departmentId = departmentId;
|
|
31
|
-
this.salary = salary;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
public String getId() {
|
|
35
|
-
return id;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
public void setId(String id) {
|
|
39
|
-
this.id = id;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
public String getName() {
|
|
43
|
-
return name;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
public void setName(String name) {
|
|
47
|
-
this.name = name;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
public String getEmail() {
|
|
51
|
-
return email;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
public void setEmail(String email) {
|
|
55
|
-
this.email = email;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
public String getDepartmentId() {
|
|
59
|
-
return departmentId;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
public void setDepartmentId(String departmentId) {
|
|
63
|
-
this.departmentId = departmentId;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
public
|
|
67
|
-
return salary;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
public void setSalary(
|
|
71
|
-
this.salary = salary;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
1
|
+
package com.example.company.model;
|
|
2
|
+
|
|
3
|
+
import org.springframework.data.annotation.Id;
|
|
4
|
+
import org.springframework.data.mongodb.core.mapping.Document;
|
|
5
|
+
|
|
6
|
+
@Document(collection = "employees")
|
|
7
|
+
public class Employee {
|
|
8
|
+
|
|
9
|
+
@Id
|
|
10
|
+
private String id;
|
|
11
|
+
private String name;
|
|
12
|
+
private String email;
|
|
13
|
+
private String departmentId;
|
|
14
|
+
private Double salary;
|
|
15
|
+
|
|
16
|
+
public Employee() {
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public Employee(String name, String email, String departmentId, Double salary) {
|
|
20
|
+
this.name = name;
|
|
21
|
+
this.email = email;
|
|
22
|
+
this.departmentId = departmentId;
|
|
23
|
+
this.salary = salary;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
public Employee(String id, String name, String email, String departmentId, Double salary) {
|
|
27
|
+
this.id = id;
|
|
28
|
+
this.name = name;
|
|
29
|
+
this.email = email;
|
|
30
|
+
this.departmentId = departmentId;
|
|
31
|
+
this.salary = salary;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public String getId() {
|
|
35
|
+
return id;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
public void setId(String id) {
|
|
39
|
+
this.id = id;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
public String getName() {
|
|
43
|
+
return name;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public void setName(String name) {
|
|
47
|
+
this.name = name;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public String getEmail() {
|
|
51
|
+
return email;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
public void setEmail(String email) {
|
|
55
|
+
this.email = email;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
public String getDepartmentId() {
|
|
59
|
+
return departmentId;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
public void setDepartmentId(String departmentId) {
|
|
63
|
+
this.departmentId = departmentId;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
public Double getSalary() {
|
|
67
|
+
return salary;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
public void setSalary(Double salary) {
|
|
71
|
+
this.salary = salary;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -1,60 +1,90 @@
|
|
|
1
|
-
package com.example.company.service;
|
|
2
|
-
|
|
3
|
-
import com.example.company.model.Department;
|
|
4
|
-
import com.example.company.model.Employee;
|
|
5
|
-
import com.example.company.repository.DepartmentRepository;
|
|
6
|
-
import com.example.company.repository.EmployeeRepository;
|
|
7
|
-
import org.springframework.beans.factory.annotation.Autowired;
|
|
8
|
-
import org.springframework.stereotype.Service;
|
|
9
|
-
|
|
10
|
-
import java.util.List;
|
|
11
|
-
import java.util.Optional;
|
|
12
|
-
|
|
13
|
-
@Service
|
|
14
|
-
public class CompanyService {
|
|
15
|
-
|
|
16
|
-
private final DepartmentRepository departmentRepository;
|
|
17
|
-
private final EmployeeRepository employeeRepository;
|
|
18
|
-
|
|
19
|
-
@Autowired
|
|
20
|
-
public CompanyService(DepartmentRepository departmentRepository, EmployeeRepository employeeRepository) {
|
|
21
|
-
this.departmentRepository = departmentRepository;
|
|
22
|
-
this.employeeRepository = employeeRepository;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
public List<Department> getAllDepartments() {
|
|
26
|
-
return departmentRepository.findAll();
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
public Optional<Department> getDepartmentById(String id) {
|
|
30
|
-
return departmentRepository.findById(id);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
public Department createDepartment(Department department) {
|
|
34
|
-
return departmentRepository.save(department);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
public
|
|
38
|
-
departmentRepository.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
public
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
public Employee
|
|
54
|
-
return employeeRepository.
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
public
|
|
58
|
-
employeeRepository.
|
|
59
|
-
}
|
|
60
|
-
|
|
1
|
+
package com.example.company.service;
|
|
2
|
+
|
|
3
|
+
import com.example.company.model.Department;
|
|
4
|
+
import com.example.company.model.Employee;
|
|
5
|
+
import com.example.company.repository.DepartmentRepository;
|
|
6
|
+
import com.example.company.repository.EmployeeRepository;
|
|
7
|
+
import org.springframework.beans.factory.annotation.Autowired;
|
|
8
|
+
import org.springframework.stereotype.Service;
|
|
9
|
+
|
|
10
|
+
import java.util.List;
|
|
11
|
+
import java.util.Optional;
|
|
12
|
+
|
|
13
|
+
@Service
|
|
14
|
+
public class CompanyService {
|
|
15
|
+
|
|
16
|
+
private final DepartmentRepository departmentRepository;
|
|
17
|
+
private final EmployeeRepository employeeRepository;
|
|
18
|
+
|
|
19
|
+
@Autowired
|
|
20
|
+
public CompanyService(DepartmentRepository departmentRepository, EmployeeRepository employeeRepository) {
|
|
21
|
+
this.departmentRepository = departmentRepository;
|
|
22
|
+
this.employeeRepository = employeeRepository;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public List<Department> getAllDepartments() {
|
|
26
|
+
return departmentRepository.findAll();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public Optional<Department> getDepartmentById(String id) {
|
|
30
|
+
return departmentRepository.findById(id);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public Department createDepartment(Department department) {
|
|
34
|
+
return departmentRepository.save(department);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public Optional<Department> patchDepartment(String id, Department patch) {
|
|
38
|
+
return departmentRepository.findById(id).map(existing -> {
|
|
39
|
+
if (patch.getName() != null) {
|
|
40
|
+
existing.setName(patch.getName());
|
|
41
|
+
}
|
|
42
|
+
if (patch.getCode() != null) {
|
|
43
|
+
existing.setCode(patch.getCode());
|
|
44
|
+
}
|
|
45
|
+
return departmentRepository.save(existing);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public void deleteDepartment(String id) {
|
|
50
|
+
departmentRepository.deleteById(id);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
public List<Employee> getAllEmployees() {
|
|
54
|
+
return employeeRepository.findAll();
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
public Optional<Employee> getEmployeeById(String id) {
|
|
58
|
+
return employeeRepository.findById(id);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
public List<Employee> getEmployeesByDepartment(String departmentId) {
|
|
62
|
+
return employeeRepository.findByDepartmentId(departmentId);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
public Employee createEmployee(Employee employee) {
|
|
66
|
+
return employeeRepository.save(employee);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
public Optional<Employee> patchEmployee(String id, Employee patch) {
|
|
70
|
+
return employeeRepository.findById(id).map(existing -> {
|
|
71
|
+
if (patch.getName() != null) {
|
|
72
|
+
existing.setName(patch.getName());
|
|
73
|
+
}
|
|
74
|
+
if (patch.getEmail() != null) {
|
|
75
|
+
existing.setEmail(patch.getEmail());
|
|
76
|
+
}
|
|
77
|
+
if (patch.getDepartmentId() != null) {
|
|
78
|
+
existing.setDepartmentId(patch.getDepartmentId());
|
|
79
|
+
}
|
|
80
|
+
if (patch.getSalary() != null) {
|
|
81
|
+
existing.setSalary(patch.getSalary());
|
|
82
|
+
}
|
|
83
|
+
return employeeRepository.save(existing);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
public void deleteEmployee(String id) {
|
|
88
|
+
employeeRepository.deleteById(id);
|
|
89
|
+
}
|
|
90
|
+
}
|