Browse Source

Migrating to DTOs

main
JonesWVU 4 years ago
parent
commit
c3d6c72935
  1. 5
      pom.xml
  2. 11
      src/main/java/com/singlestone/contacts/controller/ContactController.java
  3. 2
      src/main/java/com/singlestone/contacts/model/Contact.java
  4. 6
      src/main/java/com/singlestone/contacts/model/Phone.java
  5. 3
      src/main/resources/application.properties

5
pom.xml

@ -40,6 +40,11 @@
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>2.4.5</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

11
src/main/java/com/singlestone/contacts/controller/ContactController.java

@ -3,8 +3,11 @@ package com.singlestone.contacts.controller;
import com.singlestone.contacts.model.CallListEntry; import com.singlestone.contacts.model.CallListEntry;
import com.singlestone.contacts.model.Contact; import com.singlestone.contacts.model.Contact;
import com.singlestone.contacts.model.Phone; import com.singlestone.contacts.model.Phone;
import com.singlestone.contacts.model.dto.ContactDTO;
import com.singlestone.contacts.repository.ContactRepository; import com.singlestone.contacts.repository.ContactRepository;
import com.singlestone.contacts.repository.PhoneRepository; import com.singlestone.contacts.repository.PhoneRepository;
import com.singlestone.contacts.service.ContactService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
@ -19,15 +22,15 @@ import java.util.Optional;
public class ContactController { public class ContactController {
@Autowired @Autowired
private ContactRepository contactRepository; private ContactService contactService;
@Autowired @Autowired
private PhoneRepository phoneRepository; private PhoneRepository phoneRepository;
//Get All Contacts //Get All Contacts
@GetMapping("/contacts") @GetMapping("/contacts")
public List<Contact> getAllContacts() { public List<ContactDTO> getAllContacts() {
return contactRepository.findAll(); return contactService.getAllContacts();
} }
//Create a new contact //Create a new contact
@ -76,4 +79,4 @@ public class ContactController {
Sort sortByFirst = Sort.by("contact.name.first").ascending(); Sort sortByFirst = Sort.by("contact.name.first").ascending();
return phoneRepository.findByType(Phone.Type.home, sortByLast.and(sortByFirst)); return phoneRepository.findByType(Phone.Type.home, sortByLast.and(sortByFirst));
} }
} }

2
src/main/java/com/singlestone/contacts/model/Contact.java

@ -11,7 +11,7 @@ public class Contact {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id") @Column(name = "id")
private Long id; private long id;
@Embedded @Embedded
private Name name; private Name name;

6
src/main/java/com/singlestone/contacts/model/Phone.java

@ -61,8 +61,8 @@ public class Phone {
} }
public enum Type { public enum Type {
home, HOME,
work, WORK,
mobile MOBILE
} }
} }

3
src/main/resources/application.properties

@ -9,5 +9,6 @@ spring.jpa.show-sql=true
spring.datasource.url=jdbc:h2:mem:contactsdb spring.datasource.url=jdbc:h2:mem:contactsdb
spring.data.jpa.repositories.bootstrap-mode=default spring.data.jpa.repositories.bootstrap-mode=default
spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.format_sql=true
spring.jpa.defer-datasource-initialization=true
logging.level.org.hibernate.type=trace logging.level.org.hibernate.type=trace
server.error.include-message=always server.error.include-message=always

Loading…
Cancel
Save