Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/main/java/io/zipcoder/controller/AccountController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package io.zipcoder.controller;

public class AccountController {
}
4 changes: 4 additions & 0 deletions src/main/java/io/zipcoder/controller/BillController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package io.zipcoder.controller;

public class BillController {
}
42 changes: 42 additions & 0 deletions src/main/java/io/zipcoder/controller/CustomerController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package io.zipcoder.controller;

import io.zipcoder.domain.Customer;
import io.zipcoder.service.CustomerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.inject.Inject;

// not concerned with logic
// request deferred to the service which takes care of the logic
// receive requests and map them

@RestController
public class CustomerController {

@Inject
private CustomerService customerService;

@RequestMapping(value="/accounts/{customerId}/customer", method = RequestMethod.GET)
public ResponseEntity<Customer> lookUpByAccountId(@PathVariable long accountId) {
Customer result = customerService.findByAccountId(accountId);
return new ResponseEntity<>(result, HttpStatus.OK);
}

@RequestMapping(value="/customers", method = RequestMethod.GET)
public ResponseEntity<?> listAllCustomers() {
return new ResponseEntity<Iterable<Customer>>(customerService.findAllCustomers(), HttpStatus.OK);
}

@RequestMapping(value="/customers/{id}")
public ResponseEntity<?> lookUpById(@PathVariable long id) {
return new ResponseEntity<>(customerService.findByCustomerId(id), HttpStatus.OK);
}


}
4 changes: 4 additions & 0 deletions src/main/java/io/zipcoder/controller/DepositController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package io.zipcoder.controller;

public class DepositController {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package io.zipcoder.controller;

public class WithdrawalsController {
}
4 changes: 4 additions & 0 deletions src/main/java/io/zipcoder/domain/Account.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package io.zipcoder.domain;

public class Account {
}
16 changes: 16 additions & 0 deletions src/main/java/io/zipcoder/domain/Address.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package io.zipcoder.domain;

import javax.persistence.GeneratedValue;
import javax.persistence.Id;

public class Address {

@Id
@GeneratedValue
private Long id;
private String streetNumber;
private String streetName;
private String city;
private String state;
private String zip;
}
4 changes: 4 additions & 0 deletions src/main/java/io/zipcoder/domain/Bill.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package io.zipcoder.domain;

public class Bill {
}
60 changes: 60 additions & 0 deletions src/main/java/io/zipcoder/domain/Customer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package io.zipcoder.domain;

import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import java.util.Collections;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class Customer {
@Id
@GeneratedValue
private long id;
private String firstName;
private String lastName;
@OneToMany
private Set<Address> addresses = new TreeSet<>();



public Customer(long id, String firstName, String lastName) {
this.id = id;
this.firstName = firstName;
this.lastName = lastName;

}

public long getId() {
return id;
}

public void setId(long id) {
this.id = id;
}

public String getFirstName() {
return firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public String getLastName() {
return lastName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}

public void addAddresst(Address address) {
addresses.add(address);
}

public Iterable<Address> getAddresses() {
return Collections.unmodifiableSet(addresses);
}
}
4 changes: 4 additions & 0 deletions src/main/java/io/zipcoder/domain/Deposit.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package io.zipcoder.domain;

public class Deposit {
}
4 changes: 4 additions & 0 deletions src/main/java/io/zipcoder/domain/Withdrawals.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package io.zipcoder.domain;

public class Withdrawals {
}
4 changes: 4 additions & 0 deletions src/main/java/io/zipcoder/repositories/AccountRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package io.zipcoder.repositories;

public interface AccountRepository {
}
6 changes: 6 additions & 0 deletions src/main/java/io/zipcoder/repositories/Address.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package io.zipcoder.repositories;

import org.springframework.data.jpa.repository.JpaRepository;

public interface Address extends JpaRepository<Address, Long> {
}
4 changes: 4 additions & 0 deletions src/main/java/io/zipcoder/repositories/BillRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package io.zipcoder.repositories;

public interface BillRepository {
}
19 changes: 19 additions & 0 deletions src/main/java/io/zipcoder/repositories/CustomerRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package io.zipcoder.repositories;

import io.zipcoder.domain.Address;
import io.zipcoder.domain.Customer;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;

import java.util.List;


public interface CustomerRepository extends JpaRepository<Customer, Long> {

Customer findCustomerByAccountId(long id);

List<Customer> findAll();

Customer findCustomerById(long id);

}
4 changes: 4 additions & 0 deletions src/main/java/io/zipcoder/repositories/DepositRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package io.zipcoder.repositories;

public interface DepositRepository {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package io.zipcoder.repositories;

public interface WithdrawalRepository {
}
4 changes: 4 additions & 0 deletions src/main/java/io/zipcoder/service/AccountService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package io.zipcoder.service;

public class AccountService {
}
4 changes: 4 additions & 0 deletions src/main/java/io/zipcoder/service/BillService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package io.zipcoder.service;

public class BillService {
}
31 changes: 31 additions & 0 deletions src/main/java/io/zipcoder/service/CustomerService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package io.zipcoder.service;

import io.zipcoder.domain.Customer;
import io.zipcoder.repositories.CustomerRepository;
import org.apache.tomcat.jdbc.pool.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.session.SessionProperties;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class CustomerService {


@Autowired
private CustomerRepository customerRepository;

public Customer findByAccountId(long accountId) {
return customerRepository.findCustomerByAccountId(accountId);
}

public List<Customer> findAllCustomers() {
return customerRepository.findAll();
}

public Customer findByCustomerId(long id) {
return customerRepository.findCustomerById(id);
}
}
4 changes: 4 additions & 0 deletions src/main/java/io/zipcoder/service/DepositService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package io.zipcoder.service;

public class DepositService {
}
4 changes: 4 additions & 0 deletions src/main/java/io/zipcoder/service/WithdrawalsService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package io.zipcoder.service;

public class WithdrawalsService {
}