Skip to content

Commit 0db337b

Browse files
skumar3006sandeepk-pepcus
authored andcommitted
Added model mapper class.
1 parent aae8f38 commit 0db337b

File tree

4 files changed

+72
-26
lines changed

4 files changed

+72
-26
lines changed

pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@
7070
<artifactId>spring-security-oauth2</artifactId>
7171
<version>2.3.3.RELEASE</version>
7272
</dependency>
73+
<dependency>
74+
<groupId>org.modelmapper</groupId>
75+
<artifactId>modelmapper</artifactId>
76+
<version>2.3.5</version>
77+
</dependency>
7378
</dependencies>
7479

7580
</project>
Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
package sandeep.demo.controller;
22

33
import java.util.List;
4-
import java.util.Optional;
54

65
import org.springframework.beans.factory.annotation.Autowired;
7-
import org.springframework.http.HttpHeaders;
86
import org.springframework.http.HttpStatus;
9-
import org.springframework.http.ResponseEntity;
7+
import org.springframework.web.bind.annotation.DeleteMapping;
108
import org.springframework.web.bind.annotation.GetMapping;
119
import org.springframework.web.bind.annotation.PathVariable;
1210
import org.springframework.web.bind.annotation.PostMapping;
@@ -15,8 +13,8 @@
1513
import org.springframework.web.bind.annotation.RequestMapping;
1614
import org.springframework.web.bind.annotation.RestController;
1715

18-
import sandeep.demo.entity.Owner;
1916
import sandeep.demo.manager.OwnerManager;
17+
import sandeep.demo.model.OwnerBO;
2018

2119
@RestController
2220
@RequestMapping("/owners")
@@ -26,28 +24,34 @@ public class OwnerController {
2624
OwnerManager ownerManager;
2725

2826
@GetMapping
29-
public ResponseEntity<List<Owner>> getAllRecords() {
30-
List<Owner> list = ownerManager.getAllRecords();
31-
32-
return new ResponseEntity<List<Owner>>(list, new HttpHeaders(), HttpStatus.OK);
27+
public List<OwnerBO> getAllRecords() {
28+
List<OwnerBO> list = ownerManager.getAllRecords();
29+
return list;
3330
}
3431

3532
@GetMapping(value = "/{ownerId}")
36-
public Optional<Owner> getById(@PathVariable Integer ownerId) {
37-
Optional<Owner> owner = ownerManager.getById(ownerId);
33+
public OwnerBO getById(@PathVariable Integer ownerId) {
34+
OwnerBO owner = ownerManager.getById(ownerId);
3835
return owner;
3936
}
4037

4138
@PostMapping
42-
public ResponseEntity<Owner> createOrUpdateEmployee(@RequestBody Owner owner) {
43-
Owner response = ownerManager.createOwner(owner);
44-
return new ResponseEntity<Owner>(response, new HttpHeaders(), HttpStatus.OK);
39+
public OwnerBO createOrUpdateEmployee(@RequestBody OwnerBO owner) {
40+
OwnerBO ownerBO = ownerManager.createOwner(owner);
41+
return ownerBO;
4542
}
4643

4744
@PutMapping(value = "{/ownerId}")
48-
public ResponseEntity<Owner> update(Owner owner) {
49-
Owner response = ownerManager.updateOwner(owner);
50-
return new ResponseEntity<Owner>(response, new HttpHeaders(), HttpStatus.OK);
45+
public OwnerBO update(@RequestBody OwnerBO owner) {
46+
OwnerBO ownerBO = ownerManager.updateOwner(owner);
47+
return ownerBO;
48+
}
49+
50+
@DeleteMapping(value = "/{ownerId}")
51+
public HttpStatus deleteById(@PathVariable Integer ownerId) {
52+
ownerManager.deleteById(ownerId);
53+
return HttpStatus.ACCEPTED;
5154
}
5255

56+
5357
}
Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package sandeep.demo.manager;
22

3+
import java.util.ArrayList;
34
import java.util.List;
45
import java.util.Optional;
56

67
import org.springframework.beans.factory.annotation.Autowired;
78
import org.springframework.stereotype.Component;
89

910
import sandeep.demo.entity.Owner;
11+
import sandeep.demo.model.ModelEntityMapper;
12+
import sandeep.demo.model.OwnerBO;
1013
import sandeep.demo.repository.OwnerRepository;
1114

1215
@Component
@@ -15,22 +18,32 @@ public class OwnerManager {
1518
@Autowired
1619
OwnerRepository ownerRepository;
1720

18-
public Owner createOwner(Owner owner) {
19-
ownerRepository.save(owner);
20-
return owner;
21+
public OwnerBO createOwner(OwnerBO ownerBO) {
22+
Owner owner = ModelEntityMapper.convertToEntity(ownerBO);
23+
owner = ownerRepository.save(owner);
24+
return ModelEntityMapper.convertToBO(owner);
2125
}
2226

23-
public List<Owner> getAllRecords() {
24-
return (List<Owner>) ownerRepository.findAll();
27+
public List<OwnerBO> getAllRecords() {
28+
List<Owner> owners = (List<Owner>) ownerRepository.findAll();
29+
List<OwnerBO> list = new ArrayList<>();
30+
owners.forEach(owner -> list.add(ModelEntityMapper.convertToBO(owner)));
31+
return list;
2532
}
2633

27-
public Owner updateOwner(Owner owner) {
28-
ownerRepository.save(owner);
29-
return owner;
34+
public OwnerBO updateOwner(OwnerBO ownerBO) {
35+
Owner owner = ModelEntityMapper.convertToEntity(ownerBO);
36+
owner = ownerRepository.save(owner);
37+
return ModelEntityMapper.convertToBO(owner);
3038
}
3139

32-
public Optional<Owner> getById(Integer ownerId) {
33-
return ownerRepository.findById(ownerId);
40+
public OwnerBO getById(Integer ownerId) {
41+
Optional<Owner> owner = ownerRepository.findById(ownerId);
42+
return ModelEntityMapper.convertToBO(owner.get());
43+
}
44+
45+
public void deleteById(Integer ownerId) {
46+
ownerRepository.deleteById(ownerId);
3447
}
3548

3649
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package sandeep.demo.model;
2+
3+
import org.modelmapper.ModelMapper;
4+
5+
import sandeep.demo.entity.Owner;
6+
7+
public class ModelEntityMapper {
8+
9+
public static OwnerBO convertToBO(Owner owner) {
10+
11+
ModelMapper modelMapper = new ModelMapper();
12+
OwnerBO ownerBO = modelMapper.map(owner, OwnerBO.class);
13+
return ownerBO;
14+
15+
}
16+
17+
public static Owner convertToEntity(OwnerBO ownerBO) {
18+
ModelMapper modelMapper = new ModelMapper();
19+
Owner owner = modelMapper.map(ownerBO, Owner.class);
20+
return owner;
21+
22+
}
23+
24+
}

0 commit comments

Comments
 (0)