Skip to content

Commit 56eecbb

Browse files
committed
Additions
1 parent 2a35700 commit 56eecbb

File tree

28 files changed

+682
-18
lines changed

28 files changed

+682
-18
lines changed

account-service/src/main/java/pl/piomin/microservices/advanced/account/Application.java

+7
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import org.springframework.boot.SpringApplication;
44
import org.springframework.boot.autoconfigure.SpringBootApplication;
55
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
6+
import org.springframework.cloud.sleuth.sampler.AlwaysSampler;
7+
import org.springframework.context.annotation.Bean;
68

79
@SpringBootApplication
810
@EnableDiscoveryClient
@@ -12,4 +14,9 @@ public static void main(String[] args) {
1214
SpringApplication.run(Application.class, args);
1315
}
1416

17+
@Bean
18+
public AlwaysSampler defaultSampler() {
19+
return new AlwaysSampler();
20+
}
21+
1522
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package pl.piomin.microservices.advanced.account.api;
2+
3+
import java.util.List;
4+
import java.util.logging.Logger;
5+
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.web.bind.annotation.PathVariable;
8+
import org.springframework.web.bind.annotation.RequestBody;
9+
import org.springframework.web.bind.annotation.RequestMapping;
10+
import org.springframework.web.bind.annotation.RequestMethod;
11+
import org.springframework.web.bind.annotation.RestController;
12+
13+
import pl.piomin.microservices.advanced.account.model.Account;
14+
import pl.piomin.microservices.advanced.account.repository.AccountRepository;
15+
16+
@RestController
17+
public class AccountController {
18+
19+
@Autowired
20+
AccountRepository repository;
21+
22+
protected Logger logger = Logger.getLogger(AccountController.class.getName());
23+
24+
@RequestMapping("/accounts/{number}")
25+
public Account findByNumber(@PathVariable("number") String number) {
26+
logger.info(String.format("Account.findByNumber(%s)", number));
27+
return repository.findByNumber(number);
28+
}
29+
30+
@RequestMapping("/accounts/customer/{customer}")
31+
public List<Account> findByCustomer(@PathVariable("customer") String customerId) {
32+
logger.info(String.format("Account.findByCustomer(%s)", customerId));
33+
return repository.findByCustomerId(customerId);
34+
}
35+
36+
@RequestMapping("/accounts")
37+
public List<Account> findAll() {
38+
logger.info("Account.findAll()");
39+
return repository.findAll();
40+
}
41+
42+
@RequestMapping(method = RequestMethod.POST, value = "/accounts")
43+
public Account add(@RequestBody Account account) {
44+
logger.info(String.format("Account.add(%s)", account));
45+
return repository.save(account);
46+
}
47+
48+
}

account-service/src/main/java/pl/piomin/microservices/advanced/account/model/Account.java

+19-3
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
package pl.piomin.microservices.advanced.account.model;
22

3+
import org.springframework.data.annotation.Id;
34
import org.springframework.data.mongodb.core.mapping.Document;
45

56
@Document(collection = "account")
67
public class Account {
78

8-
private Integer id;
9+
@Id
10+
private String id;
911
private String number;
1012
private int balance;
13+
private String customerId;
1114

12-
public Integer getId() {
15+
public String getId() {
1316
return id;
1417
}
1518

16-
public void setId(Integer id) {
19+
public void setId(String id) {
1720
this.id = id;
1821
}
1922

@@ -33,4 +36,17 @@ public void setBalance(int balance) {
3336
this.balance = balance;
3437
}
3538

39+
public String getCustomerId() {
40+
return customerId;
41+
}
42+
43+
public void setCustomerId(String customerId) {
44+
this.customerId = customerId;
45+
}
46+
47+
@Override
48+
public String toString() {
49+
return "Account [id=" + id + ", number=" + number + ", customerId=" + customerId + "]";
50+
}
51+
3652
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package pl.piomin.microservices.advanced.account.repository;
2+
3+
import java.util.List;
4+
5+
import org.springframework.data.mongodb.repository.MongoRepository;
6+
7+
import pl.piomin.microservices.advanced.account.model.Account;
8+
9+
public interface AccountRepository extends MongoRepository<Account, String> {
10+
11+
public Account findByNumber(String number);
12+
public List<Account> findByCustomerId(String customerId);
13+
14+
}

account-service/src/main/resources/application.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ spring:
66
name: account-service
77
data:
88
mongodb:
9-
host: localhost
9+
host: 192.168.99.100
1010
port: 27017
1111
username: micro
1212
password: micro

customer-service/src/main/java/pl/piomin/microservices/advanced/customer/Application.java

+7
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import org.springframework.boot.SpringApplication;
44
import org.springframework.boot.autoconfigure.SpringBootApplication;
55
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
6+
import org.springframework.cloud.sleuth.sampler.AlwaysSampler;
7+
import org.springframework.context.annotation.Bean;
68

79
@SpringBootApplication
810
@EnableDiscoveryClient
@@ -11,5 +13,10 @@ public class Application {
1113
public static void main(String[] args) {
1214
SpringApplication.run(Application.class, args);
1315
}
16+
17+
@Bean
18+
public AlwaysSampler defaultSampler() {
19+
return new AlwaysSampler();
20+
}
1421

1522
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package pl.piomin.microservices.advanced.customer.api;
2+
3+
import java.util.List;
4+
import java.util.logging.Logger;
5+
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.web.bind.annotation.PathVariable;
8+
import org.springframework.web.bind.annotation.RequestBody;
9+
import org.springframework.web.bind.annotation.RequestMapping;
10+
import org.springframework.web.bind.annotation.RequestMethod;
11+
import org.springframework.web.bind.annotation.RestController;
12+
13+
import pl.piomin.microservices.advanced.customer.contract.Account;
14+
import pl.piomin.microservices.advanced.customer.contract.AccountClient;
15+
import pl.piomin.microservices.advanced.customer.model.Customer;
16+
import pl.piomin.microservices.advanced.customer.repository.CustomerRepository;
17+
18+
@RestController
19+
public class CustomerController {
20+
21+
@Autowired
22+
private AccountClient accountClient;
23+
24+
@Autowired
25+
CustomerRepository repository;
26+
27+
protected Logger logger = Logger.getLogger(CustomerController.class.getName());
28+
29+
@RequestMapping("/customers/pesel/{pesel}")
30+
public Customer findByPesel(@PathVariable("pesel") String pesel) {
31+
logger.info(String.format("Customer.findByPesel(%s)", pesel));
32+
return repository.findByPesel(pesel);
33+
}
34+
35+
@RequestMapping("/customers")
36+
public List<Customer> findAll() {
37+
logger.info("Customer.findAll()");
38+
return repository.findAll();
39+
}
40+
41+
@RequestMapping("/customers/{id}")
42+
public Customer findById(@PathVariable("id") String id) {
43+
logger.info(String.format("Customer.findById(%s)", id));
44+
Customer customer = repository.findById(id);
45+
List<Account> accounts = accountClient.getAccounts(id);
46+
customer.setAccounts(accounts);
47+
return customer;
48+
}
49+
50+
@RequestMapping(method = RequestMethod.POST, value = "/customers")
51+
public Customer add(@RequestBody Customer customer) {
52+
logger.info(String.format("Customer.add(%s)", customer));
53+
return repository.save(customer);
54+
}
55+
56+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package pl.piomin.microservices.advanced.customer.contract;
2+
3+
public class Account {
4+
5+
private String id;
6+
private String number;
7+
private int balance;
8+
9+
public String getId() {
10+
return id;
11+
}
12+
13+
public void setId(String id) {
14+
this.id = id;
15+
}
16+
17+
public String getNumber() {
18+
return number;
19+
}
20+
21+
public void setNumber(String number) {
22+
this.number = number;
23+
}
24+
25+
public int getBalance() {
26+
return balance;
27+
}
28+
29+
public void setBalance(int balance) {
30+
this.balance = balance;
31+
}
32+
33+
@Override
34+
public String toString() {
35+
return "Account [id=" + id + ", number=" + number + "]";
36+
}
37+
38+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package pl.piomin.microservices.advanced.customer.contract;
2+
3+
import java.util.List;
4+
5+
import org.springframework.cloud.netflix.feign.FeignClient;
6+
import org.springframework.web.bind.annotation.PathVariable;
7+
import org.springframework.web.bind.annotation.RequestMapping;
8+
import org.springframework.web.bind.annotation.RequestMethod;
9+
10+
@FeignClient("account-service")
11+
public interface AccountClient {
12+
13+
@RequestMapping(method = RequestMethod.GET, value = "/accounts/customer/{customerId}")
14+
List<Account> getAccounts(@PathVariable("customerId") String customerId);
15+
16+
}
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,65 @@
11
package pl.piomin.microservices.advanced.customer.model;
22

3+
import java.util.List;
4+
5+
import org.springframework.data.annotation.Id;
36
import org.springframework.data.mongodb.core.mapping.Document;
47

8+
import pl.piomin.microservices.advanced.customer.contract.Account;
9+
510
@Document(collection = "customer")
611
public class Customer {
712

8-
private Integer id;
13+
@Id
14+
private String id;
15+
private String pesel;
16+
private String name;
17+
private CustomerType type;
18+
private List<Account> accounts;
919

10-
public Integer getId() {
20+
public String getId() {
1121
return id;
1222
}
1323

14-
public void setId(Integer id) {
24+
public void setId(String id) {
1525
this.id = id;
1626
}
1727

28+
public String getPesel() {
29+
return pesel;
30+
}
31+
32+
public void setPesel(String pesel) {
33+
this.pesel = pesel;
34+
}
35+
36+
public String getName() {
37+
return name;
38+
}
39+
40+
public void setName(String name) {
41+
this.name = name;
42+
}
43+
44+
public CustomerType getType() {
45+
return type;
46+
}
47+
48+
public void setType(CustomerType type) {
49+
this.type = type;
50+
}
51+
52+
public List<Account> getAccounts() {
53+
return accounts;
54+
}
55+
56+
public void setAccounts(List<Account> accounts) {
57+
this.accounts = accounts;
58+
}
59+
60+
@Override
61+
public String toString() {
62+
return "Customer [id=" + id + ", pesel=" + pesel + ", name=" + name + ", type=" + type + "]";
63+
}
64+
1865
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package pl.piomin.microservices.advanced.customer.model;
2+
3+
public enum CustomerType {
4+
5+
BUSINESS, INDIVIDUAL;
6+
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package pl.piomin.microservices.advanced.customer.repository;
2+
3+
import org.springframework.data.mongodb.repository.MongoRepository;
4+
5+
import pl.piomin.microservices.advanced.customer.model.Customer;
6+
7+
public interface CustomerRepository extends MongoRepository<Customer, String> {
8+
9+
public Customer findByPesel(String pesel);
10+
public Customer findById(String id);
11+
12+
}

customer-service/src/main/resources/application.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ spring:
66
name: customer-service
77
data:
88
mongodb:
9-
host: localhost
9+
host: 192.168.99.100
1010
port: 27017
1111
username: micro
1212
password: micro

product-service/src/main/java/pl/piomin/microservices/advanced/product/Application.java

+7
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import org.springframework.boot.SpringApplication;
44
import org.springframework.boot.autoconfigure.SpringBootApplication;
55
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
6+
import org.springframework.cloud.sleuth.sampler.AlwaysSampler;
7+
import org.springframework.context.annotation.Bean;
68

79
@SpringBootApplication
810
@EnableDiscoveryClient
@@ -11,5 +13,10 @@ public class Application {
1113
public static void main(String[] args) {
1214
SpringApplication.run(Application.class, args);
1315
}
16+
17+
@Bean
18+
public AlwaysSampler defaultSampler() {
19+
return new AlwaysSampler();
20+
}
1421

1522
}

0 commit comments

Comments
 (0)