From 0ba124503213e120448d0e666303dd289449f886 Mon Sep 17 00:00:00 2001 From: Luis Romero Date: Thu, 12 Apr 2018 17:47:59 -0400 Subject: [PATCH 01/30] building out controller/domain/repository/service --- .../zipcoder/controller/BillController.java | 30 +++++++++++++++++++ src/main/java/io/zipcoder/domain/Bill.java | 4 +++ .../zipcoder/repository/BillRepository.java | 7 +++++ .../java/io/zipcoder/service/BillService.java | 4 +++ 4 files changed, 45 insertions(+) create mode 100644 src/main/java/io/zipcoder/controller/BillController.java create mode 100644 src/main/java/io/zipcoder/domain/Bill.java create mode 100644 src/main/java/io/zipcoder/repository/BillRepository.java create mode 100644 src/main/java/io/zipcoder/service/BillService.java 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..9b539ca --- /dev/null +++ b/src/main/java/io/zipcoder/controller/BillController.java @@ -0,0 +1,30 @@ +package io.zipcoder.controller; + +import io.zipcoder.domain.Bill; +import io.zipcoder.repository.BillRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Iterator; + +@RestController +public class BillController { + + private BillRepository billRepository; + + @Autowired + public BillController(BillRepository billRepository) { + this.billRepository = billRepository; + } + + @RequestMapping(value="/accounts/{accountId}/bills", method= RequestMethod.GET) + public ResponseEntity> getAllBillsForSpecificAccount(Account account) { + Iterable allBillsforSpecificAccount = billRepository.findAll(); + return new ResponseEntity<>(allBillsforSpecificAccount, HttpStatus.OK); + } + +} 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/repository/BillRepository.java b/src/main/java/io/zipcoder/repository/BillRepository.java new file mode 100644 index 0000000..38f55c4 --- /dev/null +++ b/src/main/java/io/zipcoder/repository/BillRepository.java @@ -0,0 +1,7 @@ +package io.zipcoder.repository; + +import io.zipcoder.domain.Bill; +import org.springframework.data.repository.CrudRepository; + +public interface BillRepository extends CrudRepository{ +} 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 { +} From df473e9f314547ad499e1e98ecad46a503d3b9fe Mon Sep 17 00:00:00 2001 From: Carolynn Vansant Date: Thu, 12 Apr 2018 17:51:48 -0400 Subject: [PATCH 02/30] first commit --- .../controller/AccountController.java | 8 ++ .../controller/CustomerController.java | 8 ++ src/main/java/io/zipcoder/domain/Account.java | 78 +++++++++++++++++++ .../java/io/zipcoder/domain/AccountType.java | 5 ++ src/main/java/io/zipcoder/domain/Address.java | 75 ++++++++++++++++++ .../java/io/zipcoder/domain/Customer.java | 56 +++++++++++++ .../repository/AccountRepository.java | 10 +++ .../repository/CustomerRepository.java | 7 ++ .../io/zipcoder/service/AccountService.java | 8 ++ .../io/zipcoder/service/CustomerService.java | 8 ++ 10 files changed, 263 insertions(+) create mode 100644 src/main/java/io/zipcoder/controller/AccountController.java create mode 100644 src/main/java/io/zipcoder/controller/CustomerController.java create mode 100644 src/main/java/io/zipcoder/domain/Account.java create mode 100644 src/main/java/io/zipcoder/domain/AccountType.java create mode 100644 src/main/java/io/zipcoder/domain/Address.java create mode 100644 src/main/java/io/zipcoder/domain/Customer.java create mode 100644 src/main/java/io/zipcoder/repository/AccountRepository.java create mode 100644 src/main/java/io/zipcoder/repository/CustomerRepository.java create mode 100644 src/main/java/io/zipcoder/service/AccountService.java create mode 100644 src/main/java/io/zipcoder/service/CustomerService.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..a670c00 --- /dev/null +++ b/src/main/java/io/zipcoder/controller/AccountController.java @@ -0,0 +1,8 @@ +package io.zipcoder.controller; + + +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class AccountController { +} 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..621ee3b --- /dev/null +++ b/src/main/java/io/zipcoder/controller/CustomerController.java @@ -0,0 +1,8 @@ +package io.zipcoder.controller; + + +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class CustomerController { +} 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..29615c7 --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Account.java @@ -0,0 +1,78 @@ +package io.zipcoder.domain; + +import javax.persistence.*; + +@Entity +@Table +public class Account { + + @Id + @GeneratedValue + @Column(name ="ACCOUNT_ID") + private Long id; + + @Enumerated(EnumType.STRING) + @Column(name = "ACCOUNT_TYPE") + private AccountType type; + + @Column(name = "NICKNAME") + private String nickname; + + @Column(name = "REWARDS") + private Integer rewards; + + @Column(name="BALANCE") + private Double balance; + + @ManyToOne + @JoinColumn(name = "CUSTOMER_ID") + private Customer customer; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public AccountType getType() { + return type; + } + + public void setType(AccountType type) { + this.type = type; + } + + public String getNickname() { + return nickname; + } + + public void setNickname(String nickname) { + this.nickname = nickname; + } + + public Integer getRewards() { + return rewards; + } + + public void setRewards(Integer rewards) { + this.rewards = rewards; + } + + public Double getBalance() { + return balance; + } + + public void setBalance(Double balance) { + this.balance = balance; + } + + public Customer getCustomer() { + return customer; + } + + public void setCustomer(Customer customer) { + this.customer = customer; + } +} diff --git a/src/main/java/io/zipcoder/domain/AccountType.java b/src/main/java/io/zipcoder/domain/AccountType.java new file mode 100644 index 0000000..91b3785 --- /dev/null +++ b/src/main/java/io/zipcoder/domain/AccountType.java @@ -0,0 +1,5 @@ +package io.zipcoder.domain; + +public enum AccountType { +SAVINGS, CHECKING, CREDIT; +} 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..744dd14 --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Address.java @@ -0,0 +1,75 @@ +package io.zipcoder.domain; + + +import javax.persistence.Column; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +public class Address { + + @Id + @GeneratedValue + @Column(name = "ADDRESS_ID") + private Long id; + + @Column(name = "STREET_NUMBER") + private String street_number; + + @Column(name = "STREET_NAME") + private String street_name; + + @Column(name = "CITY") + private String city; + @Column(name = "STATE") + private String state; + @Column(name = "ZIP") + private String zip; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getStreet_number() { + return street_number; + } + + public void setStreet_number(String street_number) { + this.street_number = street_number; + } + + public String getStreet_name() { + return street_name; + } + + public void setStreet_name(String street_name) { + this.street_name = street_name; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getZip() { + return zip; + } + + public void setZip(String zip) { + this.zip = zip; + } +} 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..30e8d68 --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Customer.java @@ -0,0 +1,56 @@ +package io.zipcoder.domain; + +import javax.persistence.*; +import java.util.Set; + + +@Entity +public class Customer { + + @Id + @GeneratedValue + @Column(name = "CUSTOMER_ID") + private Long id; + + @Column(name = "FIRST_NAME") + private String first_name; + + @Column(name="LAST_NAME") + private String last_name; + + @OneToMany + @JoinColumn(name = "ADDRESS_ID") + private Set
address; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getFirst_name() { + return first_name; + } + + public void setFirst_name(String first_name) { + this.first_name = first_name; + } + + public String getLast_name() { + return last_name; + } + + public void setLast_name(String last_name) { + this.last_name = last_name; + } + + public Set
getAddress() { + return address; + } + + public void setAddress(Set
address) { + this.address = address; + } +} diff --git a/src/main/java/io/zipcoder/repository/AccountRepository.java b/src/main/java/io/zipcoder/repository/AccountRepository.java new file mode 100644 index 0000000..be660a0 --- /dev/null +++ b/src/main/java/io/zipcoder/repository/AccountRepository.java @@ -0,0 +1,10 @@ +package io.zipcoder.repository; + +import io.zipcoder.domain.Account; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; + +public interface AccountRepository extends CrudRepository { + + @Query(value = "") +} diff --git a/src/main/java/io/zipcoder/repository/CustomerRepository.java b/src/main/java/io/zipcoder/repository/CustomerRepository.java new file mode 100644 index 0000000..fa6d98f --- /dev/null +++ b/src/main/java/io/zipcoder/repository/CustomerRepository.java @@ -0,0 +1,7 @@ +package io.zipcoder.repository; + +import io.zipcoder.domain.Customer; +import org.springframework.data.repository.CrudRepository; + +public interface CustomerRepository extends CrudRepository { +} 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..02daec8 --- /dev/null +++ b/src/main/java/io/zipcoder/service/AccountService.java @@ -0,0 +1,8 @@ +package io.zipcoder.service; + + +import org.springframework.stereotype.Service; + +@Service +public class AccountService { +} 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..bca5ac6 --- /dev/null +++ b/src/main/java/io/zipcoder/service/CustomerService.java @@ -0,0 +1,8 @@ +package io.zipcoder.service; + + +import org.springframework.stereotype.Service; + +@Service +public class CustomerService { +} From 4fdd210cb6befd4fb3a1219e4b2c5f0c579fd8b2 Mon Sep 17 00:00:00 2001 From: PeterMcCormick Date: Thu, 12 Apr 2018 18:10:08 -0400 Subject: [PATCH 03/30] Pushing up current WithDepoRepo --- .../controller/DepositController.java | 49 ++++++++ .../controller/WithdrawalController.java | 4 + src/main/java/io/zipcoder/domain/Deposit.java | 118 ++++++++++++++++++ .../io/zipcoder/domain/TransactionType.java | 5 + .../java/io/zipcoder/domain/Withdrawal.java | 118 ++++++++++++++++++ .../repository/DepositRepository.java | 6 + .../repository/WithdrawalRepository.java | 8 ++ .../io/zipcoder/service/DepositService.java | 6 + .../zipcoder/service/WithdrawalService.java | 4 + 9 files changed, 318 insertions(+) create mode 100644 src/main/java/io/zipcoder/controller/DepositController.java create mode 100644 src/main/java/io/zipcoder/controller/WithdrawalController.java create mode 100644 src/main/java/io/zipcoder/domain/Deposit.java create mode 100644 src/main/java/io/zipcoder/domain/TransactionType.java create mode 100644 src/main/java/io/zipcoder/domain/Withdrawal.java create mode 100644 src/main/java/io/zipcoder/repository/DepositRepository.java create mode 100644 src/main/java/io/zipcoder/repository/WithdrawalRepository.java create mode 100644 src/main/java/io/zipcoder/service/DepositService.java create mode 100644 src/main/java/io/zipcoder/service/WithdrawalService.java 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..1556bdb --- /dev/null +++ b/src/main/java/io/zipcoder/controller/DepositController.java @@ -0,0 +1,49 @@ +package io.zipcoder.controller; + + +import io.zipcoder.domain.Deposit; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +public class DepositController { + + @Autowired + DepositController depositController; + +// @RequestMapping(value="/accounts/{accountId}/deposits", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) +// @ResponseBody +// public List getDeposit(Long accountId) { +// return depositController.getDeposit(accountId); +// } + + @RequestMapping(value="/deposits/{depositId", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + @ResponseBody + public Deposit getDeposit(Long id) { + return depositController.getDeposit(id); + } + + @RequestMapping(value="/accounts/{accountId}/deposits", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + @ResponseBody + public Deposit postDeposit(Long id) { + return depositController.postDeposit(id); + } + + @RequestMapping(value="/deposits/{depositId}", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + @ResponseBody + public Deposit updateDeposit(Long id) { + return depositController.updateDeposit(id); + } + + @RequestMapping(value="/deposits/{depositId}", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + @ResponseBody + public Deposit deleteDeposit(Long id) { + return depositController.deleteDeposit(id); + } + +} diff --git a/src/main/java/io/zipcoder/controller/WithdrawalController.java b/src/main/java/io/zipcoder/controller/WithdrawalController.java new file mode 100644 index 0000000..f1eb04d --- /dev/null +++ b/src/main/java/io/zipcoder/controller/WithdrawalController.java @@ -0,0 +1,4 @@ +package io.zipcoder.controller; + +public class WithdrawalController { +} 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..6c50597 --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Deposit.java @@ -0,0 +1,118 @@ +package io.zipcoder.domain; + +import javax.persistence.*; + +@Entity +public class Deposit { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name= "ID") + private Long id; + + @Enumerated(EnumType.STRING) + @Column(name= "TYPE") + private TransactionType type; + + @Column(name= "TRANSACTION_DATE") + private String transaction_date; + + @Column(name= "STATUS") + private String status; + + @Column(name= "PAYER_ID") + private Long payer_id; + + @Column(name= "MEDIUM") + private String medium; + + @Column(name= "AMOUNT") + private Double amount; + + @Column(name= "DESCRIPTION") + private String description; + + + public Deposit(Long id, String type, String transaction_date, String status, + Long payer_id, String medium, Double amount, String description) { + + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public TransactionType getType() { + return type; + } + + public void setType(TransactionType type) { + this.type = type; + } + + public String getTransaction_date() { + return transaction_date; + } + + public void setTransaction_date(String transaction_date) { + this.transaction_date = transaction_date; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Long getPayer_id() { + return payer_id; + } + + public void setPayer_id(Long payer_id) { + this.payer_id = payer_id; + } + + public String getMedium() { + return medium; + } + + public void setMedium(String medium) { + this.medium = medium; + } + + public Double getAmount() { + return amount; + } + + public void setAmount(Double amount) { + this.amount = amount; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + @Override + public String toString() { + return "Deposit{" + + "id=" + id + + ", type='" + type + '\'' + + ", transaction_date='" + transaction_date + '\'' + + ", status='" + status + '\'' + + ", payer_id=" + payer_id + + ", medium='" + medium + '\'' + + ", amount=" + amount + + ", description='" + description + '\'' + + '}'; + } +} diff --git a/src/main/java/io/zipcoder/domain/TransactionType.java b/src/main/java/io/zipcoder/domain/TransactionType.java new file mode 100644 index 0000000..b6cb854 --- /dev/null +++ b/src/main/java/io/zipcoder/domain/TransactionType.java @@ -0,0 +1,5 @@ +package io.zipcoder.domain; + +public enum TransactionType { + P2P, DEPOSIT, WITHDRAWAL +} diff --git a/src/main/java/io/zipcoder/domain/Withdrawal.java b/src/main/java/io/zipcoder/domain/Withdrawal.java new file mode 100644 index 0000000..0464acb --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Withdrawal.java @@ -0,0 +1,118 @@ +package io.zipcoder.domain; + +import javax.persistence.*; + +@Entity +public class Withdrawal { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name= "ID") + private Long id; + + @Enumerated(EnumType.STRING) + @Column(name= "TYPE") + private TransactionType type; + + @Column(name= "TRANSACTION_DATE") + private String transaction_date; + + @Column(name= "STATUS") + private String status; + + @Column(name= "PAYER_ID") + private Long payer_id; + + @Column(name= "MEDIUM") + private String medium; + + @Column(name= "AMOUNT") + private Double amount; + + @Column(name= "DESCRIPTION") + private String description; + + + public Withdrawal(Long id, String type, String transaction_date, String status, + Long payer_id, String medium, Double amount, String description) { + + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public TransactionType getType() { + return type; + } + + public void setType(TransactionType type) { + this.type = type; + } + + public String getTransaction_date() { + return transaction_date; + } + + public void setTransaction_date(String transaction_date) { + this.transaction_date = transaction_date; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Long getPayer_id() { + return payer_id; + } + + public void setPayer_id(Long payer_id) { + this.payer_id = payer_id; + } + + public String getMedium() { + return medium; + } + + public void setMedium(String medium) { + this.medium = medium; + } + + public Double getAmount() { + return amount; + } + + public void setAmount(Double amount) { + this.amount = amount; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + @Override + public String toString() { + return "Deposit{" + + "id=" + id + + ", type='" + type + '\'' + + ", transaction_date='" + transaction_date + '\'' + + ", status='" + status + '\'' + + ", payer_id=" + payer_id + + ", medium='" + medium + '\'' + + ", amount=" + amount + + ", description='" + description + '\'' + + '}'; + } +} diff --git a/src/main/java/io/zipcoder/repository/DepositRepository.java b/src/main/java/io/zipcoder/repository/DepositRepository.java new file mode 100644 index 0000000..5e02224 --- /dev/null +++ b/src/main/java/io/zipcoder/repository/DepositRepository.java @@ -0,0 +1,6 @@ +package io.zipcoder.repository; + +import io.zipcoder.domain.Deposit; +import org.springframework.data.repository.CrudRepository; + +public interface DepositRepository extends CrudRepository { } diff --git a/src/main/java/io/zipcoder/repository/WithdrawalRepository.java b/src/main/java/io/zipcoder/repository/WithdrawalRepository.java new file mode 100644 index 0000000..0bd6154 --- /dev/null +++ b/src/main/java/io/zipcoder/repository/WithdrawalRepository.java @@ -0,0 +1,8 @@ +package io.zipcoder.repository; + +import io.zipcoder.domain.Withdrawal; +import org.springframework.data.repository.CrudRepository; + +public interface WithdrawalRepository extends CrudRepository { + +} 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..3876fd1 --- /dev/null +++ b/src/main/java/io/zipcoder/service/DepositService.java @@ -0,0 +1,6 @@ +package io.zipcoder.service; + + +public class DepositService { + +} diff --git a/src/main/java/io/zipcoder/service/WithdrawalService.java b/src/main/java/io/zipcoder/service/WithdrawalService.java new file mode 100644 index 0000000..23174ad --- /dev/null +++ b/src/main/java/io/zipcoder/service/WithdrawalService.java @@ -0,0 +1,4 @@ +package io.zipcoder.service; + +public class WithdrawalService { +} From 75ec9cce5d152b132add1c35d43c8d40816ff6c8 Mon Sep 17 00:00:00 2001 From: Carolynn Vansant Date: Thu, 12 Apr 2018 20:04:22 -0400 Subject: [PATCH 04/30] account almost done, customer halfway done --- .../controller/AccountController.java | 44 ++++++++++++++- src/main/java/io/zipcoder/domain/Address.java | 2 + .../java/io/zipcoder/domain/Customer.java | 1 + .../repository/AccountRepository.java | 4 +- .../io/zipcoder/service/AccountService.java | 54 +++++++++++++++++++ 5 files changed, 103 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/zipcoder/controller/AccountController.java b/src/main/java/io/zipcoder/controller/AccountController.java index a670c00..718c2b2 100644 --- a/src/main/java/io/zipcoder/controller/AccountController.java +++ b/src/main/java/io/zipcoder/controller/AccountController.java @@ -1,8 +1,50 @@ package io.zipcoder.controller; -import org.springframework.web.bind.annotation.RestController; +import io.zipcoder.domain.Account; +import io.zipcoder.domain.Customer; +import io.zipcoder.service.AccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.RequestEntity; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; @RestController public class AccountController { + @Autowired + private AccountService accountService; + + public AccountController(AccountService accountService){ + this.accountService = accountService; + } + + @RequestMapping(value = "/accounts", method = RequestMethod.GET) + public ResponseEntity getAllAccounts(){ + return accountService.getAllAccounts(); + } + + @RequestMapping(value = "/accounts/{accountId}", method = RequestMethod.GET) + public ResponseEntity getAccountById(@PathVariable Long id){ + return accountService.getAccountById(id); + } + + @RequestMapping(value = "/customers/{customerId}/accounts", method = RequestMethod.GET) + public ResponseEntity getAccountsForCustomer(@PathVariable Long customerId, @RequestBody Customer customer){ + return accountService.getAccountsOfCustomer(customer); + } + + @RequestMapping(value = "/customers/{customerId}/", method = RequestMethod.POST) + public ResponseEntity createAccount(@RequestBody Account account){ + return accountService.createAccount(account); + } + + @RequestMapping(value = "/accounts/{accountId}", method = RequestMethod.PUT) + public ResponseEntity updateAccount(@PathVariable Long accountId, @RequestBody Account account){ + return accountService.updateAccount(account); + } + + @RequestMapping(value = "/accounts/{accountId}", method = RequestMethod.DELETE) + public ResponseEntity deleteAccount(@PathVariable Long accountId){ + return accountService.deleteAccount(accountId); + } } diff --git a/src/main/java/io/zipcoder/domain/Address.java b/src/main/java/io/zipcoder/domain/Address.java index 744dd14..d418bcc 100644 --- a/src/main/java/io/zipcoder/domain/Address.java +++ b/src/main/java/io/zipcoder/domain/Address.java @@ -20,8 +20,10 @@ public class Address { @Column(name = "CITY") private String city; + @Column(name = "STATE") private String state; + @Column(name = "ZIP") private String zip; diff --git a/src/main/java/io/zipcoder/domain/Customer.java b/src/main/java/io/zipcoder/domain/Customer.java index 30e8d68..c7a1ba8 100644 --- a/src/main/java/io/zipcoder/domain/Customer.java +++ b/src/main/java/io/zipcoder/domain/Customer.java @@ -10,6 +10,7 @@ public class Customer { @Id @GeneratedValue @Column(name = "CUSTOMER_ID") + @OneToMany(mappedBy = "customer") private Long id; @Column(name = "FIRST_NAME") diff --git a/src/main/java/io/zipcoder/repository/AccountRepository.java b/src/main/java/io/zipcoder/repository/AccountRepository.java index be660a0..b39369a 100644 --- a/src/main/java/io/zipcoder/repository/AccountRepository.java +++ b/src/main/java/io/zipcoder/repository/AccountRepository.java @@ -1,10 +1,12 @@ package io.zipcoder.repository; import io.zipcoder.domain.Account; +import io.zipcoder.domain.Customer; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; public interface AccountRepository extends CrudRepository { - @Query(value = "") + @Query(value ="SELECT * WHERE customer = ?", nativeQuery = true) + public Iterable findAccountsForCustomer(Customer customer); } diff --git a/src/main/java/io/zipcoder/service/AccountService.java b/src/main/java/io/zipcoder/service/AccountService.java index 02daec8..41a1cf0 100644 --- a/src/main/java/io/zipcoder/service/AccountService.java +++ b/src/main/java/io/zipcoder/service/AccountService.java @@ -1,8 +1,62 @@ package io.zipcoder.service; +import io.zipcoder.domain.Account; +import io.zipcoder.domain.Customer; +import io.zipcoder.repository.AccountRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; + +import java.net.URI; @Service public class AccountService { + @Autowired + private AccountRepository accountRepository; + + public AccountService(){} + + public AccountService(AccountRepository accountRepository){ + this.accountRepository = accountRepository; + } + + public ResponseEntity getAllAccounts(){ + Iterable accounts = accountRepository.findAll(); + return new ResponseEntity<>(accounts, HttpStatus.OK); + } + + public ResponseEntity getAccountById(Long id){ + Account account = accountRepository.findOne(id); + return new ResponseEntity<>(account, HttpStatus.OK); + } + + public ResponseEntity getAccountsOfCustomer(Customer customer){ + Iterable accounts = accountRepository.findAccountsForCustomer(customer); + return new ResponseEntity<>(accounts, HttpStatus.OK); + } + + public ResponseEntity createAccount(Account account){ + URI newAccountUri = ServletUriComponentsBuilder + .fromCurrentRequest() + .path("/{id}") + .buildAndExpand(account.getId()) + .toUri(); + HttpHeaders responseHeaders = new HttpHeaders(); + responseHeaders.setLocation(newAccountUri); + return new ResponseEntity<>(null, responseHeaders, HttpStatus.CREATED); + } + + public ResponseEntity updateAccount(Account account){ + Account account1 = accountRepository.save(account); + return new ResponseEntity<>(HttpStatus.OK); + } + + public ResponseEntity deleteAccount(Long accountId){ + accountRepository.delete(accountId); + return new ResponseEntity<>(HttpStatus.OK); + } } From d560f681cb1d5ccbdaede3dfab28b7912f00cc6e Mon Sep 17 00:00:00 2001 From: Luis Romero Date: Thu, 12 Apr 2018 20:04:52 -0400 Subject: [PATCH 05/30] second commit --- .../zipcoder/controller/BillController.java | 37 +++++- src/main/java/io/zipcoder/domain/Bill.java | 120 ++++++++++++++++++ .../zipcoder/repository/BillRepository.java | 2 + .../java/io/zipcoder/service/BillService.java | 23 ++++ 4 files changed, 176 insertions(+), 6 deletions(-) diff --git a/src/main/java/io/zipcoder/controller/BillController.java b/src/main/java/io/zipcoder/controller/BillController.java index 9b539ca..d9061ef 100644 --- a/src/main/java/io/zipcoder/controller/BillController.java +++ b/src/main/java/io/zipcoder/controller/BillController.java @@ -2,9 +2,11 @@ import io.zipcoder.domain.Bill; import io.zipcoder.repository.BillRepository; +import io.zipcoder.service.BillService; 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; @@ -14,17 +16,40 @@ @RestController public class BillController { - private BillRepository billRepository; - @Autowired - public BillController(BillRepository billRepository) { - this.billRepository = billRepository; + private BillService billService; + + public BillController() {} + + public BillController(BillService billService) { + this.billService = billService; + } + + @RequestMapping(value="/accounts/{accountId}/bills", method= RequestMethod.GET) + public ResponseEntity> getAllBillsForSpecificAccount(Account account) { + return billService.getAllBillsForSpecificAccount(account); + } + + @RequestMapping(value="/bills/{billId}", method= RequestMethod.GET) + public ResponseEntity getBillById(@PathVariable Long id) { + return billService.getBillById(id); } @RequestMapping(value="/accounts/{accountId}/bills", method= RequestMethod.GET) public ResponseEntity> getAllBillsForSpecificAccount(Account account) { - Iterable allBillsforSpecificAccount = billRepository.findAll(); - return new ResponseEntity<>(allBillsforSpecificAccount, HttpStatus.OK); + return billService.getAllBillsForSpecificAccount(Account account); } + @RequestMapping(value="/accounts/{accountId}/bills", method= RequestMethod.GET) + public ResponseEntity> getAllBillsForSpecificAccount(Account account) { + return billService.getAllBillsForSpecificAccount(Account account); + } + + @RequestMapping(value="/accounts/{accountId}/bills", method= RequestMethod.GET) + public ResponseEntity> getAllBillsForSpecificAccount(Account account) { + return billService.getAllBillsForSpecificAccount(Account account); + } + + + } diff --git a/src/main/java/io/zipcoder/domain/Bill.java b/src/main/java/io/zipcoder/domain/Bill.java index eab1fcd..5faa25a 100644 --- a/src/main/java/io/zipcoder/domain/Bill.java +++ b/src/main/java/io/zipcoder/domain/Bill.java @@ -1,4 +1,124 @@ package io.zipcoder.domain; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +@Entity public class Bill { + + @Id + @GeneratedValue + @Column(name = "BILL_ID") + private Long id; + + @Column(name = "STATUS") + private String status; + + @Column(name = "PAYEE") + private String payee; + + @Column(name = "NICKNAME") + private String nickname; + + @Column(name = "CREATION_DATE") + private String creation_date; + + @Column(name = "PAYMENT_DATE") + private String payment_date; + + @Column(name = "RECURRING_DATE") + private Integer recurring_date; + + @Column(name = "UPCOMING_PAYMENT_DATE") + private String upcoming_payment_date; + + @Column(name = "PAYMENT_AMOUNT") + private Double payment_amount; + + @Column(name = "ACCOUNT_ID") + private String account_id; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getPayee() { + return payee; + } + + public void setPayee(String payee) { + this.payee = payee; + } + + public String getNickname() { + return nickname; + } + + public void setNickname(String nickname) { + this.nickname = nickname; + } + + public String getCreation_date() { + return creation_date; + } + + public void setCreation_date(String creation_date) { + this.creation_date = creation_date; + } + + public String getPayment_date() { + return payment_date; + } + + public void setPayment_date(String payment_date) { + this.payment_date = payment_date; + } + + public Integer getRecurring_date() { + return recurring_date; + } + + public void setRecurring_date(Integer recurring_date) { + this.recurring_date = recurring_date; + } + + public String getUpcoming_payment_date() { + return upcoming_payment_date; + } + + public void setUpcoming_payment_date(String upcoming_payment_date) { + this.upcoming_payment_date = upcoming_payment_date; + } + + public Double getPayment_amount() { + return payment_amount; + } + + public void setPayment_amount(Double payment_amount) { + this.payment_amount = payment_amount; + } + + public String getAccount_id() { + return account_id; + } + + public void setAccount_id(String account_id) { + this.account_id = account_id; + } + + } diff --git a/src/main/java/io/zipcoder/repository/BillRepository.java b/src/main/java/io/zipcoder/repository/BillRepository.java index 38f55c4..cdc4357 100644 --- a/src/main/java/io/zipcoder/repository/BillRepository.java +++ b/src/main/java/io/zipcoder/repository/BillRepository.java @@ -2,6 +2,8 @@ import io.zipcoder.domain.Bill; import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; +@Repository public interface BillRepository extends CrudRepository{ } diff --git a/src/main/java/io/zipcoder/service/BillService.java b/src/main/java/io/zipcoder/service/BillService.java index 60fceac..5e70a12 100644 --- a/src/main/java/io/zipcoder/service/BillService.java +++ b/src/main/java/io/zipcoder/service/BillService.java @@ -1,4 +1,27 @@ package io.zipcoder.service; +import io.zipcoder.domain.Bill; +import io.zipcoder.repository.BillRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +@Service public class BillService { + + @Autowired + private BillRepository billRepository; + + public BillService() {} + + public BillService(BillRepository billRepository) { + this.billRepository = billRepository; + } + + public ResponseEntity> getAllBillsForSpecificAccount(Account account) { + Iterable allBillsforSpecificAccount = billRepository.findAll(); + return new ResponseEntity<>(allBillsforSpecificAccount, HttpStatus.OK); + } + } From 4394416df8ebd03c9f03bf54304f4b50ee7f2729 Mon Sep 17 00:00:00 2001 From: PeterMcCormick Date: Thu, 12 Apr 2018 21:57:20 -0400 Subject: [PATCH 06/30] Pushing up current WithDepoRepo --- .../controller/DepositController.java | 2 +- .../controller/WithdrawalController.java | 35 +++++++++++++++++++ src/main/java/io/zipcoder/domain/Deposit.java | 18 +++++----- src/main/java/io/zipcoder/domain/Medium.java | 5 +++ .../io/zipcoder/domain/TransactionStatus.java | 5 +++ .../java/io/zipcoder/domain/Withdrawal.java | 20 ++++++----- .../repository/DepositRepository.java | 4 ++- .../zipcoder/service/WithdrawalService.java | 1 + 8 files changed, 71 insertions(+), 19 deletions(-) create mode 100644 src/main/java/io/zipcoder/domain/Medium.java create mode 100644 src/main/java/io/zipcoder/domain/TransactionStatus.java diff --git a/src/main/java/io/zipcoder/controller/DepositController.java b/src/main/java/io/zipcoder/controller/DepositController.java index 1556bdb..241c8d5 100644 --- a/src/main/java/io/zipcoder/controller/DepositController.java +++ b/src/main/java/io/zipcoder/controller/DepositController.java @@ -22,7 +22,7 @@ public class DepositController { // return depositController.getDeposit(accountId); // } - @RequestMapping(value="/deposits/{depositId", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + @RequestMapping(value="/deposits/{depositId}", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) @ResponseBody public Deposit getDeposit(Long id) { return depositController.getDeposit(id); diff --git a/src/main/java/io/zipcoder/controller/WithdrawalController.java b/src/main/java/io/zipcoder/controller/WithdrawalController.java index f1eb04d..bd7b5b2 100644 --- a/src/main/java/io/zipcoder/controller/WithdrawalController.java +++ b/src/main/java/io/zipcoder/controller/WithdrawalController.java @@ -1,4 +1,39 @@ package io.zipcoder.controller; +import io.zipcoder.domain.Withdrawal; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +@RestController public class WithdrawalController { + + @Autowired + private WithdrawalController withdrawalController; + + @RequestMapping(value="/withdrawals/{withdrawalId}", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + @ResponseBody + public Withdrawal getWithdrawal(Long id) { + return withdrawalController.getWithdrawal(id); + } + + @RequestMapping(value="/accounts/{accountId}/withdrawals", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + @ResponseBody + public Withdrawal postWithdrawal(Long id) { + return withdrawalController.postWithdrawal(id); + } + + @RequestMapping(value="/withdrawals/{withdrawalsId}", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + @ResponseBody + public Withdrawal updateWithdrawal(Long id) { + return withdrawalController.updateWithdrawal(id); + } + + @RequestMapping(value="/withdrawals/{withdrawalsId}", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + @ResponseBody + public Withdrawal deleteWithdrawal(Long id) { + return withdrawalController.deleteWithdrawal(id); + } } diff --git a/src/main/java/io/zipcoder/domain/Deposit.java b/src/main/java/io/zipcoder/domain/Deposit.java index 6c50597..9645721 100644 --- a/src/main/java/io/zipcoder/domain/Deposit.java +++ b/src/main/java/io/zipcoder/domain/Deposit.java @@ -17,14 +17,16 @@ public class Deposit { @Column(name= "TRANSACTION_DATE") private String transaction_date; + @Enumerated(EnumType.STRING) @Column(name= "STATUS") - private String status; + private TransactionStatus status; @Column(name= "PAYER_ID") private Long payer_id; + @Enumerated(EnumType.STRING) @Column(name= "MEDIUM") - private String medium; + private Medium medium; @Column(name= "AMOUNT") private Double amount; @@ -33,8 +35,8 @@ public class Deposit { private String description; - public Deposit(Long id, String type, String transaction_date, String status, - Long payer_id, String medium, Double amount, String description) { + public Deposit(Long id, TransactionType type, String transaction_date, TransactionStatus status, + Long payer_id, Medium medium, Double amount, String description) { } @@ -62,11 +64,11 @@ public void setTransaction_date(String transaction_date) { this.transaction_date = transaction_date; } - public String getStatus() { + public TransactionStatus getStatus() { return status; } - public void setStatus(String status) { + public void setStatus(TransactionStatus status) { this.status = status; } @@ -78,11 +80,11 @@ public void setPayer_id(Long payer_id) { this.payer_id = payer_id; } - public String getMedium() { + public Medium getMedium() { return medium; } - public void setMedium(String medium) { + public void setMedium(Medium medium) { this.medium = medium; } diff --git a/src/main/java/io/zipcoder/domain/Medium.java b/src/main/java/io/zipcoder/domain/Medium.java new file mode 100644 index 0000000..642b312 --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Medium.java @@ -0,0 +1,5 @@ +package io.zipcoder.domain; + +public enum Medium { + BALANCES, REWARDS +} diff --git a/src/main/java/io/zipcoder/domain/TransactionStatus.java b/src/main/java/io/zipcoder/domain/TransactionStatus.java new file mode 100644 index 0000000..5340b5b --- /dev/null +++ b/src/main/java/io/zipcoder/domain/TransactionStatus.java @@ -0,0 +1,5 @@ +package io.zipcoder.domain; + +public enum TransactionStatus { + PENDING, CANCELLED, COMPLETED +} diff --git a/src/main/java/io/zipcoder/domain/Withdrawal.java b/src/main/java/io/zipcoder/domain/Withdrawal.java index 0464acb..f43130e 100644 --- a/src/main/java/io/zipcoder/domain/Withdrawal.java +++ b/src/main/java/io/zipcoder/domain/Withdrawal.java @@ -17,14 +17,16 @@ public class Withdrawal { @Column(name= "TRANSACTION_DATE") private String transaction_date; + @Enumerated(EnumType.STRING) @Column(name= "STATUS") - private String status; + private TransactionStatus status; @Column(name= "PAYER_ID") private Long payer_id; + @Enumerated(EnumType.STRING) @Column(name= "MEDIUM") - private String medium; + private Medium medium; @Column(name= "AMOUNT") private Double amount; @@ -33,8 +35,8 @@ public class Withdrawal { private String description; - public Withdrawal(Long id, String type, String transaction_date, String status, - Long payer_id, String medium, Double amount, String description) { + public Withdrawal(Long id, TransactionType type, String transaction_date, TransactionStatus status, + Long payer_id, Medium medium, Double amount, String description) { } @@ -62,11 +64,11 @@ public void setTransaction_date(String transaction_date) { this.transaction_date = transaction_date; } - public String getStatus() { + public TransactionStatus getStatus() { return status; } - public void setStatus(String status) { + public void setStatus(TransactionStatus status) { this.status = status; } @@ -78,11 +80,11 @@ public void setPayer_id(Long payer_id) { this.payer_id = payer_id; } - public String getMedium() { + public Medium getMedium() { return medium; } - public void setMedium(String medium) { + public void setMedium(Medium medium) { this.medium = medium; } @@ -104,7 +106,7 @@ public void setDescription(String description) { @Override public String toString() { - return "Deposit{" + + return "Withdrawal{" + "id=" + id + ", type='" + type + '\'' + ", transaction_date='" + transaction_date + '\'' + diff --git a/src/main/java/io/zipcoder/repository/DepositRepository.java b/src/main/java/io/zipcoder/repository/DepositRepository.java index 5e02224..89df4cc 100644 --- a/src/main/java/io/zipcoder/repository/DepositRepository.java +++ b/src/main/java/io/zipcoder/repository/DepositRepository.java @@ -3,4 +3,6 @@ import io.zipcoder.domain.Deposit; import org.springframework.data.repository.CrudRepository; -public interface DepositRepository extends CrudRepository { } +public interface DepositRepository extends CrudRepository { + +} diff --git a/src/main/java/io/zipcoder/service/WithdrawalService.java b/src/main/java/io/zipcoder/service/WithdrawalService.java index 23174ad..2dbc539 100644 --- a/src/main/java/io/zipcoder/service/WithdrawalService.java +++ b/src/main/java/io/zipcoder/service/WithdrawalService.java @@ -1,4 +1,5 @@ package io.zipcoder.service; public class WithdrawalService { + } From f9637343cb394d73db994c5a3e1632221c667a26 Mon Sep 17 00:00:00 2001 From: Carolynn Vansant Date: Thu, 12 Apr 2018 23:04:54 -0400 Subject: [PATCH 07/30] tried to create mysql database, don't have it functional yet --- pom.xml | 15 ++++++++++++++- src/main/java/io/zipcoder/ZcwbankApplication.java | 12 ++++++++++++ src/main/java/io/zipcoder/domain/Account.java | 1 - src/main/java/io/zipcoder/domain/Address.java | 6 +++--- src/main/java/io/zipcoder/domain/Customer.java | 6 +++--- src/main/resources/application.properties | 4 ++++ 6 files changed, 36 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index 0a99788..7e96ba8 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ UTF-8 UTF-8 - 1.7 + 1.8 @@ -44,6 +44,19 @@ runtime + + + mysql + mysql-connector-java + 5.1.6 + + + + com.h2database + h2 + compile + + javax.inject javax.inject diff --git a/src/main/java/io/zipcoder/ZcwbankApplication.java b/src/main/java/io/zipcoder/ZcwbankApplication.java index 60df46b..30fddf6 100644 --- a/src/main/java/io/zipcoder/ZcwbankApplication.java +++ b/src/main/java/io/zipcoder/ZcwbankApplication.java @@ -2,6 +2,10 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletRegistrationBean; +import org.springframework.context.annotation.Bean; + +import org.h2.server.web.WebServlet; @SpringBootApplication public class ZcwbankApplication { @@ -9,4 +13,12 @@ public class ZcwbankApplication { public static void main(String[] args) { SpringApplication.run(ZcwbankApplication.class, args); } + +// @Bean +// ServletRegistrationBean h2servletRegistration(){ +// ServletRegistrationBean registrationBean = new ServletRegistrationBean( new WebServlet()); +// registrationBean.addUrlMappings("/console/*"); +// return registrationBean; +// } + } diff --git a/src/main/java/io/zipcoder/domain/Account.java b/src/main/java/io/zipcoder/domain/Account.java index 29615c7..93bb25b 100644 --- a/src/main/java/io/zipcoder/domain/Account.java +++ b/src/main/java/io/zipcoder/domain/Account.java @@ -3,7 +3,6 @@ import javax.persistence.*; @Entity -@Table public class Account { @Id diff --git a/src/main/java/io/zipcoder/domain/Address.java b/src/main/java/io/zipcoder/domain/Address.java index d418bcc..547704c 100644 --- a/src/main/java/io/zipcoder/domain/Address.java +++ b/src/main/java/io/zipcoder/domain/Address.java @@ -1,10 +1,9 @@ package io.zipcoder.domain; -import javax.persistence.Column; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; +import javax.persistence.*; +@Entity public class Address { @Id @@ -27,6 +26,7 @@ public class Address { @Column(name = "ZIP") private String zip; + public Long getId() { return id; } diff --git a/src/main/java/io/zipcoder/domain/Customer.java b/src/main/java/io/zipcoder/domain/Customer.java index c7a1ba8..2d15b37 100644 --- a/src/main/java/io/zipcoder/domain/Customer.java +++ b/src/main/java/io/zipcoder/domain/Customer.java @@ -10,7 +10,6 @@ public class Customer { @Id @GeneratedValue @Column(name = "CUSTOMER_ID") - @OneToMany(mappedBy = "customer") private Long id; @Column(name = "FIRST_NAME") @@ -19,8 +18,9 @@ public class Customer { @Column(name="LAST_NAME") private String last_name; - @OneToMany - @JoinColumn(name = "ADDRESS_ID") + @OneToMany(cascade = CascadeType.ALL) + @JoinColumn(name = "CUSTOMER_ID") + @OrderBy private Set
address; public Long getId() { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index e69de29..33af2dc 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -0,0 +1,4 @@ +spring.jpa.hibernate.ddl-auto=create +spring.datasource.url=jdbc:mysql://localhost:3306/bank_project +spring.datasource.username=ourgroup +spring.datasource.password=ThePassword From acdff82be01c5896932c70b6e0a96ff828a753dd Mon Sep 17 00:00:00 2001 From: PeterMcCormick Date: Fri, 13 Apr 2018 07:09:56 -0400 Subject: [PATCH 08/30] Domain Controller and REPO set up, working on Service --- .../controller/DepositController.java | 20 +++++++++---------- .../controller/WithdrawalController.java | 18 ++++++++++++----- .../io/zipcoder/service/DepositService.java | 1 + 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/main/java/io/zipcoder/controller/DepositController.java b/src/main/java/io/zipcoder/controller/DepositController.java index 241c8d5..5fb3341 100644 --- a/src/main/java/io/zipcoder/controller/DepositController.java +++ b/src/main/java/io/zipcoder/controller/DepositController.java @@ -3,8 +3,8 @@ import io.zipcoder.domain.Deposit; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; @@ -16,31 +16,31 @@ public class DepositController { @Autowired DepositController depositController; -// @RequestMapping(value="/accounts/{accountId}/deposits", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) -// @ResponseBody -// public List getDeposit(Long accountId) { -// return depositController.getDeposit(accountId); -// } + @RequestMapping(value="/accounts/{accountId}/deposits", method = RequestMethod.GET) + @ResponseBody + public List getDepositsByAccountId(Long id) { + return depositController.getDepositsByAccountId(id); + } - @RequestMapping(value="/deposits/{depositId}", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + @RequestMapping(value="/deposits/{depositId}", method = RequestMethod.GET) @ResponseBody public Deposit getDeposit(Long id) { return depositController.getDeposit(id); } - @RequestMapping(value="/accounts/{accountId}/deposits", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + @RequestMapping(value="/accounts/{accountId}/deposits", method = RequestMethod.POST) @ResponseBody public Deposit postDeposit(Long id) { return depositController.postDeposit(id); } - @RequestMapping(value="/deposits/{depositId}", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + @RequestMapping(value="/deposits/{depositId}", method = RequestMethod.PATCH) @ResponseBody public Deposit updateDeposit(Long id) { return depositController.updateDeposit(id); } - @RequestMapping(value="/deposits/{depositId}", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + @RequestMapping(value="/deposits/{depositId}", method = RequestMethod.DELETE) @ResponseBody public Deposit deleteDeposit(Long id) { return depositController.deleteDeposit(id); diff --git a/src/main/java/io/zipcoder/controller/WithdrawalController.java b/src/main/java/io/zipcoder/controller/WithdrawalController.java index bd7b5b2..17f1f87 100644 --- a/src/main/java/io/zipcoder/controller/WithdrawalController.java +++ b/src/main/java/io/zipcoder/controller/WithdrawalController.java @@ -2,36 +2,44 @@ import io.zipcoder.domain.Withdrawal; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @RestController public class WithdrawalController { @Autowired private WithdrawalController withdrawalController; - @RequestMapping(value="/withdrawals/{withdrawalId}", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + @RequestMapping(value="accounts/{acountId}/withdrawals", method = RequestMethod.GET) + @ResponseBody + public List getWithdrawalsByAccount(Long id) { + return withdrawalController.getWithdrawalsByAccount(id); + } + + @RequestMapping(value="/withdrawals/{withdrawalId}", method = RequestMethod.GET) @ResponseBody public Withdrawal getWithdrawal(Long id) { return withdrawalController.getWithdrawal(id); } - @RequestMapping(value="/accounts/{accountId}/withdrawals", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + @RequestMapping(value="/accounts/{accountId}/withdrawals", method = RequestMethod.POST) @ResponseBody public Withdrawal postWithdrawal(Long id) { return withdrawalController.postWithdrawal(id); } - @RequestMapping(value="/withdrawals/{withdrawalsId}", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + @RequestMapping(value="/withdrawals/{withdrawalsId}" , method = RequestMethod.PATCH) @ResponseBody public Withdrawal updateWithdrawal(Long id) { return withdrawalController.updateWithdrawal(id); } - @RequestMapping(value="/withdrawals/{withdrawalsId}", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + @RequestMapping(value="/withdrawals/{withdrawalsId}", method = RequestMethod.DELETE) @ResponseBody public Withdrawal deleteWithdrawal(Long id) { return withdrawalController.deleteWithdrawal(id); diff --git a/src/main/java/io/zipcoder/service/DepositService.java b/src/main/java/io/zipcoder/service/DepositService.java index 3876fd1..a398c06 100644 --- a/src/main/java/io/zipcoder/service/DepositService.java +++ b/src/main/java/io/zipcoder/service/DepositService.java @@ -3,4 +3,5 @@ public class DepositService { + } From 769ca71d8cdfb208b6c7dbd328d95b0de460316a Mon Sep 17 00:00:00 2001 From: PeterMcCormick Date: Fri, 13 Apr 2018 09:31:57 -0400 Subject: [PATCH 09/30] Some more progress into service --- .../io/zipcoder/service/WithdrawalService.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/io/zipcoder/service/WithdrawalService.java b/src/main/java/io/zipcoder/service/WithdrawalService.java index 2dbc539..426260e 100644 --- a/src/main/java/io/zipcoder/service/WithdrawalService.java +++ b/src/main/java/io/zipcoder/service/WithdrawalService.java @@ -1,5 +1,22 @@ package io.zipcoder.service; +import io.zipcoder.domain.Withdrawal; +import io.zipcoder.repository.WithdrawalRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service public class WithdrawalService { + + WithdrawalRepository withdrawalRepository; + + @Autowired + public WithdrawalService(WithdrawalRepository withdrawalRepository) { + this.withdrawalRepository = withdrawalRepository; + } + + public Withdrawal getWithdrawalByWithdrawalId(Long id) { + this + } } From 0bdcc9ccb25a98e6d0ede0868eca8fb8ea26ef60 Mon Sep 17 00:00:00 2001 From: Luis Romero Date: Fri, 13 Apr 2018 15:17:31 -0400 Subject: [PATCH 10/30] updated java version to 1.8 --- pom.xml | 2 +- src/main/java/io/zipcoder/controller/BillController.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 0a99788..5730847 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ UTF-8 UTF-8 - 1.7 + 1.8 diff --git a/src/main/java/io/zipcoder/controller/BillController.java b/src/main/java/io/zipcoder/controller/BillController.java index d9061ef..7bc0814 100644 --- a/src/main/java/io/zipcoder/controller/BillController.java +++ b/src/main/java/io/zipcoder/controller/BillController.java @@ -35,7 +35,7 @@ public ResponseEntity getBillById(@PathVariable Long id) { return billService.getBillById(id); } - @RequestMapping(value="/accounts/{accountId}/bills", method= RequestMethod.GET) + @RequestMapping(value="/customers/{customerId}/bills", method= RequestMethod.GET) public ResponseEntity> getAllBillsForSpecificAccount(Account account) { return billService.getAllBillsForSpecificAccount(Account account); } From 9fc78def19238c98067a6e344eee40e99ed3216a Mon Sep 17 00:00:00 2001 From: Carolynn Vansant Date: Fri, 13 Apr 2018 18:10:00 -0400 Subject: [PATCH 11/30] all working(I think), postman tested half of the methods, yet to start mockito testing --- .../controller/AccountController.java | 4 +- .../controller/CustomerController.java | 40 +++++++++++++- .../repository/CustomerRepository.java | 4 ++ .../io/zipcoder/service/CustomerService.java | 52 +++++++++++++++++++ src/main/resources/application.properties | 8 +-- 5 files changed, 101 insertions(+), 7 deletions(-) diff --git a/src/main/java/io/zipcoder/controller/AccountController.java b/src/main/java/io/zipcoder/controller/AccountController.java index 718c2b2..2c92f0c 100644 --- a/src/main/java/io/zipcoder/controller/AccountController.java +++ b/src/main/java/io/zipcoder/controller/AccountController.java @@ -33,8 +33,8 @@ public ResponseEntity getAccountsForCustomer(@PathVariable Long customerId, @ return accountService.getAccountsOfCustomer(customer); } - @RequestMapping(value = "/customers/{customerId}/", method = RequestMethod.POST) - public ResponseEntity createAccount(@RequestBody Account account){ + @RequestMapping(value = "/customers/{customerId}/accounts", method = RequestMethod.POST) + public ResponseEntity createAccount(@PathVariable Long customerId, @RequestBody Account account){ return accountService.createAccount(account); } diff --git a/src/main/java/io/zipcoder/controller/CustomerController.java b/src/main/java/io/zipcoder/controller/CustomerController.java index 621ee3b..6b1b6c6 100644 --- a/src/main/java/io/zipcoder/controller/CustomerController.java +++ b/src/main/java/io/zipcoder/controller/CustomerController.java @@ -1,8 +1,46 @@ package io.zipcoder.controller; -import org.springframework.web.bind.annotation.RestController; +import io.zipcoder.domain.Account; +import io.zipcoder.domain.Customer; +import io.zipcoder.repository.CustomerRepository; +import io.zipcoder.service.AccountService; +import io.zipcoder.service.CustomerService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; @RestController public class CustomerController { + @Autowired + private CustomerService customerService; + + public CustomerController(CustomerService customerService){ + this.customerService = customerService; + } + + @RequestMapping(value = "/customers", method = RequestMethod.GET) + public ResponseEntity> getAllCustomers(){ + return customerService.getAllCustomers(); + } + + @RequestMapping(value = "/customers/{id}", method = RequestMethod.GET) + public ResponseEntity getCustomerById(@PathVariable Long id){ + return customerService.getCustomerById(id); + } + + @RequestMapping(value = "/accounts/{accountId}/customer", method = RequestMethod.GET) + public ResponseEntity> getCustomer(@PathVariable Long accountId, @RequestBody Account account){ + return customerService.getCustomerOfAccount(account); + } + + @RequestMapping(value = "/customers", method = RequestMethod.POST) + public ResponseEntity createCustomer(@RequestBody Customer customer){ + return customerService.createCustomer(customer); + } + + @RequestMapping(value = "/customers/{id}", method = RequestMethod.PUT) + public ResponseEntity updateCustomer(@PathVariable Long id, @RequestBody Customer customer){ + return customerService.updateCustomer(customer); + } } diff --git a/src/main/java/io/zipcoder/repository/CustomerRepository.java b/src/main/java/io/zipcoder/repository/CustomerRepository.java index fa6d98f..629cf38 100644 --- a/src/main/java/io/zipcoder/repository/CustomerRepository.java +++ b/src/main/java/io/zipcoder/repository/CustomerRepository.java @@ -1,7 +1,11 @@ package io.zipcoder.repository; +import io.zipcoder.domain.Account; import io.zipcoder.domain.Customer; +import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; public interface CustomerRepository extends CrudRepository { + @Query(value ="SELECT * WHERE customer = ?", nativeQuery = true) + public Iterable findCustomerOfAccount(Account account); } diff --git a/src/main/java/io/zipcoder/service/CustomerService.java b/src/main/java/io/zipcoder/service/CustomerService.java index bca5ac6..82c6062 100644 --- a/src/main/java/io/zipcoder/service/CustomerService.java +++ b/src/main/java/io/zipcoder/service/CustomerService.java @@ -1,8 +1,60 @@ package io.zipcoder.service; +import io.zipcoder.domain.Account; +import io.zipcoder.domain.Customer; +import io.zipcoder.repository.AccountRepository; +import io.zipcoder.repository.CustomerRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; + +import java.net.URI; @Service public class CustomerService { + @Autowired + private CustomerRepository customerRepository; + + public CustomerService(){} + + public CustomerService(CustomerRepository customerRepository){ + this.customerRepository = customerRepository; + } + + public ResponseEntity> getAllCustomers(){ + Iterable accounts = customerRepository.findAll(); + return new ResponseEntity<>(accounts, HttpStatus.OK); + } + + public ResponseEntity getCustomerById(Long id){ + Customer customer = customerRepository.findOne(id); + return new ResponseEntity<>(customer, HttpStatus.OK); + } + + public ResponseEntity> getCustomerOfAccount(Account account){ + Iterable accounts = customerRepository.findCustomerOfAccount(account); + return new ResponseEntity<>(accounts, HttpStatus.OK); + } + + public ResponseEntity createCustomer(Customer customer){ + customer = customerRepository.save(customer); + URI newAccountUri = ServletUriComponentsBuilder + .fromCurrentRequest() + .path("/{id}") + .buildAndExpand(customer.getId()) + .toUri(); + HttpHeaders responseHeaders = new HttpHeaders(); + responseHeaders.setLocation(newAccountUri); + return new ResponseEntity<>(null, responseHeaders, HttpStatus.CREATED); + } + + public ResponseEntity updateCustomer(Customer customer){ + Customer customer1 = customerRepository.save(customer); + return new ResponseEntity<>(HttpStatus.OK); + } + } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 33af2dc..23a6c49 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,4 +1,4 @@ -spring.jpa.hibernate.ddl-auto=create -spring.datasource.url=jdbc:mysql://localhost:3306/bank_project -spring.datasource.username=ourgroup -spring.datasource.password=ThePassword +#spring.jpa.hibernate.ddl-auto=create +#spring.datasource.url=jdbc:mysql://localhost:3306/bank_project +#spring.datasource.username=ourgroup +#spring.datasource.password=ThePassword From 6c0dae91dd1a436bf8f338a9027e472bc37552f3 Mon Sep 17 00:00:00 2001 From: Luis Romero Date: Fri, 13 Apr 2018 18:48:21 -0400 Subject: [PATCH 12/30] Friday 04/13 648pm --- .../zipcoder/controller/BillController.java | 40 +++++++++---------- src/main/java/io/zipcoder/domain/Bill.java | 8 +--- .../java/io/zipcoder/service/BillService.java | 15 +++++-- 3 files changed, 32 insertions(+), 31 deletions(-) diff --git a/src/main/java/io/zipcoder/controller/BillController.java b/src/main/java/io/zipcoder/controller/BillController.java index 7bc0814..09b17ba 100644 --- a/src/main/java/io/zipcoder/controller/BillController.java +++ b/src/main/java/io/zipcoder/controller/BillController.java @@ -1,18 +1,14 @@ package io.zipcoder.controller; import io.zipcoder.domain.Bill; -import io.zipcoder.repository.BillRepository; import io.zipcoder.service.BillService; 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; -import java.util.Iterator; - @RestController public class BillController { @@ -26,29 +22,29 @@ public BillController(BillService billService) { } @RequestMapping(value="/accounts/{accountId}/bills", method= RequestMethod.GET) - public ResponseEntity> getAllBillsForSpecificAccount(Account account) { - return billService.getAllBillsForSpecificAccount(account); + public ResponseEntity> getAllBillsForAccount(@PathVariable Long accountId) { + return billService.getAllBillsForAccount(); // I don't need to pass accountId to billService method } @RequestMapping(value="/bills/{billId}", method= RequestMethod.GET) - public ResponseEntity getBillById(@PathVariable Long id) { - return billService.getBillById(id); - } - - @RequestMapping(value="/customers/{customerId}/bills", method= RequestMethod.GET) - public ResponseEntity> getAllBillsForSpecificAccount(Account account) { - return billService.getAllBillsForSpecificAccount(Account account); - } - - @RequestMapping(value="/accounts/{accountId}/bills", method= RequestMethod.GET) - public ResponseEntity> getAllBillsForSpecificAccount(Account account) { - return billService.getAllBillsForSpecificAccount(Account account); + public ResponseEntity getBillById(@PathVariable Long billId) { + return billService.getBillById(billId); } - @RequestMapping(value="/accounts/{accountId}/bills", method= RequestMethod.GET) - public ResponseEntity> getAllBillsForSpecificAccount(Account account) { - return billService.getAllBillsForSpecificAccount(Account account); - } +// @RequestMapping(value="/customers/{customerId}/bills", method= RequestMethod.GET) +// public ResponseEntity> getAllBillsForCustomer(@PathVariable Customer customerId) { +// return billService.getAllBillsForCustomer(customerId); +// } +// +// @RequestMapping(value="/accounts/{accountId}/bills", method= RequestMethod.GET) +// public ResponseEntity> getAllBillsForAccount(Account account) { +// return billService.getAllBillsForAccount(Account account); +// } +// +// @RequestMapping(value="/accounts/{accountId}/bills", method= RequestMethod.GET) +// public ResponseEntity> getAllBillsForAccount(Account account) { +// return billService.getAllBillsForAccount(Account account); +// } diff --git a/src/main/java/io/zipcoder/domain/Bill.java b/src/main/java/io/zipcoder/domain/Bill.java index 5faa25a..ac80a89 100644 --- a/src/main/java/io/zipcoder/domain/Bill.java +++ b/src/main/java/io/zipcoder/domain/Bill.java @@ -1,9 +1,6 @@ package io.zipcoder.domain; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; +import javax.persistence.*; @Entity public class Bill { @@ -37,6 +34,7 @@ public class Bill { @Column(name = "PAYMENT_AMOUNT") private Double payment_amount; + @ManyToOne @Column(name = "ACCOUNT_ID") private String account_id; @@ -119,6 +117,4 @@ public String getAccount_id() { public void setAccount_id(String account_id) { this.account_id = account_id; } - - } diff --git a/src/main/java/io/zipcoder/service/BillService.java b/src/main/java/io/zipcoder/service/BillService.java index 5e70a12..fcdc878 100644 --- a/src/main/java/io/zipcoder/service/BillService.java +++ b/src/main/java/io/zipcoder/service/BillService.java @@ -19,9 +19,18 @@ public BillService(BillRepository billRepository) { this.billRepository = billRepository; } - public ResponseEntity> getAllBillsForSpecificAccount(Account account) { - Iterable allBillsforSpecificAccount = billRepository.findAll(); - return new ResponseEntity<>(allBillsforSpecificAccount, HttpStatus.OK); + public ResponseEntity> getAllBillsForAccount() { + Iterable allBillsForAccount = billRepository.findAll(); + return new ResponseEntity<>(allBillsForAccount, HttpStatus.OK); } + public ResponseEntity getBillById(Long billId) { + Bill bill = billRepository.findOne(billId); + return new ResponseEntity<>(bill, HttpStatus.OK); + } + +// public ResponseEntity> getAllBillsForCustomer(Customer customerId) { +// Iterable allBillsForCustomer = billRepository.findAll(); +// return new ResponseEntity<>(allBillsForCustomer, HttpStatus.OK); +// } } From aa238effeb2aff24bbb41b0d264f2e7465018012 Mon Sep 17 00:00:00 2001 From: Carolynn Vansant Date: Sat, 14 Apr 2018 15:26:53 -0400 Subject: [PATCH 13/30] started adding mockito testing --- pom.xml | 20 +++++++-- .../java/io/zipcoder/ZcwbankApplication.java | 8 ---- .../io/zipcoder/ZcwbankApplicationTests.java | 1 + .../controllerTest/AccountControllerTest.java | 42 +++++++++++++++++++ .../CustomerControllerTest.java | 41 ++++++++++++++++++ 5 files changed, 100 insertions(+), 12 deletions(-) create mode 100644 src/test/java/io/zipcoder/controllerTest/AccountControllerTest.java create mode 100644 src/test/java/io/zipcoder/controllerTest/CustomerControllerTest.java diff --git a/pom.xml b/pom.xml index 7e96ba8..bb1b117 100644 --- a/pom.xml +++ b/pom.xml @@ -52,16 +52,28 @@ - com.h2database - h2 - compile + org.mockito + mockito-core + 2.18.0 - javax.inject javax.inject 1 + + + org.springframework + spring-test + 4.3.13.RELEASE + test + + + org.springframework.boot + spring-boot-test-autoconfigure + 1.5.9.RELEASE + test + diff --git a/src/main/java/io/zipcoder/ZcwbankApplication.java b/src/main/java/io/zipcoder/ZcwbankApplication.java index 30fddf6..e5d6466 100644 --- a/src/main/java/io/zipcoder/ZcwbankApplication.java +++ b/src/main/java/io/zipcoder/ZcwbankApplication.java @@ -5,8 +5,6 @@ import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; -import org.h2.server.web.WebServlet; - @SpringBootApplication public class ZcwbankApplication { @@ -14,11 +12,5 @@ public static void main(String[] args) { SpringApplication.run(ZcwbankApplication.class, args); } -// @Bean -// ServletRegistrationBean h2servletRegistration(){ -// ServletRegistrationBean registrationBean = new ServletRegistrationBean( new WebServlet()); -// registrationBean.addUrlMappings("/console/*"); -// return registrationBean; -// } } diff --git a/src/test/java/io/zipcoder/ZcwbankApplicationTests.java b/src/test/java/io/zipcoder/ZcwbankApplicationTests.java index 846d527..26aac95 100644 --- a/src/test/java/io/zipcoder/ZcwbankApplicationTests.java +++ b/src/test/java/io/zipcoder/ZcwbankApplicationTests.java @@ -1,5 +1,6 @@ package io.zipcoder; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; diff --git a/src/test/java/io/zipcoder/controllerTest/AccountControllerTest.java b/src/test/java/io/zipcoder/controllerTest/AccountControllerTest.java new file mode 100644 index 0000000..faf9155 --- /dev/null +++ b/src/test/java/io/zipcoder/controllerTest/AccountControllerTest.java @@ -0,0 +1,42 @@ +package io.zipcoder.controllerTest; + +import io.zipcoder.controller.AccountController; + +import io.zipcoder.service.AccountService; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.*; +import org.mockito.MockitoAnnotations; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.OverrideAutoConfiguration; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; + +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.internal.verification.VerificationModeFactory.times; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +@RunWith(SpringRunner.class) +@WebMvcTest(AccountController.class) +public class AccountControllerTest { + + @Autowired + private MockMvc mvc; + + @MockBean + private AccountService accountService; + + @Before + public void setup(){ + + } + +} diff --git a/src/test/java/io/zipcoder/controllerTest/CustomerControllerTest.java b/src/test/java/io/zipcoder/controllerTest/CustomerControllerTest.java new file mode 100644 index 0000000..ffe01d6 --- /dev/null +++ b/src/test/java/io/zipcoder/controllerTest/CustomerControllerTest.java @@ -0,0 +1,41 @@ +package io.zipcoder.controllerTest; + +import io.zipcoder.controller.CustomerController; + +import io.zipcoder.service.CustomerService; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.*; +import org.mockito.MockitoAnnotations; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.OverrideAutoConfiguration; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; + +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.internal.verification.VerificationModeFactory.times; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +@RunWith(SpringRunner.class) +@WebMvcTest(CustomerController.class) +public class CustomerControllerTest { + + @Autowired + private MockMvc mvc; + + @MockBean + private CustomerService customerService; + + @Before + public void setup(){ + + } +} From 005aa199de8e61b43002b614f71d9c7e39e44e4c Mon Sep 17 00:00:00 2001 From: Luis Romero Date: Sat, 14 Apr 2018 16:00:12 -0400 Subject: [PATCH 14/30] added @JoinColumn to accountId, changed accountID, adding getAllBillsForCustomer method --- .../zipcoder/controller/BillController.java | 10 ++++----- src/main/java/io/zipcoder/domain/Bill.java | 22 ++++++++++++++----- .../java/io/zipcoder/service/BillService.java | 8 +++---- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/main/java/io/zipcoder/controller/BillController.java b/src/main/java/io/zipcoder/controller/BillController.java index 09b17ba..79d3d32 100644 --- a/src/main/java/io/zipcoder/controller/BillController.java +++ b/src/main/java/io/zipcoder/controller/BillController.java @@ -31,11 +31,11 @@ public ResponseEntity getBillById(@PathVariable Long billId) { return billService.getBillById(billId); } -// @RequestMapping(value="/customers/{customerId}/bills", method= RequestMethod.GET) -// public ResponseEntity> getAllBillsForCustomer(@PathVariable Customer customerId) { -// return billService.getAllBillsForCustomer(customerId); -// } -// + @RequestMapping(value="/customers/{customerId}/bills", method= RequestMethod.GET) + public ResponseEntity> getAllBillsForCustomer(@PathVariable Long customerId) { + return billService.getAllBillsForCustomer(); + } + // @RequestMapping(value="/accounts/{accountId}/bills", method= RequestMethod.GET) // public ResponseEntity> getAllBillsForAccount(Account account) { // return billService.getAllBillsForAccount(Account account); diff --git a/src/main/java/io/zipcoder/domain/Bill.java b/src/main/java/io/zipcoder/domain/Bill.java index ac80a89..ce91e9d 100644 --- a/src/main/java/io/zipcoder/domain/Bill.java +++ b/src/main/java/io/zipcoder/domain/Bill.java @@ -35,8 +35,9 @@ public class Bill { private Double payment_amount; @ManyToOne - @Column(name = "ACCOUNT_ID") - private String account_id; + @JoinColumn(name = "ACCOUNT_ID") +// private String account_id; + private Account account; public Long getId() { return id; @@ -110,11 +111,20 @@ public void setPayment_amount(Double payment_amount) { this.payment_amount = payment_amount; } - public String getAccount_id() { - return account_id; +// public String getAccount_id() { +// return account_id; +// } +// +// public void setAccount_id(String account_id) { +// this.account_id = account_id; +// } + + public Account getAccount() { + return this.account; } - public void setAccount_id(String account_id) { - this.account_id = account_id; + public void setAccount(Account account) { + this.account = account; } + } diff --git a/src/main/java/io/zipcoder/service/BillService.java b/src/main/java/io/zipcoder/service/BillService.java index fcdc878..855ab77 100644 --- a/src/main/java/io/zipcoder/service/BillService.java +++ b/src/main/java/io/zipcoder/service/BillService.java @@ -29,8 +29,8 @@ public ResponseEntity getBillById(Long billId) { return new ResponseEntity<>(bill, HttpStatus.OK); } -// public ResponseEntity> getAllBillsForCustomer(Customer customerId) { -// Iterable allBillsForCustomer = billRepository.findAll(); -// return new ResponseEntity<>(allBillsForCustomer, HttpStatus.OK); -// } + public ResponseEntity> getAllBillsForCustomer() { + Iterable allBillsForCustomer = billRepository.findAll(); + return new ResponseEntity<>(allBillsForCustomer, HttpStatus.OK); + } } From 3b2bb2fce0296e4c6d61e6e7659041d6560a34b2 Mon Sep 17 00:00:00 2001 From: Luis Romero Date: Sat, 14 Apr 2018 16:41:49 -0400 Subject: [PATCH 15/30] finished POST method, need to test --- .../zipcoder/controller/BillController.java | 21 +++++++------------ .../java/io/zipcoder/service/BillService.java | 17 +++++++++++++++ 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/main/java/io/zipcoder/controller/BillController.java b/src/main/java/io/zipcoder/controller/BillController.java index 79d3d32..a87c6e1 100644 --- a/src/main/java/io/zipcoder/controller/BillController.java +++ b/src/main/java/io/zipcoder/controller/BillController.java @@ -4,10 +4,7 @@ import io.zipcoder.service.BillService; import org.springframework.beans.factory.annotation.Autowired; 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; +import org.springframework.web.bind.annotation.*; @RestController public class BillController { @@ -36,16 +33,14 @@ public ResponseEntity> getAllBillsForCustomer(@PathVariable Long return billService.getAllBillsForCustomer(); } -// @RequestMapping(value="/accounts/{accountId}/bills", method= RequestMethod.GET) -// public ResponseEntity> getAllBillsForAccount(Account account) { -// return billService.getAllBillsForAccount(Account account); -// } -// -// @RequestMapping(value="/accounts/{accountId}/bills", method= RequestMethod.GET) -// public ResponseEntity> getAllBillsForAccount(Account account) { -// return billService.getAllBillsForAccount(Account account); -// } + @RequestMapping(value="/accounts/{accountId}/bills", method = RequestMethod.POST) + public ResponseEntity createBill(@PathVariable Long accountId, @RequestBody Bill bill) { + return billService.createBill(bill); + } +// @RequestMapping(value = "", method = RequestMethod.PUT) +// public ResponseEntity +// } diff --git a/src/main/java/io/zipcoder/service/BillService.java b/src/main/java/io/zipcoder/service/BillService.java index 855ab77..740891f 100644 --- a/src/main/java/io/zipcoder/service/BillService.java +++ b/src/main/java/io/zipcoder/service/BillService.java @@ -3,9 +3,13 @@ import io.zipcoder.domain.Bill; import io.zipcoder.repository.BillRepository; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; + +import java.net.URI; @Service public class BillService { @@ -33,4 +37,17 @@ public ResponseEntity> getAllBillsForCustomer() { Iterable allBillsForCustomer = billRepository.findAll(); return new ResponseEntity<>(allBillsForCustomer, HttpStatus.OK); } + + public ResponseEntity createBill(Bill bill) { + URI newBillUri = ServletUriComponentsBuilder + .fromCurrentRequest() + .path("/{id}") + .buildAndExpand(bill.getId()) + .toUri(); + HttpHeaders responseHeaders = new HttpHeaders(); + responseHeaders.setLocation(newBillUri); + return new ResponseEntity<>(null, responseHeaders, HttpStatus.CREATED); + } + + } From a9c8238d7cbc9d5fbb997f49e43ba620f966ddf1 Mon Sep 17 00:00:00 2001 From: Carolynn Vansant Date: Sat, 14 Apr 2018 16:42:05 -0400 Subject: [PATCH 16/30] all controller methods working in postman, started creating mockito tests --- pom.xml | 6 +++++- .../java/io/zipcoder/controller/AccountController.java | 6 +++--- .../java/io/zipcoder/controller/CustomerController.java | 4 ++-- src/main/java/io/zipcoder/domain/AccountType.java | 7 ++++++- .../java/io/zipcoder/repository/AccountRepository.java | 2 -- .../java/io/zipcoder/repository/CustomerRepository.java | 3 +-- src/main/java/io/zipcoder/service/AccountService.java | 3 ++- src/main/java/io/zipcoder/service/CustomerService.java | 6 +++--- src/test/java/io/zipcoder/domainTest/AccountTest.java | 4 ++++ src/test/java/io/zipcoder/domainTest/AddressTest.java | 4 ++++ src/test/java/io/zipcoder/domainTest/CustomerTest.java | 4 ++++ 11 files changed, 34 insertions(+), 15 deletions(-) create mode 100644 src/test/java/io/zipcoder/domainTest/AccountTest.java create mode 100644 src/test/java/io/zipcoder/domainTest/AddressTest.java create mode 100644 src/test/java/io/zipcoder/domainTest/CustomerTest.java diff --git a/pom.xml b/pom.xml index bb1b117..7163eac 100644 --- a/pom.xml +++ b/pom.xml @@ -50,7 +50,11 @@ mysql-connector-java 5.1.6 - + + com.h2database + h2 + compile + org.mockito mockito-core diff --git a/src/main/java/io/zipcoder/controller/AccountController.java b/src/main/java/io/zipcoder/controller/AccountController.java index 2c92f0c..2d07f91 100644 --- a/src/main/java/io/zipcoder/controller/AccountController.java +++ b/src/main/java/io/zipcoder/controller/AccountController.java @@ -24,12 +24,12 @@ public ResponseEntity getAllAccounts(){ } @RequestMapping(value = "/accounts/{accountId}", method = RequestMethod.GET) - public ResponseEntity getAccountById(@PathVariable Long id){ - return accountService.getAccountById(id); + public ResponseEntity getAccountById(@PathVariable Long accountId){ + return accountService.getAccountById(accountId); } @RequestMapping(value = "/customers/{customerId}/accounts", method = RequestMethod.GET) - public ResponseEntity getAccountsForCustomer(@PathVariable Long customerId, @RequestBody Customer customer){ + public ResponseEntity getAccountsForCustomer(@PathVariable Long customerId, Customer customer){ return accountService.getAccountsOfCustomer(customer); } diff --git a/src/main/java/io/zipcoder/controller/CustomerController.java b/src/main/java/io/zipcoder/controller/CustomerController.java index 6b1b6c6..8a29a91 100644 --- a/src/main/java/io/zipcoder/controller/CustomerController.java +++ b/src/main/java/io/zipcoder/controller/CustomerController.java @@ -30,8 +30,8 @@ public ResponseEntity getCustomerById(@PathVariable Long id){ } @RequestMapping(value = "/accounts/{accountId}/customer", method = RequestMethod.GET) - public ResponseEntity> getCustomer(@PathVariable Long accountId, @RequestBody Account account){ - return customerService.getCustomerOfAccount(account); + public ResponseEntity> getCustomer(@PathVariable Long accountId){ + return customerService.getCustomerOfAccount(); } @RequestMapping(value = "/customers", method = RequestMethod.POST) diff --git a/src/main/java/io/zipcoder/domain/AccountType.java b/src/main/java/io/zipcoder/domain/AccountType.java index 91b3785..437bbfe 100644 --- a/src/main/java/io/zipcoder/domain/AccountType.java +++ b/src/main/java/io/zipcoder/domain/AccountType.java @@ -1,5 +1,10 @@ package io.zipcoder.domain; public enum AccountType { -SAVINGS, CHECKING, CREDIT; +SAVINGS("savings"), CHECKING("checking"), CREDIT("credit"); + +private String type; +AccountType(String type){ + this.type = type; +} } diff --git a/src/main/java/io/zipcoder/repository/AccountRepository.java b/src/main/java/io/zipcoder/repository/AccountRepository.java index b39369a..e4fedfb 100644 --- a/src/main/java/io/zipcoder/repository/AccountRepository.java +++ b/src/main/java/io/zipcoder/repository/AccountRepository.java @@ -7,6 +7,4 @@ public interface AccountRepository extends CrudRepository { - @Query(value ="SELECT * WHERE customer = ?", nativeQuery = true) - public Iterable findAccountsForCustomer(Customer customer); } diff --git a/src/main/java/io/zipcoder/repository/CustomerRepository.java b/src/main/java/io/zipcoder/repository/CustomerRepository.java index 629cf38..c0ea981 100644 --- a/src/main/java/io/zipcoder/repository/CustomerRepository.java +++ b/src/main/java/io/zipcoder/repository/CustomerRepository.java @@ -6,6 +6,5 @@ import org.springframework.data.repository.CrudRepository; public interface CustomerRepository extends CrudRepository { - @Query(value ="SELECT * WHERE customer = ?", nativeQuery = true) - public Iterable findCustomerOfAccount(Account account); + } diff --git a/src/main/java/io/zipcoder/service/AccountService.java b/src/main/java/io/zipcoder/service/AccountService.java index 41a1cf0..a202e1d 100644 --- a/src/main/java/io/zipcoder/service/AccountService.java +++ b/src/main/java/io/zipcoder/service/AccountService.java @@ -35,11 +35,12 @@ public ResponseEntity getAccountById(Long id){ } public ResponseEntity getAccountsOfCustomer(Customer customer){ - Iterable accounts = accountRepository.findAccountsForCustomer(customer); + Iterable accounts = accountRepository.findAll(); return new ResponseEntity<>(accounts, HttpStatus.OK); } public ResponseEntity createAccount(Account account){ + account = accountRepository.save(account); URI newAccountUri = ServletUriComponentsBuilder .fromCurrentRequest() .path("/{id}") diff --git a/src/main/java/io/zipcoder/service/CustomerService.java b/src/main/java/io/zipcoder/service/CustomerService.java index 82c6062..6d7bdb7 100644 --- a/src/main/java/io/zipcoder/service/CustomerService.java +++ b/src/main/java/io/zipcoder/service/CustomerService.java @@ -35,9 +35,9 @@ public ResponseEntity getCustomerById(Long id){ return new ResponseEntity<>(customer, HttpStatus.OK); } - public ResponseEntity> getCustomerOfAccount(Account account){ - Iterable accounts = customerRepository.findCustomerOfAccount(account); - return new ResponseEntity<>(accounts, HttpStatus.OK); + public ResponseEntity> getCustomerOfAccount(){ + Iterable customer = customerRepository.findAll(); + return new ResponseEntity<>(customer, HttpStatus.OK); } public ResponseEntity createCustomer(Customer customer){ diff --git a/src/test/java/io/zipcoder/domainTest/AccountTest.java b/src/test/java/io/zipcoder/domainTest/AccountTest.java new file mode 100644 index 0000000..6812bbb --- /dev/null +++ b/src/test/java/io/zipcoder/domainTest/AccountTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.domainTest; + +public class AccountTest { +} diff --git a/src/test/java/io/zipcoder/domainTest/AddressTest.java b/src/test/java/io/zipcoder/domainTest/AddressTest.java new file mode 100644 index 0000000..41a7dea --- /dev/null +++ b/src/test/java/io/zipcoder/domainTest/AddressTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.domainTest; + +public class AddressTest { +} diff --git a/src/test/java/io/zipcoder/domainTest/CustomerTest.java b/src/test/java/io/zipcoder/domainTest/CustomerTest.java new file mode 100644 index 0000000..b8f7320 --- /dev/null +++ b/src/test/java/io/zipcoder/domainTest/CustomerTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.domainTest; + +public class CustomerTest { +} From 1339629e65234b000d3cbda47245d5865d1342a7 Mon Sep 17 00:00:00 2001 From: Luis Romero Date: Sat, 14 Apr 2018 17:30:01 -0400 Subject: [PATCH 17/30] finished adding all http methods --- .../java/io/zipcoder/controller/BillController.java | 13 ++++++++++--- src/main/java/io/zipcoder/service/BillService.java | 9 +++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/zipcoder/controller/BillController.java b/src/main/java/io/zipcoder/controller/BillController.java index a87c6e1..8c41eab 100644 --- a/src/main/java/io/zipcoder/controller/BillController.java +++ b/src/main/java/io/zipcoder/controller/BillController.java @@ -38,9 +38,16 @@ public ResponseEntity createBill(@PathVariable Long accountId, @RequestBody B return billService.createBill(bill); } -// @RequestMapping(value = "", method = RequestMethod.PUT) -// public ResponseEntity -// + @RequestMapping(value = "/bills/{billId}", method = RequestMethod.PUT) + public ResponseEntity updateBill(@PathVariable Long billId, @RequestBody Bill bill) { + return billService.updateBill(bill); + } + + @RequestMapping(value = "/bills/{billId}", method = RequestMethod.DELETE) + public ResponseEntity deleteBill(@PathVariable Long billId) { + return billService.deleteBill(billId); + } + } diff --git a/src/main/java/io/zipcoder/service/BillService.java b/src/main/java/io/zipcoder/service/BillService.java index 740891f..f3513eb 100644 --- a/src/main/java/io/zipcoder/service/BillService.java +++ b/src/main/java/io/zipcoder/service/BillService.java @@ -39,6 +39,7 @@ public ResponseEntity> getAllBillsForCustomer() { } public ResponseEntity createBill(Bill bill) { + bill = billRepository.save(bill); URI newBillUri = ServletUriComponentsBuilder .fromCurrentRequest() .path("/{id}") @@ -49,5 +50,13 @@ public ResponseEntity createBill(Bill bill) { return new ResponseEntity<>(null, responseHeaders, HttpStatus.CREATED); } + public ResponseEntity updateBill(Bill bill) { + Bill bill1 = billRepository.save(bill); + return new ResponseEntity<>(HttpStatus.OK); + } + public ResponseEntity deleteBill(Long billId) { + billRepository.delete(billId); + return new ResponseEntity<>(HttpStatus.OK); + } } From a0129247dd355c3a3a9d56ae5d229a58c86988e5 Mon Sep 17 00:00:00 2001 From: PeterMcCormick Date: Sat, 14 Apr 2018 17:31:04 -0400 Subject: [PATCH 18/30] Save before pull down and merge --- src/main/java/io/zipcoder/service/WithdrawalService.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/main/java/io/zipcoder/service/WithdrawalService.java b/src/main/java/io/zipcoder/service/WithdrawalService.java index 426260e..cd4ee3b 100644 --- a/src/main/java/io/zipcoder/service/WithdrawalService.java +++ b/src/main/java/io/zipcoder/service/WithdrawalService.java @@ -1,6 +1,5 @@ package io.zipcoder.service; -import io.zipcoder.domain.Withdrawal; import io.zipcoder.repository.WithdrawalRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -15,8 +14,4 @@ public class WithdrawalService { public WithdrawalService(WithdrawalRepository withdrawalRepository) { this.withdrawalRepository = withdrawalRepository; } - - public Withdrawal getWithdrawalByWithdrawalId(Long id) { - this - } } From 3cc8a7a52219f7a3687be9fefe4016afa52b340f Mon Sep 17 00:00:00 2001 From: Luis Romero Date: Sat, 14 Apr 2018 17:57:15 -0400 Subject: [PATCH 19/30] added junit dependency --- pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pom.xml b/pom.xml index 7163eac..84a3e94 100644 --- a/pom.xml +++ b/pom.xml @@ -25,6 +25,12 @@ + + junit + junit + 4.12 + test + org.springframework.boot spring-boot-starter-web From 58de2a22dba77df40207863d223d5eb98797021b Mon Sep 17 00:00:00 2001 From: Carolynn Vansant Date: Sat, 14 Apr 2018 18:06:36 -0400 Subject: [PATCH 20/30] added more test classes --- src/main/java/io/zipcoder/controller/AccountController.java | 1 + src/main/java/io/zipcoder/domain/Customer.java | 4 ++-- src/main/java/io/zipcoder/service/AccountService.java | 1 + .../io/zipcoder/repositoryTest/AccountRepositoryTest.java | 4 ++++ .../io/zipcoder/repositoryTest/CustomerRepositoryTest.java | 4 ++++ src/test/java/io/zipcoder/serviceTest/AccountServiceTest.java | 4 ++++ .../java/io/zipcoder/serviceTest/CustomerServiceTest.java | 4 ++++ 7 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 src/test/java/io/zipcoder/repositoryTest/AccountRepositoryTest.java create mode 100644 src/test/java/io/zipcoder/repositoryTest/CustomerRepositoryTest.java create mode 100644 src/test/java/io/zipcoder/serviceTest/AccountServiceTest.java create mode 100644 src/test/java/io/zipcoder/serviceTest/CustomerServiceTest.java diff --git a/src/main/java/io/zipcoder/controller/AccountController.java b/src/main/java/io/zipcoder/controller/AccountController.java index 2d07f91..52527f6 100644 --- a/src/main/java/io/zipcoder/controller/AccountController.java +++ b/src/main/java/io/zipcoder/controller/AccountController.java @@ -14,6 +14,7 @@ public class AccountController { @Autowired private AccountService accountService; + public AccountController(AccountService accountService){ this.accountService = accountService; } diff --git a/src/main/java/io/zipcoder/domain/Customer.java b/src/main/java/io/zipcoder/domain/Customer.java index 2d15b37..b6a0715 100644 --- a/src/main/java/io/zipcoder/domain/Customer.java +++ b/src/main/java/io/zipcoder/domain/Customer.java @@ -19,10 +19,10 @@ public class Customer { private String last_name; @OneToMany(cascade = CascadeType.ALL) - @JoinColumn(name = "CUSTOMER_ID") - @OrderBy + @Column(name= "ADDRESSES") private Set
address; + public Long getId() { return id; } diff --git a/src/main/java/io/zipcoder/service/AccountService.java b/src/main/java/io/zipcoder/service/AccountService.java index a202e1d..0ae74cc 100644 --- a/src/main/java/io/zipcoder/service/AccountService.java +++ b/src/main/java/io/zipcoder/service/AccountService.java @@ -18,6 +18,7 @@ public class AccountService { @Autowired private AccountRepository accountRepository; + public AccountService(){} public AccountService(AccountRepository accountRepository){ diff --git a/src/test/java/io/zipcoder/repositoryTest/AccountRepositoryTest.java b/src/test/java/io/zipcoder/repositoryTest/AccountRepositoryTest.java new file mode 100644 index 0000000..f4f2775 --- /dev/null +++ b/src/test/java/io/zipcoder/repositoryTest/AccountRepositoryTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.repositoryTest; + +public class AccountRepositoryTest { +} diff --git a/src/test/java/io/zipcoder/repositoryTest/CustomerRepositoryTest.java b/src/test/java/io/zipcoder/repositoryTest/CustomerRepositoryTest.java new file mode 100644 index 0000000..871a7c7 --- /dev/null +++ b/src/test/java/io/zipcoder/repositoryTest/CustomerRepositoryTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.repositoryTest; + +public class CustomerRepositoryTest { +} diff --git a/src/test/java/io/zipcoder/serviceTest/AccountServiceTest.java b/src/test/java/io/zipcoder/serviceTest/AccountServiceTest.java new file mode 100644 index 0000000..84980fe --- /dev/null +++ b/src/test/java/io/zipcoder/serviceTest/AccountServiceTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.serviceTest; + +public class AccountServiceTest { +} diff --git a/src/test/java/io/zipcoder/serviceTest/CustomerServiceTest.java b/src/test/java/io/zipcoder/serviceTest/CustomerServiceTest.java new file mode 100644 index 0000000..f5016ef --- /dev/null +++ b/src/test/java/io/zipcoder/serviceTest/CustomerServiceTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.serviceTest; + +public class CustomerServiceTest { +} From 61ebb6850b96e9639647407dd042690dabaa9fa8 Mon Sep 17 00:00:00 2001 From: PeterMcCormick Date: Sat, 14 Apr 2018 19:02:35 -0400 Subject: [PATCH 21/30] Service Methods Created --- .../controller/DepositController.java | 40 ++++++++-------- .../controller/WithdrawalController.java | 42 ++++++++-------- src/main/java/io/zipcoder/domain/Deposit.java | 2 +- src/main/java/io/zipcoder/domain/Medium.java | 2 +- .../java/io/zipcoder/domain/Withdrawal.java | 2 +- .../io/zipcoder/service/DepositService.java | 48 +++++++++++++++++++ .../zipcoder/service/WithdrawalService.java | 45 ++++++++++++++++- 7 files changed, 133 insertions(+), 48 deletions(-) diff --git a/src/main/java/io/zipcoder/controller/DepositController.java b/src/main/java/io/zipcoder/controller/DepositController.java index 5fb3341..bd48b62 100644 --- a/src/main/java/io/zipcoder/controller/DepositController.java +++ b/src/main/java/io/zipcoder/controller/DepositController.java @@ -2,11 +2,10 @@ import io.zipcoder.domain.Deposit; +import io.zipcoder.service.DepositService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -14,36 +13,35 @@ public class DepositController { @Autowired - DepositController depositController; + private DepositService depositService; + + public DepositController(DepositService depositService) { + this.depositService = depositService; + } @RequestMapping(value="/accounts/{accountId}/deposits", method = RequestMethod.GET) - @ResponseBody - public List getDepositsByAccountId(Long id) { - return depositController.getDepositsByAccountId(id); + public ResponseEntity getDepositsByAccount(@PathVariable Long accountId) { + return depositService.getDepositsByAccount(accountId); } @RequestMapping(value="/deposits/{depositId}", method = RequestMethod.GET) - @ResponseBody - public Deposit getDeposit(Long id) { - return depositController.getDeposit(id); + public ResponseEntity getDeposit(@PathVariable Long depositId) { + return depositService.getDeposit(depositId); } @RequestMapping(value="/accounts/{accountId}/deposits", method = RequestMethod.POST) - @ResponseBody - public Deposit postDeposit(Long id) { - return depositController.postDeposit(id); + public ResponseEntity createDeposit(@PathVariable Long accountId, @RequestBody Deposit deposit) { + return depositService.createDeposit(deposit); } - @RequestMapping(value="/deposits/{depositId}", method = RequestMethod.PATCH) - @ResponseBody - public Deposit updateDeposit(Long id) { - return depositController.updateDeposit(id); + @RequestMapping(value="/deposits/{depositId}", method = RequestMethod.PUT) + public ResponseEntity updateDeposit(@PathVariable Long depositId, @RequestBody Deposit deposit) { + return depositService.updateDeposit(deposit); } @RequestMapping(value="/deposits/{depositId}", method = RequestMethod.DELETE) - @ResponseBody - public Deposit deleteDeposit(Long id) { - return depositController.deleteDeposit(id); + public ResponseEntity deleteDeposit(@PathVariable Long depositId) { + return depositService.deleteDeposit(depositId); } } diff --git a/src/main/java/io/zipcoder/controller/WithdrawalController.java b/src/main/java/io/zipcoder/controller/WithdrawalController.java index 17f1f87..5b2eaa5 100644 --- a/src/main/java/io/zipcoder/controller/WithdrawalController.java +++ b/src/main/java/io/zipcoder/controller/WithdrawalController.java @@ -1,11 +1,10 @@ package io.zipcoder.controller; import io.zipcoder.domain.Withdrawal; +import io.zipcoder.service.WithdrawalService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -13,35 +12,34 @@ public class WithdrawalController { @Autowired - private WithdrawalController withdrawalController; + private WithdrawalService withdrawalService; + + public WithdrawalController(WithdrawalService withdrawalService) { + this.withdrawalService = withdrawalService; + } @RequestMapping(value="accounts/{acountId}/withdrawals", method = RequestMethod.GET) - @ResponseBody - public List getWithdrawalsByAccount(Long id) { - return withdrawalController.getWithdrawalsByAccount(id); + public ResponseEntity getWithdrawalsByAccount(@PathVariable Long accountId) { + return withdrawalService.getWithdrawalsByAccount(accountId); } @RequestMapping(value="/withdrawals/{withdrawalId}", method = RequestMethod.GET) - @ResponseBody - public Withdrawal getWithdrawal(Long id) { - return withdrawalController.getWithdrawal(id); + public ResponseEntity getWithdrawal(@PathVariable Long withdrawalId) { + return withdrawalService.getWithdrawal(withdrawalId); } @RequestMapping(value="/accounts/{accountId}/withdrawals", method = RequestMethod.POST) - @ResponseBody - public Withdrawal postWithdrawal(Long id) { - return withdrawalController.postWithdrawal(id); + public ResponseEntity createWithdrawal(@PathVariable Long accountId, @RequestBody Withdrawal withdrawal) { + return withdrawalService.createWithdrawal(withdrawal); } - @RequestMapping(value="/withdrawals/{withdrawalsId}" , method = RequestMethod.PATCH) - @ResponseBody - public Withdrawal updateWithdrawal(Long id) { - return withdrawalController.updateWithdrawal(id); + @RequestMapping(value="/withdrawals/{withdrawalId}" , method = RequestMethod.PUT) + public ResponseEntity updateWithdrawal(@PathVariable Long withdrawalId, @RequestBody Withdrawal withdrawal) { + return withdrawalService.updateWithdrawal(withdrawal); } - @RequestMapping(value="/withdrawals/{withdrawalsId}", method = RequestMethod.DELETE) - @ResponseBody - public Withdrawal deleteWithdrawal(Long id) { - return withdrawalController.deleteWithdrawal(id); + @RequestMapping(value="/withdrawals/{withdrawalId}", method = RequestMethod.DELETE) + public ResponseEntity deleteWithdrawal(@PathVariable Long withdrawalId) { + return withdrawalService.deleteWithdrawal(withdrawalId); } } diff --git a/src/main/java/io/zipcoder/domain/Deposit.java b/src/main/java/io/zipcoder/domain/Deposit.java index 9645721..3a4a333 100644 --- a/src/main/java/io/zipcoder/domain/Deposit.java +++ b/src/main/java/io/zipcoder/domain/Deposit.java @@ -7,7 +7,7 @@ public class Deposit { @Id @GeneratedValue(strategy = GenerationType.AUTO) - @Column(name= "ID") + @Column(name= "DEPOSIT_ID") private Long id; @Enumerated(EnumType.STRING) diff --git a/src/main/java/io/zipcoder/domain/Medium.java b/src/main/java/io/zipcoder/domain/Medium.java index 642b312..c370bda 100644 --- a/src/main/java/io/zipcoder/domain/Medium.java +++ b/src/main/java/io/zipcoder/domain/Medium.java @@ -1,5 +1,5 @@ package io.zipcoder.domain; public enum Medium { - BALANCES, REWARDS + BALANCE, REWARDS } diff --git a/src/main/java/io/zipcoder/domain/Withdrawal.java b/src/main/java/io/zipcoder/domain/Withdrawal.java index f43130e..85074fd 100644 --- a/src/main/java/io/zipcoder/domain/Withdrawal.java +++ b/src/main/java/io/zipcoder/domain/Withdrawal.java @@ -7,7 +7,7 @@ public class Withdrawal { @Id @GeneratedValue(strategy = GenerationType.AUTO) - @Column(name= "ID") + @Column(name= "WITHDRAWAL_ID") private Long id; @Enumerated(EnumType.STRING) diff --git a/src/main/java/io/zipcoder/service/DepositService.java b/src/main/java/io/zipcoder/service/DepositService.java index a398c06..c1fb522 100644 --- a/src/main/java/io/zipcoder/service/DepositService.java +++ b/src/main/java/io/zipcoder/service/DepositService.java @@ -1,7 +1,55 @@ package io.zipcoder.service; +import io.zipcoder.domain.Deposit; +import io.zipcoder.repository.DepositRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; + +import java.net.URI; + +@Service public class DepositService { + @Autowired + DepositRepository depositRepository; + public DepositService(DepositRepository depositRepository) { + this.depositRepository = depositRepository; + } + + public ResponseEntity> getDepositsByAccount(Long accountId) { + Iterable allDepositsForAccount = depositRepository.findAll(); + return new ResponseEntity<>(allDepositsForAccount, HttpStatus.OK); + } + + public ResponseEntity getDeposit(Long depositId) { + Deposit deposit = depositRepository.findOne(depositId); + return new ResponseEntity<>(deposit, HttpStatus.OK); + } + + public ResponseEntity createDeposit(Deposit deposit) { + deposit = depositRepository.save(deposit); + URI newDepositUri = ServletUriComponentsBuilder + .fromCurrentRequest() + .path("/{id}") + .buildAndExpand(deposit.getId()) + .toUri(); + HttpHeaders responseHeaders = new HttpHeaders(); + responseHeaders.setLocation(newDepositUri); + return new ResponseEntity<>(null, responseHeaders, HttpStatus.CREATED); + } + + public ResponseEntity updateDeposit(Deposit deposit) { + Deposit deposit1 = depositRepository.save(deposit); + return new ResponseEntity<>(HttpStatus.OK); + } + public ResponseEntity deleteDeposit(Long depositId) { + depositRepository.delete(depositId); + return new ResponseEntity<>(HttpStatus.OK); + } } diff --git a/src/main/java/io/zipcoder/service/WithdrawalService.java b/src/main/java/io/zipcoder/service/WithdrawalService.java index cd4ee3b..66854de 100644 --- a/src/main/java/io/zipcoder/service/WithdrawalService.java +++ b/src/main/java/io/zipcoder/service/WithdrawalService.java @@ -1,17 +1,58 @@ package io.zipcoder.service; +import io.zipcoder.domain.Withdrawal; import io.zipcoder.repository.WithdrawalRepository; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; + +import java.net.URI; @Service public class WithdrawalService { + @Autowired + private WithdrawalRepository withdrawalRepository; - WithdrawalRepository withdrawalRepository; + public WithdrawalService() {} - @Autowired public WithdrawalService(WithdrawalRepository withdrawalRepository) { this.withdrawalRepository = withdrawalRepository; } + + public ResponseEntity> getWithdrawalsByAccount(Long accountId) { + Iterable allWithdrawalsForAccount = withdrawalRepository.findAll(); + return new ResponseEntity<>(allWithdrawalsForAccount, HttpStatus.OK); + } + + public ResponseEntity getWithdrawal(Long withdrawalId) { + Withdrawal withdrawal = withdrawalRepository.findOne(withdrawalId); + return new ResponseEntity<>(withdrawal, HttpStatus.OK); + } + + public ResponseEntity createWithdrawal(Withdrawal withdrawal) { + withdrawal = withdrawalRepository.save(withdrawal); + URI newWithdrawalUri = ServletUriComponentsBuilder + .fromCurrentRequest() + .path("/{id}") + .buildAndExpand(withdrawal.getId()) + .toUri(); + HttpHeaders responseHeaders = new HttpHeaders(); + responseHeaders.setLocation(newWithdrawalUri); + return new ResponseEntity<>(null, responseHeaders, HttpStatus.CREATED); + } + + public ResponseEntity updateWithdrawal(Withdrawal withdrawal) { + Withdrawal withdrawal1 = withdrawalRepository.save(withdrawal); + return new ResponseEntity<>(HttpStatus.OK); + } + + public ResponseEntity deleteWithdrawal(Long withdrawalId) { + withdrawalRepository.delete(withdrawalId); + return new ResponseEntity<>(HttpStatus.OK); + } + } From 8c45ecd5d1869cded32a2f32f38687b2b832d3b5 Mon Sep 17 00:00:00 2001 From: Luis Romero Date: Sat, 14 Apr 2018 19:24:59 -0400 Subject: [PATCH 22/30] fixing bill, small stuff --- src/main/java/io/zipcoder/domain/Bill.java | 6 +++++- src/test/java/io/zipcoder/domainTest/BillTest.java | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 src/test/java/io/zipcoder/domainTest/BillTest.java diff --git a/src/main/java/io/zipcoder/domain/Bill.java b/src/main/java/io/zipcoder/domain/Bill.java index ce91e9d..e4856dc 100644 --- a/src/main/java/io/zipcoder/domain/Bill.java +++ b/src/main/java/io/zipcoder/domain/Bill.java @@ -39,6 +39,10 @@ public class Bill { // private String account_id; private Account account; + public Bill() { + + } + public Long getId() { return id; } @@ -120,7 +124,7 @@ public void setPayment_amount(Double payment_amount) { // } public Account getAccount() { - return this.account; + return account; } public void setAccount(Account account) { diff --git a/src/test/java/io/zipcoder/domainTest/BillTest.java b/src/test/java/io/zipcoder/domainTest/BillTest.java new file mode 100644 index 0000000..3964406 --- /dev/null +++ b/src/test/java/io/zipcoder/domainTest/BillTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.domainTest; + +public class BillTest { +} From cdb1491a6a566b7d4375df8112f2aab31afcb339 Mon Sep 17 00:00:00 2001 From: Luis Romero Date: Sat, 14 Apr 2018 19:39:43 -0400 Subject: [PATCH 23/30] adding methods to BillRepository --- src/main/java/io/zipcoder/controller/BillController.java | 4 ++-- src/main/java/io/zipcoder/repository/BillRepository.java | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/zipcoder/controller/BillController.java b/src/main/java/io/zipcoder/controller/BillController.java index 8c41eab..a985b06 100644 --- a/src/main/java/io/zipcoder/controller/BillController.java +++ b/src/main/java/io/zipcoder/controller/BillController.java @@ -19,8 +19,8 @@ public BillController(BillService billService) { } @RequestMapping(value="/accounts/{accountId}/bills", method= RequestMethod.GET) - public ResponseEntity> getAllBillsForAccount(@PathVariable Long accountId) { - return billService.getAllBillsForAccount(); // I don't need to pass accountId to billService method + public ResponseEntity> getAllBillsForAccount(@PathVariable("accountId") Long accountId) { + return billService.getAllBillsForAccount(accountId); // I don't need to pass accountId to billService method } @RequestMapping(value="/bills/{billId}", method= RequestMethod.GET) diff --git a/src/main/java/io/zipcoder/repository/BillRepository.java b/src/main/java/io/zipcoder/repository/BillRepository.java index cdc4357..b0f0795 100644 --- a/src/main/java/io/zipcoder/repository/BillRepository.java +++ b/src/main/java/io/zipcoder/repository/BillRepository.java @@ -6,4 +6,8 @@ @Repository public interface BillRepository extends CrudRepository{ + + Iterable findAllByAccount_Id(Long accountId); + + Iterable findAllByAccount_Customer_Id(Long customerId); } From a427f4e6b0dcf8d77035747a88fd54a6315d54a3 Mon Sep 17 00:00:00 2001 From: Luis Romero Date: Sat, 14 Apr 2018 19:42:51 -0400 Subject: [PATCH 24/30] changing getAllBillsForAccount method --- src/main/java/io/zipcoder/controller/BillController.java | 2 +- src/main/java/io/zipcoder/service/BillService.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/zipcoder/controller/BillController.java b/src/main/java/io/zipcoder/controller/BillController.java index a985b06..2433ebb 100644 --- a/src/main/java/io/zipcoder/controller/BillController.java +++ b/src/main/java/io/zipcoder/controller/BillController.java @@ -20,7 +20,7 @@ public BillController(BillService billService) { @RequestMapping(value="/accounts/{accountId}/bills", method= RequestMethod.GET) public ResponseEntity> getAllBillsForAccount(@PathVariable("accountId") Long accountId) { - return billService.getAllBillsForAccount(accountId); // I don't need to pass accountId to billService method + return billService.getAllBillsForAccount(accountId); } @RequestMapping(value="/bills/{billId}", method= RequestMethod.GET) diff --git a/src/main/java/io/zipcoder/service/BillService.java b/src/main/java/io/zipcoder/service/BillService.java index f3513eb..531085e 100644 --- a/src/main/java/io/zipcoder/service/BillService.java +++ b/src/main/java/io/zipcoder/service/BillService.java @@ -23,8 +23,8 @@ public BillService(BillRepository billRepository) { this.billRepository = billRepository; } - public ResponseEntity> getAllBillsForAccount() { - Iterable allBillsForAccount = billRepository.findAll(); + public ResponseEntity> getAllBillsForAccount(Long accountId) { + Iterable allBillsForAccount = billRepository.findAllByAccount_Id(accountId); return new ResponseEntity<>(allBillsForAccount, HttpStatus.OK); } From 383e96c935acab6f46f993b2169895dede9c724e Mon Sep 17 00:00:00 2001 From: Carolynn Vansant Date: Sat, 14 Apr 2018 20:35:27 -0400 Subject: [PATCH 25/30] really actually all methods in accounts and customers work the way they are supposed to --- .../controller/AccountController.java | 16 +++--- .../controller/CustomerController.java | 13 ++--- src/main/java/io/zipcoder/domain/Account.java | 9 ++-- .../java/io/zipcoder/domain/Customer.java | 13 ++--- .../repository/AccountRepository.java | 2 +- .../io/zipcoder/service/AccountService.java | 35 ++++++------- .../io/zipcoder/service/CustomerService.java | 21 +++++--- .../controllerTest/AccountControllerTest.java | 2 +- .../CustomerControllerTest.java | 25 +++++++++ .../serviceTest/AccountServiceTest.java | 29 +++++++++++ .../serviceTest/CustomerServiceTest.java | 52 +++++++++++++++++++ 11 files changed, 163 insertions(+), 54 deletions(-) diff --git a/src/main/java/io/zipcoder/controller/AccountController.java b/src/main/java/io/zipcoder/controller/AccountController.java index 52527f6..98ff6e6 100644 --- a/src/main/java/io/zipcoder/controller/AccountController.java +++ b/src/main/java/io/zipcoder/controller/AccountController.java @@ -25,27 +25,27 @@ public ResponseEntity getAllAccounts(){ } @RequestMapping(value = "/accounts/{accountId}", method = RequestMethod.GET) - public ResponseEntity getAccountById(@PathVariable Long accountId){ + public ResponseEntity getAccountById(@PathVariable("accountId") Long accountId){ return accountService.getAccountById(accountId); } @RequestMapping(value = "/customers/{customerId}/accounts", method = RequestMethod.GET) - public ResponseEntity getAccountsForCustomer(@PathVariable Long customerId, Customer customer){ - return accountService.getAccountsOfCustomer(customer); + public ResponseEntity getAccountsForCustomer(@PathVariable("customerId") Long customerId){ + return accountService.getAccountsOfCustomer(customerId); } @RequestMapping(value = "/customers/{customerId}/accounts", method = RequestMethod.POST) - public ResponseEntity createAccount(@PathVariable Long customerId, @RequestBody Account account){ - return accountService.createAccount(account); + public ResponseEntity createAccount(@PathVariable ("customerId") Long customerId, @RequestBody Account account){ + return accountService.createAccount(customerId, account); } @RequestMapping(value = "/accounts/{accountId}", method = RequestMethod.PUT) - public ResponseEntity updateAccount(@PathVariable Long accountId, @RequestBody Account account){ - return accountService.updateAccount(account); + public ResponseEntity updateAccount(@PathVariable("accountId") Long accountId, @RequestBody Account account){ + return accountService.updateAccount(account, accountId); } @RequestMapping(value = "/accounts/{accountId}", method = RequestMethod.DELETE) - public ResponseEntity deleteAccount(@PathVariable Long accountId){ + public ResponseEntity deleteAccount(@PathVariable("accountId") Long accountId){ return accountService.deleteAccount(accountId); } } diff --git a/src/main/java/io/zipcoder/controller/CustomerController.java b/src/main/java/io/zipcoder/controller/CustomerController.java index 8a29a91..5e3ec62 100644 --- a/src/main/java/io/zipcoder/controller/CustomerController.java +++ b/src/main/java/io/zipcoder/controller/CustomerController.java @@ -12,9 +12,10 @@ @RestController public class CustomerController { - @Autowired + private CustomerService customerService; + @Autowired public CustomerController(CustomerService customerService){ this.customerService = customerService; } @@ -25,13 +26,13 @@ public ResponseEntity> getAllCustomers(){ } @RequestMapping(value = "/customers/{id}", method = RequestMethod.GET) - public ResponseEntity getCustomerById(@PathVariable Long id){ + public ResponseEntity getCustomerById(@PathVariable("id") Long id){ return customerService.getCustomerById(id); } @RequestMapping(value = "/accounts/{accountId}/customer", method = RequestMethod.GET) - public ResponseEntity> getCustomer(@PathVariable Long accountId){ - return customerService.getCustomerOfAccount(); + public ResponseEntity getCustomer(@PathVariable("accountId") Long accountId){ + return customerService.getCustomerOfAccount(accountId); } @RequestMapping(value = "/customers", method = RequestMethod.POST) @@ -40,7 +41,7 @@ public ResponseEntity createCustomer(@RequestBody Customer customer){ } @RequestMapping(value = "/customers/{id}", method = RequestMethod.PUT) - public ResponseEntity updateCustomer(@PathVariable Long id, @RequestBody Customer customer){ - return customerService.updateCustomer(customer); + public ResponseEntity updateCustomer(@PathVariable("id") Long id, @RequestBody Customer customer){ + return customerService.updateCustomer(customer, id); } } diff --git a/src/main/java/io/zipcoder/domain/Account.java b/src/main/java/io/zipcoder/domain/Account.java index 93bb25b..71166d9 100644 --- a/src/main/java/io/zipcoder/domain/Account.java +++ b/src/main/java/io/zipcoder/domain/Account.java @@ -10,9 +10,8 @@ public class Account { @Column(name ="ACCOUNT_ID") private Long id; - @Enumerated(EnumType.STRING) @Column(name = "ACCOUNT_TYPE") - private AccountType type; + private String type; @Column(name = "NICKNAME") private String nickname; @@ -23,7 +22,7 @@ public class Account { @Column(name="BALANCE") private Double balance; - @ManyToOne + @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "CUSTOMER_ID") private Customer customer; @@ -35,11 +34,11 @@ public void setId(Long id) { this.id = id; } - public AccountType getType() { + public String getType() { return type; } - public void setType(AccountType type) { + public void setType(String type) { this.type = type; } diff --git a/src/main/java/io/zipcoder/domain/Customer.java b/src/main/java/io/zipcoder/domain/Customer.java index b6a0715..dc0e5d8 100644 --- a/src/main/java/io/zipcoder/domain/Customer.java +++ b/src/main/java/io/zipcoder/domain/Customer.java @@ -1,6 +1,7 @@ package io.zipcoder.domain; import javax.persistence.*; +import java.util.List; import java.util.Set; @@ -18,9 +19,9 @@ public class Customer { @Column(name="LAST_NAME") private String last_name; - @OneToMany(cascade = CascadeType.ALL) - @Column(name= "ADDRESSES") - private Set
address; + @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) + @JoinColumn(name = "ADDRESS_ID") + private Set
addresses; public Long getId() { @@ -48,10 +49,10 @@ public void setLast_name(String last_name) { } public Set
getAddress() { - return address; + return addresses; } - public void setAddress(Set
address) { - this.address = address; + public void setAddress(Set
addresses) { + this.addresses = addresses; } } diff --git a/src/main/java/io/zipcoder/repository/AccountRepository.java b/src/main/java/io/zipcoder/repository/AccountRepository.java index e4fedfb..7663599 100644 --- a/src/main/java/io/zipcoder/repository/AccountRepository.java +++ b/src/main/java/io/zipcoder/repository/AccountRepository.java @@ -6,5 +6,5 @@ import org.springframework.data.repository.CrudRepository; public interface AccountRepository extends CrudRepository { - +IterablefindAllByCustomer_Id(Long customerId); } diff --git a/src/main/java/io/zipcoder/service/AccountService.java b/src/main/java/io/zipcoder/service/AccountService.java index 0ae74cc..070bed7 100644 --- a/src/main/java/io/zipcoder/service/AccountService.java +++ b/src/main/java/io/zipcoder/service/AccountService.java @@ -4,6 +4,7 @@ import io.zipcoder.domain.Account; import io.zipcoder.domain.Customer; import io.zipcoder.repository.AccountRepository; +import io.zipcoder.repository.CustomerRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -15,14 +16,14 @@ @Service public class AccountService { - @Autowired - private AccountRepository accountRepository; + private AccountRepository accountRepository; + private CustomerRepository customerRepository; - public AccountService(){} - - public AccountService(AccountRepository accountRepository){ + @Autowired + public AccountService(AccountRepository accountRepository, CustomerRepository customerRepository){ this.accountRepository = accountRepository; + this.customerRepository = customerRepository; } public ResponseEntity getAllAccounts(){ @@ -35,26 +36,22 @@ public ResponseEntity getAccountById(Long id){ return new ResponseEntity<>(account, HttpStatus.OK); } - public ResponseEntity getAccountsOfCustomer(Customer customer){ - Iterable accounts = accountRepository.findAll(); + public ResponseEntity getAccountsOfCustomer(Long customerId){ + Iterable accounts = accountRepository.findAllByCustomer_Id(customerId); return new ResponseEntity<>(accounts, HttpStatus.OK); } - public ResponseEntity createAccount(Account account){ - account = accountRepository.save(account); - URI newAccountUri = ServletUriComponentsBuilder - .fromCurrentRequest() - .path("/{id}") - .buildAndExpand(account.getId()) - .toUri(); - HttpHeaders responseHeaders = new HttpHeaders(); - responseHeaders.setLocation(newAccountUri); - return new ResponseEntity<>(null, responseHeaders, HttpStatus.CREATED); + public ResponseEntity createAccount(Long customerId, Account account){ + Customer customer = customerRepository.findOne(customerId); + account.setCustomer(customer); + Account account1 = accountRepository.save(account); + return new ResponseEntity<>(account1, HttpStatus.CREATED); } - public ResponseEntity updateAccount(Account account){ + public ResponseEntity updateAccount(Account account, Long accountId){ + account.setId(accountId); Account account1 = accountRepository.save(account); - return new ResponseEntity<>(HttpStatus.OK); + return new ResponseEntity<>(account1, HttpStatus.OK); } public ResponseEntity deleteAccount(Long accountId){ diff --git a/src/main/java/io/zipcoder/service/CustomerService.java b/src/main/java/io/zipcoder/service/CustomerService.java index 6d7bdb7..0b1b810 100644 --- a/src/main/java/io/zipcoder/service/CustomerService.java +++ b/src/main/java/io/zipcoder/service/CustomerService.java @@ -16,13 +16,16 @@ @Service public class CustomerService { - @Autowired + private CustomerRepository customerRepository; + private AccountRepository accountRepository; public CustomerService(){} - public CustomerService(CustomerRepository customerRepository){ + @Autowired + public CustomerService(CustomerRepository customerRepository, AccountRepository accountRepository){ this.customerRepository = customerRepository; + this.accountRepository = accountRepository; } public ResponseEntity> getAllCustomers(){ @@ -35,13 +38,14 @@ public ResponseEntity getCustomerById(Long id){ return new ResponseEntity<>(customer, HttpStatus.OK); } - public ResponseEntity> getCustomerOfAccount(){ - Iterable customer = customerRepository.findAll(); + public ResponseEntity getCustomerOfAccount(Long accountId){ + Account account = accountRepository.findOne(accountId); + Customer customer = account.getCustomer(); return new ResponseEntity<>(customer, HttpStatus.OK); } public ResponseEntity createCustomer(Customer customer){ - customer = customerRepository.save(customer); + Customer customer1 = customerRepository.save(customer); URI newAccountUri = ServletUriComponentsBuilder .fromCurrentRequest() .path("/{id}") @@ -49,12 +53,13 @@ public ResponseEntity createCustomer(Customer customer){ .toUri(); HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.setLocation(newAccountUri); - return new ResponseEntity<>(null, responseHeaders, HttpStatus.CREATED); + return new ResponseEntity<>(customer1, responseHeaders, HttpStatus.CREATED); } - public ResponseEntity updateCustomer(Customer customer){ + public ResponseEntity updateCustomer(Customer customer, Long customerId){ + customer.setId(customerId); Customer customer1 = customerRepository.save(customer); - return new ResponseEntity<>(HttpStatus.OK); + return new ResponseEntity<>(customer1, HttpStatus.OK); } } diff --git a/src/test/java/io/zipcoder/controllerTest/AccountControllerTest.java b/src/test/java/io/zipcoder/controllerTest/AccountControllerTest.java index faf9155..b0523b5 100644 --- a/src/test/java/io/zipcoder/controllerTest/AccountControllerTest.java +++ b/src/test/java/io/zipcoder/controllerTest/AccountControllerTest.java @@ -36,7 +36,7 @@ public class AccountControllerTest { @Before public void setup(){ - + MockitoAnnotations.initMocks(this); } } diff --git a/src/test/java/io/zipcoder/controllerTest/CustomerControllerTest.java b/src/test/java/io/zipcoder/controllerTest/CustomerControllerTest.java index ffe01d6..4708538 100644 --- a/src/test/java/io/zipcoder/controllerTest/CustomerControllerTest.java +++ b/src/test/java/io/zipcoder/controllerTest/CustomerControllerTest.java @@ -38,4 +38,29 @@ public class CustomerControllerTest { public void setup(){ } + + @Test + public void testGetAllCustomers(){ + + } + + @Test + public void testGetCustomerById(){ + + } + + @Test + public void testGetCustomer(){ + + } + + @Test + public void testCreateCustomer(){ + + } + + @Test + public void testUpdateCustomer(){ + + } } diff --git a/src/test/java/io/zipcoder/serviceTest/AccountServiceTest.java b/src/test/java/io/zipcoder/serviceTest/AccountServiceTest.java index 84980fe..4113fa6 100644 --- a/src/test/java/io/zipcoder/serviceTest/AccountServiceTest.java +++ b/src/test/java/io/zipcoder/serviceTest/AccountServiceTest.java @@ -1,4 +1,33 @@ package io.zipcoder.serviceTest; +import io.zipcoder.repository.AccountRepository; +import io.zipcoder.service.AccountService; +import io.zipcoder.domain.Account; +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import static org.hamcrest.CoreMatchers.notNullValue; +import static org.mockito.Mockito.*; +import static org.junit.Assert.assertThat; +import static org.hamcrest.CoreMatchers.is; + public class AccountServiceTest { + @Mock + private AccountRepository mockRepo; + + @InjectMocks + private AccountService mockService; + + @Before + public void setUp() throws Exception{ + MockitoAnnotations.initMocks(this); + } + + @Test + public void testGetAllAccounts(){ + + } } diff --git a/src/test/java/io/zipcoder/serviceTest/CustomerServiceTest.java b/src/test/java/io/zipcoder/serviceTest/CustomerServiceTest.java index f5016ef..5ffef39 100644 --- a/src/test/java/io/zipcoder/serviceTest/CustomerServiceTest.java +++ b/src/test/java/io/zipcoder/serviceTest/CustomerServiceTest.java @@ -1,4 +1,56 @@ package io.zipcoder.serviceTest; + +import io.zipcoder.domain.Customer; +import io.zipcoder.repository.CustomerRepository; +import io.zipcoder.service.CustomerService; +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import static org.hamcrest.CoreMatchers.notNullValue; +import static org.mockito.Mockito.*; +import static org.junit.Assert.assertThat; +import static org.hamcrest.CoreMatchers.is; + + public class CustomerServiceTest { + @Mock + private CustomerRepository mockRepo; + + @InjectMocks + private CustomerService mockService; + + @Before + public void setUp() throws Exception{ + MockitoAnnotations.initMocks(this); + } + + @Test + public void testCreateCustomer(){ + + } + + @Test + public void testGetAllCustomers(){ + + } + + @Test + public void testGetCustomerById(){ + + } + + @Test + public void testUpdateCustomer(){ + + } + + @Test + public void testGetCustomerOfAccount(){ + + } + } From 00369944ea0d05d4a4ca475e43f113e4725f0b39 Mon Sep 17 00:00:00 2001 From: Luis Romero Date: Sat, 14 Apr 2018 20:37:04 -0400 Subject: [PATCH 26/30] final before merging --- .../io/zipcoder/controller/BillController.java | 2 +- .../io/zipcoder/repository/BillRepository.java | 2 ++ src/main/java/io/zipcoder/service/BillService.java | 14 +++++++++++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/zipcoder/controller/BillController.java b/src/main/java/io/zipcoder/controller/BillController.java index 2433ebb..23f86fd 100644 --- a/src/main/java/io/zipcoder/controller/BillController.java +++ b/src/main/java/io/zipcoder/controller/BillController.java @@ -24,7 +24,7 @@ public ResponseEntity> getAllBillsForAccount(@PathVariable("accou } @RequestMapping(value="/bills/{billId}", method= RequestMethod.GET) - public ResponseEntity getBillById(@PathVariable Long billId) { + public ResponseEntity getBillById(@PathVariable("billId") Long billId) { return billService.getBillById(billId); } diff --git a/src/main/java/io/zipcoder/repository/BillRepository.java b/src/main/java/io/zipcoder/repository/BillRepository.java index b0f0795..8d0f16a 100644 --- a/src/main/java/io/zipcoder/repository/BillRepository.java +++ b/src/main/java/io/zipcoder/repository/BillRepository.java @@ -10,4 +10,6 @@ public interface BillRepository extends CrudRepository{ Iterable findAllByAccount_Id(Long accountId); Iterable findAllByAccount_Customer_Id(Long customerId); + + Iterable findById(Long billId); } diff --git a/src/main/java/io/zipcoder/service/BillService.java b/src/main/java/io/zipcoder/service/BillService.java index 531085e..628f014 100644 --- a/src/main/java/io/zipcoder/service/BillService.java +++ b/src/main/java/io/zipcoder/service/BillService.java @@ -1,6 +1,7 @@ package io.zipcoder.service; import io.zipcoder.domain.Bill; +import io.zipcoder.repository.AccountRepository; import io.zipcoder.repository.BillRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; @@ -16,11 +17,13 @@ public class BillService { @Autowired private BillRepository billRepository; + private AccountRepository accountRepository; public BillService() {} - public BillService(BillRepository billRepository) { + public BillService(BillRepository billRepository, AccountRepository accountRepository) { this.billRepository = billRepository; + this.accountRepository = accountRepository; } public ResponseEntity> getAllBillsForAccount(Long accountId) { @@ -29,8 +32,13 @@ public ResponseEntity> getAllBillsForAccount(Long accountId) { } public ResponseEntity getBillById(Long billId) { - Bill bill = billRepository.findOne(billId); - return new ResponseEntity<>(bill, HttpStatus.OK); + /* + Account account = accountRepo.findById(accountId).orElse(new Account()); + return new ResponseEntity<>(account, OK); + */ + // need to rework this. +// Bill bill = billRepository.findById(billId); +// return new ResponseEntity<>(bill, HttpStatus.OK); } public ResponseEntity> getAllBillsForCustomer() { From 58450ba2193b2925fc89d87c4cd8262dc6cb90aa Mon Sep 17 00:00:00 2001 From: PeterMcCormick Date: Sat, 14 Apr 2018 20:55:58 -0400 Subject: [PATCH 27/30] Reverted changes back to base --- src/main/java/io/zipcoder/controller/DepositController.java | 2 +- src/main/java/io/zipcoder/controller/WithdrawalController.java | 2 +- src/main/java/io/zipcoder/repository/DepositRepository.java | 2 ++ src/main/java/io/zipcoder/repository/WithdrawalRepository.java | 2 ++ src/main/java/io/zipcoder/service/DepositService.java | 2 +- src/main/java/io/zipcoder/service/WithdrawalService.java | 2 +- 6 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/zipcoder/controller/DepositController.java b/src/main/java/io/zipcoder/controller/DepositController.java index bd48b62..36adfbc 100644 --- a/src/main/java/io/zipcoder/controller/DepositController.java +++ b/src/main/java/io/zipcoder/controller/DepositController.java @@ -44,4 +44,4 @@ public ResponseEntity deleteDeposit(@PathVariable Long depositId) { return depositService.deleteDeposit(depositId); } -} +} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/controller/WithdrawalController.java b/src/main/java/io/zipcoder/controller/WithdrawalController.java index 5b2eaa5..808b53d 100644 --- a/src/main/java/io/zipcoder/controller/WithdrawalController.java +++ b/src/main/java/io/zipcoder/controller/WithdrawalController.java @@ -42,4 +42,4 @@ public ResponseEntity updateWithdrawal(@PathVariable Long withdrawalId, @Requ public ResponseEntity deleteWithdrawal(@PathVariable Long withdrawalId) { return withdrawalService.deleteWithdrawal(withdrawalId); } -} +} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/repository/DepositRepository.java b/src/main/java/io/zipcoder/repository/DepositRepository.java index 89df4cc..d425c83 100644 --- a/src/main/java/io/zipcoder/repository/DepositRepository.java +++ b/src/main/java/io/zipcoder/repository/DepositRepository.java @@ -5,4 +5,6 @@ public interface DepositRepository extends CrudRepository { + Iterable getDepositsByAccountId(Long accountId); + Deposit getDepositById(Long id); } diff --git a/src/main/java/io/zipcoder/repository/WithdrawalRepository.java b/src/main/java/io/zipcoder/repository/WithdrawalRepository.java index 0bd6154..d4e2fd0 100644 --- a/src/main/java/io/zipcoder/repository/WithdrawalRepository.java +++ b/src/main/java/io/zipcoder/repository/WithdrawalRepository.java @@ -5,4 +5,6 @@ public interface WithdrawalRepository extends CrudRepository { + Iterable getWithrawalsByAccountId(Long accountId); + Withdrawal getWithdrawalById(Long id); } diff --git a/src/main/java/io/zipcoder/service/DepositService.java b/src/main/java/io/zipcoder/service/DepositService.java index c1fb522..641926a 100644 --- a/src/main/java/io/zipcoder/service/DepositService.java +++ b/src/main/java/io/zipcoder/service/DepositService.java @@ -52,4 +52,4 @@ public ResponseEntity deleteDeposit(Long depositId) { depositRepository.delete(depositId); return new ResponseEntity<>(HttpStatus.OK); } -} +} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/service/WithdrawalService.java b/src/main/java/io/zipcoder/service/WithdrawalService.java index 66854de..0d35d13 100644 --- a/src/main/java/io/zipcoder/service/WithdrawalService.java +++ b/src/main/java/io/zipcoder/service/WithdrawalService.java @@ -55,4 +55,4 @@ public ResponseEntity deleteWithdrawal(Long withdrawalId) { return new ResponseEntity<>(HttpStatus.OK); } -} +} \ No newline at end of file From 4e37e63b5879f8fa0f275e798461eaaf91724588 Mon Sep 17 00:00:00 2001 From: PeterMcCormick Date: Sun, 15 Apr 2018 10:47:45 -0400 Subject: [PATCH 28/30] fixed repo --- src/main/java/io/zipcoder/controller/DepositController.java | 5 ++++- src/main/java/io/zipcoder/repository/DepositRepository.java | 4 ++-- .../java/io/zipcoder/repository/WithdrawalRepository.java | 4 ++-- src/main/java/io/zipcoder/service/DepositService.java | 2 ++ 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/io/zipcoder/controller/DepositController.java b/src/main/java/io/zipcoder/controller/DepositController.java index 36adfbc..ea08fb0 100644 --- a/src/main/java/io/zipcoder/controller/DepositController.java +++ b/src/main/java/io/zipcoder/controller/DepositController.java @@ -12,9 +12,12 @@ @RestController public class DepositController { - @Autowired + private DepositService depositService; + public DepositController() {} + + @Autowired public DepositController(DepositService depositService) { this.depositService = depositService; } diff --git a/src/main/java/io/zipcoder/repository/DepositRepository.java b/src/main/java/io/zipcoder/repository/DepositRepository.java index d425c83..4e17f7d 100644 --- a/src/main/java/io/zipcoder/repository/DepositRepository.java +++ b/src/main/java/io/zipcoder/repository/DepositRepository.java @@ -5,6 +5,6 @@ public interface DepositRepository extends CrudRepository { - Iterable getDepositsByAccountId(Long accountId); - Deposit getDepositById(Long id); +// Iterable getDepositsByAccountId(Long accountId); +// Deposit getDepositById(Long id); } diff --git a/src/main/java/io/zipcoder/repository/WithdrawalRepository.java b/src/main/java/io/zipcoder/repository/WithdrawalRepository.java index d4e2fd0..29e4280 100644 --- a/src/main/java/io/zipcoder/repository/WithdrawalRepository.java +++ b/src/main/java/io/zipcoder/repository/WithdrawalRepository.java @@ -5,6 +5,6 @@ public interface WithdrawalRepository extends CrudRepository { - Iterable getWithrawalsByAccountId(Long accountId); - Withdrawal getWithdrawalById(Long id); +// Iterable getWithrawalsByAccountId(Long accountId); +// Withdrawal getWithdrawalById(Long id); } diff --git a/src/main/java/io/zipcoder/service/DepositService.java b/src/main/java/io/zipcoder/service/DepositService.java index 641926a..a108db0 100644 --- a/src/main/java/io/zipcoder/service/DepositService.java +++ b/src/main/java/io/zipcoder/service/DepositService.java @@ -21,6 +21,8 @@ public DepositService(DepositRepository depositRepository) { this.depositRepository = depositRepository; } + public DepositService(){} + public ResponseEntity> getDepositsByAccount(Long accountId) { Iterable allDepositsForAccount = depositRepository.findAll(); return new ResponseEntity<>(allDepositsForAccount, HttpStatus.OK); From 0209591ad264191c232bc678f434ee5aeb1e0062 Mon Sep 17 00:00:00 2001 From: PeterMcCormick Date: Sun, 15 Apr 2018 11:37:49 -0400 Subject: [PATCH 29/30] Finished up changing service --- .../controller/DepositController.java | 16 +++++----- .../controller/WithdrawalController.java | 14 ++++----- src/main/java/io/zipcoder/domain/Deposit.java | 10 +++--- .../repository/DepositRepository.java | 4 ++- .../repository/WithdrawalRepository.java | 4 +-- .../io/zipcoder/service/DepositService.java | 31 +++++++------------ .../zipcoder/service/WithdrawalService.java | 29 ++++++----------- .../controllerTest/DepositControllerTest.java | 4 +++ .../WithdrawalControllerTest.java | 4 +++ .../io/zipcoder/domainTest/DepositTest.java | 4 +++ .../zipcoder/domainTest/WithdrawalTest.java | 4 +++ .../repositoryTest/DepositRepositoryTest.java | 4 +++ .../WithdrawalRepositoryTest.java | 4 +++ .../serviceTest/DepositServiceTest.java | 4 +++ .../serviceTest/WithdrawalServiceTest.java | 4 +++ 15 files changed, 76 insertions(+), 64 deletions(-) create mode 100644 src/test/java/io/zipcoder/controllerTest/DepositControllerTest.java create mode 100644 src/test/java/io/zipcoder/controllerTest/WithdrawalControllerTest.java create mode 100644 src/test/java/io/zipcoder/domainTest/DepositTest.java create mode 100644 src/test/java/io/zipcoder/domainTest/WithdrawalTest.java create mode 100644 src/test/java/io/zipcoder/repositoryTest/DepositRepositoryTest.java create mode 100644 src/test/java/io/zipcoder/repositoryTest/WithdrawalRepositoryTest.java create mode 100644 src/test/java/io/zipcoder/serviceTest/DepositServiceTest.java create mode 100644 src/test/java/io/zipcoder/serviceTest/WithdrawalServiceTest.java diff --git a/src/main/java/io/zipcoder/controller/DepositController.java b/src/main/java/io/zipcoder/controller/DepositController.java index ea08fb0..8928240 100644 --- a/src/main/java/io/zipcoder/controller/DepositController.java +++ b/src/main/java/io/zipcoder/controller/DepositController.java @@ -15,35 +15,33 @@ public class DepositController { private DepositService depositService; - public DepositController() {} - @Autowired public DepositController(DepositService depositService) { this.depositService = depositService; } @RequestMapping(value="/accounts/{accountId}/deposits", method = RequestMethod.GET) - public ResponseEntity getDepositsByAccount(@PathVariable Long accountId) { + public ResponseEntity getDepositsByAccount(@PathVariable("accountId") Long accountId) { return depositService.getDepositsByAccount(accountId); } @RequestMapping(value="/deposits/{depositId}", method = RequestMethod.GET) - public ResponseEntity getDeposit(@PathVariable Long depositId) { + public ResponseEntity getDeposit(@PathVariable("depositId") Long depositId) { return depositService.getDeposit(depositId); } @RequestMapping(value="/accounts/{accountId}/deposits", method = RequestMethod.POST) - public ResponseEntity createDeposit(@PathVariable Long accountId, @RequestBody Deposit deposit) { - return depositService.createDeposit(deposit); + public ResponseEntity createDeposit(@PathVariable("accountId") Long accountId, @RequestBody Deposit deposit) { + return depositService.createDeposit(deposit, accountId); } @RequestMapping(value="/deposits/{depositId}", method = RequestMethod.PUT) - public ResponseEntity updateDeposit(@PathVariable Long depositId, @RequestBody Deposit deposit) { - return depositService.updateDeposit(deposit); + public ResponseEntity updateDeposit(@PathVariable("depositId") Long depositId, @RequestBody Deposit deposit) { + return depositService.updateDeposit(deposit, depositId); } @RequestMapping(value="/deposits/{depositId}", method = RequestMethod.DELETE) - public ResponseEntity deleteDeposit(@PathVariable Long depositId) { + public ResponseEntity deleteDeposit(@PathVariable("depositId") Long depositId) { return depositService.deleteDeposit(depositId); } diff --git a/src/main/java/io/zipcoder/controller/WithdrawalController.java b/src/main/java/io/zipcoder/controller/WithdrawalController.java index 808b53d..45e3657 100644 --- a/src/main/java/io/zipcoder/controller/WithdrawalController.java +++ b/src/main/java/io/zipcoder/controller/WithdrawalController.java @@ -19,27 +19,27 @@ public WithdrawalController(WithdrawalService withdrawalService) { } @RequestMapping(value="accounts/{acountId}/withdrawals", method = RequestMethod.GET) - public ResponseEntity getWithdrawalsByAccount(@PathVariable Long accountId) { + public ResponseEntity getWithdrawalsByAccount(@PathVariable("accountId") Long accountId) { return withdrawalService.getWithdrawalsByAccount(accountId); } @RequestMapping(value="/withdrawals/{withdrawalId}", method = RequestMethod.GET) - public ResponseEntity getWithdrawal(@PathVariable Long withdrawalId) { + public ResponseEntity getWithdrawal(@PathVariable("withdrawalId") Long withdrawalId) { return withdrawalService.getWithdrawal(withdrawalId); } @RequestMapping(value="/accounts/{accountId}/withdrawals", method = RequestMethod.POST) - public ResponseEntity createWithdrawal(@PathVariable Long accountId, @RequestBody Withdrawal withdrawal) { - return withdrawalService.createWithdrawal(withdrawal); + public ResponseEntity createWithdrawal(@PathVariable("accountId") Long accountId, @RequestBody Withdrawal withdrawal) { + return withdrawalService.createWithdrawal(withdrawal, accountId); } @RequestMapping(value="/withdrawals/{withdrawalId}" , method = RequestMethod.PUT) - public ResponseEntity updateWithdrawal(@PathVariable Long withdrawalId, @RequestBody Withdrawal withdrawal) { - return withdrawalService.updateWithdrawal(withdrawal); + public ResponseEntity updateWithdrawal(@PathVariable("withdrawalId") Long withdrawalId, @RequestBody Withdrawal withdrawal) { + return withdrawalService.updateWithdrawal(withdrawal, withdrawalId); } @RequestMapping(value="/withdrawals/{withdrawalId}", method = RequestMethod.DELETE) - public ResponseEntity deleteWithdrawal(@PathVariable Long withdrawalId) { + public ResponseEntity deleteWithdrawal(@PathVariable("withdrawalId") Long withdrawalId) { return withdrawalService.deleteWithdrawal(withdrawalId); } } \ No newline at end of file diff --git a/src/main/java/io/zipcoder/domain/Deposit.java b/src/main/java/io/zipcoder/domain/Deposit.java index 3a4a333..b216018 100644 --- a/src/main/java/io/zipcoder/domain/Deposit.java +++ b/src/main/java/io/zipcoder/domain/Deposit.java @@ -21,8 +21,8 @@ public class Deposit { @Column(name= "STATUS") private TransactionStatus status; - @Column(name= "PAYER_ID") - private Long payer_id; + @Column(name= "PAYEE_ID") + private Long payee_id; @Enumerated(EnumType.STRING) @Column(name= "MEDIUM") @@ -73,11 +73,11 @@ public void setStatus(TransactionStatus status) { } public Long getPayer_id() { - return payer_id; + return payee_id; } public void setPayer_id(Long payer_id) { - this.payer_id = payer_id; + this.payee_id = payer_id; } public Medium getMedium() { @@ -111,7 +111,7 @@ public String toString() { ", type='" + type + '\'' + ", transaction_date='" + transaction_date + '\'' + ", status='" + status + '\'' + - ", payer_id=" + payer_id + + ", payer_id=" + payee_id + ", medium='" + medium + '\'' + ", amount=" + amount + ", description='" + description + '\'' + diff --git a/src/main/java/io/zipcoder/repository/DepositRepository.java b/src/main/java/io/zipcoder/repository/DepositRepository.java index 4e17f7d..cfc9918 100644 --- a/src/main/java/io/zipcoder/repository/DepositRepository.java +++ b/src/main/java/io/zipcoder/repository/DepositRepository.java @@ -5,6 +5,8 @@ public interface DepositRepository extends CrudRepository { -// Iterable getDepositsByAccountId(Long accountId); + IterablefindAllByPayee_Id(Long payeeId); + // Deposit getDepositById(Long id); + } diff --git a/src/main/java/io/zipcoder/repository/WithdrawalRepository.java b/src/main/java/io/zipcoder/repository/WithdrawalRepository.java index 29e4280..40ab2ef 100644 --- a/src/main/java/io/zipcoder/repository/WithdrawalRepository.java +++ b/src/main/java/io/zipcoder/repository/WithdrawalRepository.java @@ -5,6 +5,6 @@ public interface WithdrawalRepository extends CrudRepository { -// Iterable getWithrawalsByAccountId(Long accountId); -// Withdrawal getWithdrawalById(Long id); + IterablefindAllByPayer_Id(Long payerId); + } diff --git a/src/main/java/io/zipcoder/service/DepositService.java b/src/main/java/io/zipcoder/service/DepositService.java index a108db0..36b8796 100644 --- a/src/main/java/io/zipcoder/service/DepositService.java +++ b/src/main/java/io/zipcoder/service/DepositService.java @@ -1,30 +1,26 @@ package io.zipcoder.service; - import io.zipcoder.domain.Deposit; import io.zipcoder.repository.DepositRepository; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; -import org.springframework.web.servlet.support.ServletUriComponentsBuilder; -import java.net.URI; @Service public class DepositService { + private DepositRepository depositRepository; + @Autowired - DepositRepository depositRepository; public DepositService(DepositRepository depositRepository) { this.depositRepository = depositRepository; - } - public DepositService(){} + } public ResponseEntity> getDepositsByAccount(Long accountId) { - Iterable allDepositsForAccount = depositRepository.findAll(); + Iterable allDepositsForAccount = depositRepository.findAllByPayee_Id(accountId); return new ResponseEntity<>(allDepositsForAccount, HttpStatus.OK); } @@ -33,21 +29,16 @@ public ResponseEntity getDeposit(Long depositId) { return new ResponseEntity<>(deposit, HttpStatus.OK); } - public ResponseEntity createDeposit(Deposit deposit) { - deposit = depositRepository.save(deposit); - URI newDepositUri = ServletUriComponentsBuilder - .fromCurrentRequest() - .path("/{id}") - .buildAndExpand(deposit.getId()) - .toUri(); - HttpHeaders responseHeaders = new HttpHeaders(); - responseHeaders.setLocation(newDepositUri); - return new ResponseEntity<>(null, responseHeaders, HttpStatus.CREATED); + public ResponseEntity createDeposit(Deposit deposit, Long accountId) { + deposit.setPayer_id(accountId); + Deposit deposit1 = depositRepository.save(deposit); + return new ResponseEntity<>(deposit1, HttpStatus.CREATED); } - public ResponseEntity updateDeposit(Deposit deposit) { + public ResponseEntity updateDeposit(Deposit deposit, Long depositId) { + deposit.setId(depositId); Deposit deposit1 = depositRepository.save(deposit); - return new ResponseEntity<>(HttpStatus.OK); + return new ResponseEntity<>(deposit1, HttpStatus.OK); } public ResponseEntity deleteDeposit(Long depositId) { diff --git a/src/main/java/io/zipcoder/service/WithdrawalService.java b/src/main/java/io/zipcoder/service/WithdrawalService.java index 0d35d13..e56c364 100644 --- a/src/main/java/io/zipcoder/service/WithdrawalService.java +++ b/src/main/java/io/zipcoder/service/WithdrawalService.java @@ -3,28 +3,22 @@ import io.zipcoder.domain.Withdrawal; import io.zipcoder.repository.WithdrawalRepository; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; -import org.springframework.web.servlet.support.ServletUriComponentsBuilder; - -import java.net.URI; @Service public class WithdrawalService { - @Autowired private WithdrawalRepository withdrawalRepository; - public WithdrawalService() {} - + @Autowired public WithdrawalService(WithdrawalRepository withdrawalRepository) { this.withdrawalRepository = withdrawalRepository; } public ResponseEntity> getWithdrawalsByAccount(Long accountId) { - Iterable allWithdrawalsForAccount = withdrawalRepository.findAll(); + Iterable allWithdrawalsForAccount = withdrawalRepository.findAllByPayer_Id(accountId); return new ResponseEntity<>(allWithdrawalsForAccount, HttpStatus.OK); } @@ -33,21 +27,16 @@ public ResponseEntity getWithdrawal(Long withdrawalId) { return new ResponseEntity<>(withdrawal, HttpStatus.OK); } - public ResponseEntity createWithdrawal(Withdrawal withdrawal) { - withdrawal = withdrawalRepository.save(withdrawal); - URI newWithdrawalUri = ServletUriComponentsBuilder - .fromCurrentRequest() - .path("/{id}") - .buildAndExpand(withdrawal.getId()) - .toUri(); - HttpHeaders responseHeaders = new HttpHeaders(); - responseHeaders.setLocation(newWithdrawalUri); - return new ResponseEntity<>(null, responseHeaders, HttpStatus.CREATED); + public ResponseEntity createWithdrawal(Withdrawal withdrawal, Long accountId) { + withdrawal.setPayer_id(accountId); + Withdrawal withdrawal1 = withdrawalRepository.save(withdrawal); + return new ResponseEntity<>(withdrawal1, HttpStatus.CREATED); } - public ResponseEntity updateWithdrawal(Withdrawal withdrawal) { + public ResponseEntity updateWithdrawal(Withdrawal withdrawal, Long withdrawalId) { + withdrawal.setId(withdrawalId); Withdrawal withdrawal1 = withdrawalRepository.save(withdrawal); - return new ResponseEntity<>(HttpStatus.OK); + return new ResponseEntity<>(withdrawal1,HttpStatus.OK); } public ResponseEntity deleteWithdrawal(Long withdrawalId) { diff --git a/src/test/java/io/zipcoder/controllerTest/DepositControllerTest.java b/src/test/java/io/zipcoder/controllerTest/DepositControllerTest.java new file mode 100644 index 0000000..2896ee2 --- /dev/null +++ b/src/test/java/io/zipcoder/controllerTest/DepositControllerTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.controllerTest; + +public class DepositControllerTest { +} diff --git a/src/test/java/io/zipcoder/controllerTest/WithdrawalControllerTest.java b/src/test/java/io/zipcoder/controllerTest/WithdrawalControllerTest.java new file mode 100644 index 0000000..7d4074b --- /dev/null +++ b/src/test/java/io/zipcoder/controllerTest/WithdrawalControllerTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.controllerTest; + +public class WithdrawalControllerTest { +} diff --git a/src/test/java/io/zipcoder/domainTest/DepositTest.java b/src/test/java/io/zipcoder/domainTest/DepositTest.java new file mode 100644 index 0000000..db9a047 --- /dev/null +++ b/src/test/java/io/zipcoder/domainTest/DepositTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.domainTest; + +public class DepositTest { +} diff --git a/src/test/java/io/zipcoder/domainTest/WithdrawalTest.java b/src/test/java/io/zipcoder/domainTest/WithdrawalTest.java new file mode 100644 index 0000000..2f52094 --- /dev/null +++ b/src/test/java/io/zipcoder/domainTest/WithdrawalTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.domainTest; + +public class WithdrawalTest { +} diff --git a/src/test/java/io/zipcoder/repositoryTest/DepositRepositoryTest.java b/src/test/java/io/zipcoder/repositoryTest/DepositRepositoryTest.java new file mode 100644 index 0000000..2f258dc --- /dev/null +++ b/src/test/java/io/zipcoder/repositoryTest/DepositRepositoryTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.repositoryTest; + +public class DepositRepositoryTest { +} diff --git a/src/test/java/io/zipcoder/repositoryTest/WithdrawalRepositoryTest.java b/src/test/java/io/zipcoder/repositoryTest/WithdrawalRepositoryTest.java new file mode 100644 index 0000000..4c4a508 --- /dev/null +++ b/src/test/java/io/zipcoder/repositoryTest/WithdrawalRepositoryTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.repositoryTest; + +public class WithdrawalRepositoryTest { +} diff --git a/src/test/java/io/zipcoder/serviceTest/DepositServiceTest.java b/src/test/java/io/zipcoder/serviceTest/DepositServiceTest.java new file mode 100644 index 0000000..f04969e --- /dev/null +++ b/src/test/java/io/zipcoder/serviceTest/DepositServiceTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.serviceTest; + +public class DepositServiceTest { +} diff --git a/src/test/java/io/zipcoder/serviceTest/WithdrawalServiceTest.java b/src/test/java/io/zipcoder/serviceTest/WithdrawalServiceTest.java new file mode 100644 index 0000000..4aa46d8 --- /dev/null +++ b/src/test/java/io/zipcoder/serviceTest/WithdrawalServiceTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.serviceTest; + +public class WithdrawalServiceTest { +} From 2fdf4017c57abc2e70dcb62a787334b1d2eb124e Mon Sep 17 00:00:00 2001 From: Luis Romero Date: Fri, 27 Apr 2018 16:16:36 -0400 Subject: [PATCH 30/30] after merging petes changes --- src/main/java/io/zipcoder/service/BillService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/io/zipcoder/service/BillService.java b/src/main/java/io/zipcoder/service/BillService.java index 628f014..a7afb2e 100644 --- a/src/main/java/io/zipcoder/service/BillService.java +++ b/src/main/java/io/zipcoder/service/BillService.java @@ -39,6 +39,7 @@ public ResponseEntity getBillById(Long billId) { // need to rework this. // Bill bill = billRepository.findById(billId); // return new ResponseEntity<>(bill, HttpStatus.OK); + return null; } public ResponseEntity> getAllBillsForCustomer() {