Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor-and-add-my-code --> { #65

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
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
6 changes: 6 additions & 0 deletions account-service/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@
</parent>

<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.piggymetrics.account.application.util;

import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j;

@Slf4j
@UtilityClass
public class Utility {
public static void printErrorMessage(final String errorMessage) {
log.error(errorMessage);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

import com.piggymetrics.account.domain.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import static org.springframework.http.MediaType.APPLICATION_JSON_UTF8_VALUE;

@FeignClient(name = "auth-service")
public interface AuthServiceClient {

@RequestMapping(method = RequestMethod.POST, value = "/uaa/users", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
@RequestMapping(method = RequestMethod.POST, value = "/uaa/users", consumes = APPLICATION_JSON_UTF8_VALUE)
void createUser(User user);

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,18 @@

import com.piggymetrics.account.domain.Account;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import static org.springframework.http.MediaType.APPLICATION_JSON_UTF8_VALUE;

@FeignClient(name = "statistics-service", fallback = StatisticsServiceClientFallback.class)
public interface StatisticsServiceClient {

@RequestMapping(method = RequestMethod.PUT, value = "/statistics/{accountName}", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
void updateStatistics(@PathVariable("accountName") String accountName, Account account);

@RequestMapping(
method = RequestMethod.PUT,
value = "/statistics/{accountName}",
consumes = APPLICATION_JSON_UTF8_VALUE)
void updateStatistics(@PathVariable("accountName") String accountName, Account account);
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
package com.piggymetrics.account.client;

import com.piggymetrics.account.domain.Account;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
* @author cdov
*/
@Component
@Slf4j
public class StatisticsServiceClientFallback implements StatisticsServiceClient {
private static final Logger LOGGER = LoggerFactory.getLogger(StatisticsServiceClientFallback.class);
@Override
public void updateStatistics(String accountName, Account account) {
LOGGER.error("Error during update statistics for account: {}", accountName);
log.error("Error during update statistics for account: {}", accountName);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,37 +3,47 @@
import com.piggymetrics.account.domain.Account;
import com.piggymetrics.account.domain.User;
import com.piggymetrics.account.service.AccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import javax.validation.Valid;
import java.security.Principal;

@RestController
public class AccountController {

@Autowired
private AccountService accountService;

@PreAuthorize("#oauth2.hasScope('server') or #name.equals('demo')")
@RequestMapping(path = "/{name}", method = RequestMethod.GET)
public Account getAccountByName(@PathVariable String name) {
return accountService.findByName(name);
}

@RequestMapping(path = "/current", method = RequestMethod.GET)
public Account getCurrentAccount(Principal principal) {
return accountService.findByName(principal.getName());
}

@RequestMapping(path = "/current", method = RequestMethod.PUT)
public void saveCurrentAccount(Principal principal, @Valid @RequestBody Account account) {
accountService.saveChanges(principal.getName(), account);
}

@RequestMapping(path = "/", method = RequestMethod.POST)
public Account createNewAccount(@Valid @RequestBody User user) {
return accountService.create(user);
}
private final AccountService accountService;

public AccountController(AccountService accountService) {
this.accountService = accountService;
}

@PreAuthorize("#oauth2.hasScope('server') or #name.equals('demo')")
@GetMapping(
path = "/{name}",
consumes = APPLICATION_JSON_VALUE,
produces = APPLICATION_JSON_VALUE)
public Account getAccountByName(@PathVariable String name) {
return accountService.findByName(name);
}

@GetMapping(path = "/current")
public Account getCurrentAccount(Principal principal) {
return accountService.findByName(principal.getName());
}

@PutMapping(path = "/current")
public void saveCurrentAccount(Principal principal, @Valid @RequestBody Account account) {
accountService.saveChanges(principal.getName(), account);
}

@PostMapping(path = "/")
public Account createNewAccount(@Valid @RequestBody User user) {
return accountService.create(user);
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,18 +1,24 @@
package com.piggymetrics.account.domain;

import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.hibernate.validator.constraints.Length;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Document(collection = "accounts")
@JsonIgnoreProperties(ignoreUnknown = true)
public class Account {
@Data
@NoArgsConstructor
public class Account implements Serializable {

@Id
private String name;
Expand All @@ -31,52 +37,4 @@ public class Account {

@Length(min = 0, max = 20_000)
private String note;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public Date getLastSeen() {
return lastSeen;
}

public void setLastSeen(Date lastSeen) {
this.lastSeen = lastSeen;
}

public List<Item> getIncomes() {
return incomes;
}

public void setIncomes(List<Item> incomes) {
this.incomes = incomes;
}

public List<Item> getExpenses() {
return expenses;
}

public void setExpenses(List<Item> expenses) {
this.expenses = expenses;
}

public Saving getSaving() {
return saving;
}

public void setSaving(Saving saving) {
this.saving = saving;
}

public String getNote() {
return note;
}

public void setNote(String note) {
this.note = note;
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
package com.piggymetrics.account.domain;


import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

public class Item {
@Data
@NoArgsConstructor
public class Item implements Serializable {

@NotNull
@Length(min = 1, max = 20)
Expand All @@ -22,44 +28,4 @@ public class Item {

@NotNull
private String icon;

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public BigDecimal getAmount() {
return amount;
}

public void setAmount(BigDecimal amount) {
this.amount = amount;
}

public Currency getCurrency() {
return currency;
}

public void setCurrency(Currency currency) {
this.currency = currency;
}

public TimePeriod getPeriod() {
return period;
}

public void setPeriod(TimePeriod period) {
this.period = period;
}

public String getIcon() {
return icon;
}

public void setIcon(String icon) {
this.icon = icon;
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
package com.piggymetrics.account.domain;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

public class Saving {
@Getter
@Setter
@NoArgsConstructor
public class Saving implements Serializable {

@NotNull
private BigDecimal amount;
Expand All @@ -19,44 +26,4 @@ public class Saving {

@NotNull
private Boolean capitalization;

public BigDecimal getAmount() {
return amount;
}

public void setAmount(BigDecimal amount) {
this.amount = amount;
}

public Currency getCurrency() {
return currency;
}

public void setCurrency(Currency currency) {
this.currency = currency;
}

public BigDecimal getInterest() {
return interest;
}

public void setInterest(BigDecimal interest) {
this.interest = interest;
}

public Boolean getDeposit() {
return deposit;
}

public void setDeposit(Boolean deposit) {
this.deposit = deposit;
}

public Boolean getCapitalization() {
return capitalization;
}

public void setCapitalization(Boolean capitalization) {
this.capitalization = capitalization;
}
}
Loading