From 5d2dd21da97a3ec0d277e49c3627ed118d8df65f Mon Sep 17 00:00:00 2001 From: mbowe4 Date: Mon, 9 Apr 2018 11:11:02 -0400 Subject: [PATCH 1/3] first commit --- src/main/java/io/zipcoder/controller/AccountController.java | 4 ++++ src/main/java/io/zipcoder/controller/BillController.java | 4 ++++ src/main/java/io/zipcoder/controller/CustomerController.java | 4 ++++ src/main/java/io/zipcoder/controller/DepositController.java | 4 ++++ .../java/io/zipcoder/controller/WithdrawalsController.java | 4 ++++ src/main/java/io/zipcoder/domain/Account.java | 4 ++++ src/main/java/io/zipcoder/domain/Address.java | 4 ++++ src/main/java/io/zipcoder/domain/Bill.java | 4 ++++ src/main/java/io/zipcoder/domain/Customer.java | 4 ++++ src/main/java/io/zipcoder/domain/Deposit.java | 4 ++++ src/main/java/io/zipcoder/domain/Withdrawals.java | 4 ++++ src/main/java/io/zipcoder/repositories/AccountRepository.java | 4 ++++ src/main/java/io/zipcoder/repositories/BillRepository.java | 4 ++++ .../java/io/zipcoder/repositories/CustomerRepository.java | 4 ++++ src/main/java/io/zipcoder/repositories/DepositRepository.java | 4 ++++ .../java/io/zipcoder/repositories/WithdrawalRepository.java | 4 ++++ 16 files changed, 64 insertions(+) create mode 100644 src/main/java/io/zipcoder/controller/AccountController.java create mode 100644 src/main/java/io/zipcoder/controller/BillController.java create mode 100644 src/main/java/io/zipcoder/controller/CustomerController.java create mode 100644 src/main/java/io/zipcoder/controller/DepositController.java create mode 100644 src/main/java/io/zipcoder/controller/WithdrawalsController.java create mode 100644 src/main/java/io/zipcoder/domain/Account.java create mode 100644 src/main/java/io/zipcoder/domain/Address.java create mode 100644 src/main/java/io/zipcoder/domain/Bill.java create mode 100644 src/main/java/io/zipcoder/domain/Customer.java create mode 100644 src/main/java/io/zipcoder/domain/Deposit.java create mode 100644 src/main/java/io/zipcoder/domain/Withdrawals.java create mode 100644 src/main/java/io/zipcoder/repositories/AccountRepository.java create mode 100644 src/main/java/io/zipcoder/repositories/BillRepository.java create mode 100644 src/main/java/io/zipcoder/repositories/CustomerRepository.java create mode 100644 src/main/java/io/zipcoder/repositories/DepositRepository.java create mode 100644 src/main/java/io/zipcoder/repositories/WithdrawalRepository.java diff --git a/src/main/java/io/zipcoder/controller/AccountController.java b/src/main/java/io/zipcoder/controller/AccountController.java new file mode 100644 index 0000000..d59d41c --- /dev/null +++ b/src/main/java/io/zipcoder/controller/AccountController.java @@ -0,0 +1,4 @@ +package io.zipcoder.controller; + +public class AccountController { +} diff --git a/src/main/java/io/zipcoder/controller/BillController.java b/src/main/java/io/zipcoder/controller/BillController.java new file mode 100644 index 0000000..effd7f7 --- /dev/null +++ b/src/main/java/io/zipcoder/controller/BillController.java @@ -0,0 +1,4 @@ +package io.zipcoder.controller; + +public class BillController { +} diff --git a/src/main/java/io/zipcoder/controller/CustomerController.java b/src/main/java/io/zipcoder/controller/CustomerController.java new file mode 100644 index 0000000..896d8b1 --- /dev/null +++ b/src/main/java/io/zipcoder/controller/CustomerController.java @@ -0,0 +1,4 @@ +package io.zipcoder.controller; + +public class CustomerController { +} diff --git a/src/main/java/io/zipcoder/controller/DepositController.java b/src/main/java/io/zipcoder/controller/DepositController.java new file mode 100644 index 0000000..e540d6e --- /dev/null +++ b/src/main/java/io/zipcoder/controller/DepositController.java @@ -0,0 +1,4 @@ +package io.zipcoder.controller; + +public class DepositController { +} diff --git a/src/main/java/io/zipcoder/controller/WithdrawalsController.java b/src/main/java/io/zipcoder/controller/WithdrawalsController.java new file mode 100644 index 0000000..b9816d0 --- /dev/null +++ b/src/main/java/io/zipcoder/controller/WithdrawalsController.java @@ -0,0 +1,4 @@ +package io.zipcoder.controller; + +public class WithdrawalsController { +} diff --git a/src/main/java/io/zipcoder/domain/Account.java b/src/main/java/io/zipcoder/domain/Account.java new file mode 100644 index 0000000..7ccfbf0 --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Account.java @@ -0,0 +1,4 @@ +package io.zipcoder.domain; + +public class Account { +} diff --git a/src/main/java/io/zipcoder/domain/Address.java b/src/main/java/io/zipcoder/domain/Address.java new file mode 100644 index 0000000..9227325 --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Address.java @@ -0,0 +1,4 @@ +package io.zipcoder.domain; + +public class Address { +} diff --git a/src/main/java/io/zipcoder/domain/Bill.java b/src/main/java/io/zipcoder/domain/Bill.java new file mode 100644 index 0000000..eab1fcd --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Bill.java @@ -0,0 +1,4 @@ +package io.zipcoder.domain; + +public class Bill { +} diff --git a/src/main/java/io/zipcoder/domain/Customer.java b/src/main/java/io/zipcoder/domain/Customer.java new file mode 100644 index 0000000..21e70d2 --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Customer.java @@ -0,0 +1,4 @@ +package io.zipcoder.domain; + +public class Customer { +} diff --git a/src/main/java/io/zipcoder/domain/Deposit.java b/src/main/java/io/zipcoder/domain/Deposit.java new file mode 100644 index 0000000..11e3235 --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Deposit.java @@ -0,0 +1,4 @@ +package io.zipcoder.domain; + +public class Deposit { +} diff --git a/src/main/java/io/zipcoder/domain/Withdrawals.java b/src/main/java/io/zipcoder/domain/Withdrawals.java new file mode 100644 index 0000000..ad0b8e7 --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Withdrawals.java @@ -0,0 +1,4 @@ +package io.zipcoder.domain; + +public class Withdrawals { +} diff --git a/src/main/java/io/zipcoder/repositories/AccountRepository.java b/src/main/java/io/zipcoder/repositories/AccountRepository.java new file mode 100644 index 0000000..edd0afb --- /dev/null +++ b/src/main/java/io/zipcoder/repositories/AccountRepository.java @@ -0,0 +1,4 @@ +package io.zipcoder.repositories; + +public interface AccountRepository { +} diff --git a/src/main/java/io/zipcoder/repositories/BillRepository.java b/src/main/java/io/zipcoder/repositories/BillRepository.java new file mode 100644 index 0000000..1659c8f --- /dev/null +++ b/src/main/java/io/zipcoder/repositories/BillRepository.java @@ -0,0 +1,4 @@ +package io.zipcoder.repositories; + +public interface BillRepository { +} diff --git a/src/main/java/io/zipcoder/repositories/CustomerRepository.java b/src/main/java/io/zipcoder/repositories/CustomerRepository.java new file mode 100644 index 0000000..4514cad --- /dev/null +++ b/src/main/java/io/zipcoder/repositories/CustomerRepository.java @@ -0,0 +1,4 @@ +package io.zipcoder.repositories; + +public interface CustomerRepository { +} diff --git a/src/main/java/io/zipcoder/repositories/DepositRepository.java b/src/main/java/io/zipcoder/repositories/DepositRepository.java new file mode 100644 index 0000000..9e61280 --- /dev/null +++ b/src/main/java/io/zipcoder/repositories/DepositRepository.java @@ -0,0 +1,4 @@ +package io.zipcoder.repositories; + +public interface DepositRepository { +} diff --git a/src/main/java/io/zipcoder/repositories/WithdrawalRepository.java b/src/main/java/io/zipcoder/repositories/WithdrawalRepository.java new file mode 100644 index 0000000..9a001b2 --- /dev/null +++ b/src/main/java/io/zipcoder/repositories/WithdrawalRepository.java @@ -0,0 +1,4 @@ +package io.zipcoder.repositories; + +public interface WithdrawalRepository { +} From 261c950f5d60a91330af5bd604e98d2fe72b220e Mon Sep 17 00:00:00 2001 From: mbowe4 Date: Thu, 12 Apr 2018 01:25:01 -0400 Subject: [PATCH 2/3] added Customer and Address class functionality --- .../controller/CustomerController.java | 34 +++++++++++ src/main/java/io/zipcoder/domain/Address.java | 12 ++++ .../java/io/zipcoder/domain/Customer.java | 56 +++++++++++++++++++ .../io/zipcoder/repositories/Address.java | 6 ++ .../repositories/CustomerRepository.java | 18 +++++- .../io/zipcoder/service/AccountService.java | 4 ++ .../java/io/zipcoder/service/BillService.java | 4 ++ .../io/zipcoder/service/CustomerService.java | 31 ++++++++++ .../io/zipcoder/service/DepositService.java | 4 ++ .../zipcoder/service/WithdrawalsService.java | 4 ++ 10 files changed, 172 insertions(+), 1 deletion(-) create mode 100644 src/main/java/io/zipcoder/repositories/Address.java create mode 100644 src/main/java/io/zipcoder/service/AccountService.java create mode 100644 src/main/java/io/zipcoder/service/BillService.java create mode 100644 src/main/java/io/zipcoder/service/CustomerService.java create mode 100644 src/main/java/io/zipcoder/service/DepositService.java create mode 100644 src/main/java/io/zipcoder/service/WithdrawalsService.java diff --git a/src/main/java/io/zipcoder/controller/CustomerController.java b/src/main/java/io/zipcoder/controller/CustomerController.java index 896d8b1..2cada28 100644 --- a/src/main/java/io/zipcoder/controller/CustomerController.java +++ b/src/main/java/io/zipcoder/controller/CustomerController.java @@ -1,4 +1,38 @@ package io.zipcoder.controller; +import io.zipcoder.domain.Customer; +import io.zipcoder.service.CustomerService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + + + +@RestController public class CustomerController { + + @Autowired + private CustomerService customerService; + + @RequestMapping(value="/accounts/{customerId}/customer", method = RequestMethod.GET) + public ResponseEntity lookUpByAccountId(@PathVariable long accountId) { + Customer result = customerService.findByAccountId(accountId); + return new ResponseEntity<>(result, HttpStatus.ACCEPTED); + } + + @RequestMapping(value="/customers", method = RequestMethod.GET) + public ResponseEntity listAllCustomers() { + return new ResponseEntity>(customerService.findAllCustomers(), HttpStatus.OK); + } + + @RequestMapping(value="/customers/{id}") + public ResponseEntity lookUpById(@PathVariable long id) { + return new ResponseEntity<>(customerService.findByCustomerId(id), HttpStatus.OK); + } + + } diff --git a/src/main/java/io/zipcoder/domain/Address.java b/src/main/java/io/zipcoder/domain/Address.java index 9227325..8f27029 100644 --- a/src/main/java/io/zipcoder/domain/Address.java +++ b/src/main/java/io/zipcoder/domain/Address.java @@ -1,4 +1,16 @@ package io.zipcoder.domain; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + public class Address { + + @Id + @GeneratedValue + private Long id; + private String streetNumber; + private String streetName; + private String city; + private String state; + private String zip; } diff --git a/src/main/java/io/zipcoder/domain/Customer.java b/src/main/java/io/zipcoder/domain/Customer.java index 21e70d2..84442fb 100644 --- a/src/main/java/io/zipcoder/domain/Customer.java +++ b/src/main/java/io/zipcoder/domain/Customer.java @@ -1,4 +1,60 @@ package io.zipcoder.domain; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import java.util.Collections; +import java.util.Iterator; +import java.util.Set; +import java.util.TreeSet; + public class Customer { + @Id + @GeneratedValue + private long id; + private String firstName; + private String lastName; + @OneToMany + private Set
addresses = new TreeSet<>(); + + + + public Customer(long id, String firstName, String lastName) { + this.id = id; + this.firstName = firstName; + this.lastName = lastName; + + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public void addAddresst(Address address) { + addresses.add(address); + } + + public Iterable
getAddresses() { + return Collections.unmodifiableSet(addresses); + } } diff --git a/src/main/java/io/zipcoder/repositories/Address.java b/src/main/java/io/zipcoder/repositories/Address.java new file mode 100644 index 0000000..9d614e4 --- /dev/null +++ b/src/main/java/io/zipcoder/repositories/Address.java @@ -0,0 +1,6 @@ +package io.zipcoder.repositories; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface Address extends JpaRepository { +} diff --git a/src/main/java/io/zipcoder/repositories/CustomerRepository.java b/src/main/java/io/zipcoder/repositories/CustomerRepository.java index 4514cad..f853b2a 100644 --- a/src/main/java/io/zipcoder/repositories/CustomerRepository.java +++ b/src/main/java/io/zipcoder/repositories/CustomerRepository.java @@ -1,4 +1,20 @@ package io.zipcoder.repositories; -public interface CustomerRepository { +import io.zipcoder.domain.Address; +import io.zipcoder.domain.Customer; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import java.util.List; + + +public interface CustomerRepository extends JpaRepository { + + Customer findCustomerByAccountId(long id); + + List findAll(); + + Customer findCustomerById(long id); + + } diff --git a/src/main/java/io/zipcoder/service/AccountService.java b/src/main/java/io/zipcoder/service/AccountService.java new file mode 100644 index 0000000..3cfd0ad --- /dev/null +++ b/src/main/java/io/zipcoder/service/AccountService.java @@ -0,0 +1,4 @@ +package io.zipcoder.service; + +public class AccountService { +} diff --git a/src/main/java/io/zipcoder/service/BillService.java b/src/main/java/io/zipcoder/service/BillService.java new file mode 100644 index 0000000..60fceac --- /dev/null +++ b/src/main/java/io/zipcoder/service/BillService.java @@ -0,0 +1,4 @@ +package io.zipcoder.service; + +public class BillService { +} diff --git a/src/main/java/io/zipcoder/service/CustomerService.java b/src/main/java/io/zipcoder/service/CustomerService.java new file mode 100644 index 0000000..ff88049 --- /dev/null +++ b/src/main/java/io/zipcoder/service/CustomerService.java @@ -0,0 +1,31 @@ +package io.zipcoder.service; + +import io.zipcoder.domain.Customer; +import io.zipcoder.repositories.CustomerRepository; +import org.apache.tomcat.jdbc.pool.DataSource; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.session.SessionProperties; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class CustomerService { + + + @Autowired + private CustomerRepository customerRepository; + + public Customer findByAccountId(long accountId) { + return customerRepository.findCustomerByAccountId(accountId); + } + + public List findAllCustomers() { + return customerRepository.findAll(); + } + + public Customer findByCustomerId(long id) { + return customerRepository.findCustomerById(id); + } +} diff --git a/src/main/java/io/zipcoder/service/DepositService.java b/src/main/java/io/zipcoder/service/DepositService.java new file mode 100644 index 0000000..ff1e09d --- /dev/null +++ b/src/main/java/io/zipcoder/service/DepositService.java @@ -0,0 +1,4 @@ +package io.zipcoder.service; + +public class DepositService { +} diff --git a/src/main/java/io/zipcoder/service/WithdrawalsService.java b/src/main/java/io/zipcoder/service/WithdrawalsService.java new file mode 100644 index 0000000..7795e51 --- /dev/null +++ b/src/main/java/io/zipcoder/service/WithdrawalsService.java @@ -0,0 +1,4 @@ +package io.zipcoder.service; + +public class WithdrawalsService { +} From cd88a7951669be1fafa871cf9ea030f55f69da92 Mon Sep 17 00:00:00 2001 From: mbowe4 Date: Thu, 12 Apr 2018 15:07:43 -0400 Subject: [PATCH 3/3] second commit --- .../java/io/zipcoder/controller/CustomerController.java | 8 ++++++-- .../java/io/zipcoder/repositories/CustomerRepository.java | 1 - 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/zipcoder/controller/CustomerController.java b/src/main/java/io/zipcoder/controller/CustomerController.java index 2cada28..9c51c8d 100644 --- a/src/main/java/io/zipcoder/controller/CustomerController.java +++ b/src/main/java/io/zipcoder/controller/CustomerController.java @@ -10,18 +10,22 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; +import javax.inject.Inject; +// not concerned with logic +// request deferred to the service which takes care of the logic +// receive requests and map them @RestController public class CustomerController { - @Autowired + @Inject private CustomerService customerService; @RequestMapping(value="/accounts/{customerId}/customer", method = RequestMethod.GET) public ResponseEntity lookUpByAccountId(@PathVariable long accountId) { Customer result = customerService.findByAccountId(accountId); - return new ResponseEntity<>(result, HttpStatus.ACCEPTED); + return new ResponseEntity<>(result, HttpStatus.OK); } @RequestMapping(value="/customers", method = RequestMethod.GET) diff --git a/src/main/java/io/zipcoder/repositories/CustomerRepository.java b/src/main/java/io/zipcoder/repositories/CustomerRepository.java index f853b2a..9a5bd61 100644 --- a/src/main/java/io/zipcoder/repositories/CustomerRepository.java +++ b/src/main/java/io/zipcoder/repositories/CustomerRepository.java @@ -16,5 +16,4 @@ public interface CustomerRepository extends JpaRepository { Customer findCustomerById(long id); - }