Merge pull request #19 from lumijiez/dimas_optimization

optimize code, add interfaces, hotfix money transaction interface
This commit was merged in pull request #19.
This commit is contained in:
Dima
2023-10-23 16:39:52 +03:00
committed by GitHub
13 changed files with 87 additions and 46 deletions

View File

@@ -20,7 +20,7 @@ public class ExpenseMapper {
} }
public ExpenseDTO toDto(Expense expense) { public ExpenseDTO toDto(Expense expense) {
return new ExpenseDTO(expense.getExpenseId(), userMapper.toDto(expense.getUser()), return new ExpenseDTO(expense.getId(), userMapper.toDto(expense.getUser()),
expense.getCategory(), expense.getDate(), expense.getAmount()); expense.getCategory(), expense.getDate(), expense.getAmount());
} }

View File

@@ -2,7 +2,6 @@ package com.faf223.expensetrackerfaf.dto.mappers;
import com.faf223.expensetrackerfaf.dto.IncomeCreationDTO; import com.faf223.expensetrackerfaf.dto.IncomeCreationDTO;
import com.faf223.expensetrackerfaf.dto.IncomeDTO; import com.faf223.expensetrackerfaf.dto.IncomeDTO;
import com.faf223.expensetrackerfaf.model.Expense;
import com.faf223.expensetrackerfaf.model.Income; import com.faf223.expensetrackerfaf.model.Income;
import com.faf223.expensetrackerfaf.service.IncomeService; import com.faf223.expensetrackerfaf.service.IncomeService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -21,7 +20,7 @@ public class IncomeMapper {
} }
public IncomeDTO toDto(Income income) { public IncomeDTO toDto(Income income) {
return new IncomeDTO(income.getIncomeId(), userMapper.toDto(income.getUser()), return new IncomeDTO(income.getId(), userMapper.toDto(income.getUser()),
income.getCategory(), income.getDate(), income.getAmount()); income.getCategory(), income.getDate(), income.getAmount());
} }

View File

@@ -1,10 +1,7 @@
package com.faf223.expensetrackerfaf.model; package com.faf223.expensetrackerfaf.model;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.AllArgsConstructor; import lombok.*;
import lombok.Data;
import lombok.ToString;
import lombok.NoArgsConstructor;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
@@ -16,6 +13,7 @@ import java.time.LocalDate;
public class Expense implements IMoneyTransaction { public class Expense implements IMoneyTransaction {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Getter(AccessLevel.NONE)
private Long expenseId; private Long expenseId;
@ManyToOne() @ManyToOne()
@@ -30,5 +28,11 @@ public class Expense implements IMoneyTransaction {
private LocalDate date; private LocalDate date;
private BigDecimal amount; private BigDecimal amount;
@Override
public Long getId() {
return expenseId;
}
} }

View File

@@ -4,14 +4,29 @@ import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue; import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType; import jakarta.persistence.GenerationType;
import jakarta.persistence.Id; import jakarta.persistence.Id;
import lombok.AccessLevel;
import lombok.Data; import lombok.Data;
import lombok.Getter;
@Data @Data
@Entity(name = "expense_categories") @Entity(name = "expense_categories")
public class ExpenseCategory { public class ExpenseCategory implements IMoneyTransactionCategory {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Getter(AccessLevel.NONE)
private Long categoryId; private Long categoryId;
@Getter(AccessLevel.NONE)
private String categoryName; private String categoryName;
@Override
public Long getId() {
return categoryId;
}
@Override
public String getName() {
return categoryName;
}
} }

View File

@@ -1,11 +1,14 @@
package com.faf223.expensetrackerfaf.model; package com.faf223.expensetrackerfaf.model;
import com.faf223.expensetrackerfaf.model.User; import java.math.BigDecimal;
import java.time.LocalDate;
public interface IMoneyTransaction { public interface IMoneyTransaction {
Long getId();
LocalDate getDate();
User getUser(); User getUser();
int getAmount(); BigDecimal getAmount();
String getCategory(); IMoneyTransactionCategory getCategory();
} }

View File

@@ -0,0 +1,6 @@
package com.faf223.expensetrackerfaf.model;
public interface IMoneyTransactionCategory {
Long getId();
String getName();
}

View File

@@ -2,10 +2,8 @@ package com.faf223.expensetrackerfaf.model;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.AllArgsConstructor; import lombok.*;
import lombok.Data;
import lombok.ToString;
import lombok.NoArgsConstructor;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
@@ -16,6 +14,7 @@ import java.time.LocalDate;
public class Income implements IMoneyTransaction { public class Income implements IMoneyTransaction {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Getter(AccessLevel.NONE)
private Long incomeId; private Long incomeId;
@ManyToOne @ManyToOne
@@ -30,4 +29,9 @@ public class Income implements IMoneyTransaction {
private LocalDate date; private LocalDate date;
private BigDecimal amount; private BigDecimal amount;
@Override
public Long getId() {
return incomeId;
}
} }

View File

@@ -4,15 +4,29 @@ import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue; import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType; import jakarta.persistence.GenerationType;
import jakarta.persistence.Id; import jakarta.persistence.Id;
import lombok.AccessLevel;
import lombok.Data; import lombok.Data;
import lombok.Getter;
@Data @Data
@Entity(name = "income_categories") @Entity(name = "income_categories")
public class IncomeCategory { public class IncomeCategory implements IMoneyTransactionCategory {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Getter(AccessLevel.NONE)
private Long categoryId; private Long categoryId;
@Getter(AccessLevel.NONE)
private String categoryName; private String categoryName;
@Override
public Long getId() {
return categoryId;
}
@Override
public String getName() {
return categoryName;
}
} }

View File

@@ -1,4 +1,3 @@
package com.faf223.expensetrackerfaf.model; package com.faf223.expensetrackerfaf.model;
public enum Role { public enum Role {

View File

@@ -1,4 +1,3 @@
package com.faf223.expensetrackerfaf.model; package com.faf223.expensetrackerfaf.model;
import jakarta.persistence.*; import jakarta.persistence.*;

View File

@@ -5,7 +5,6 @@ import com.faf223.expensetrackerfaf.model.User;
import com.faf223.expensetrackerfaf.repository.ExpenseRepository; import com.faf223.expensetrackerfaf.repository.ExpenseRepository;
import com.faf223.expensetrackerfaf.repository.UserRepository; import com.faf223.expensetrackerfaf.repository.UserRepository;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;

View File

@@ -5,7 +5,6 @@ import com.faf223.expensetrackerfaf.model.User;
import com.faf223.expensetrackerfaf.repository.IncomeRepository; import com.faf223.expensetrackerfaf.repository.IncomeRepository;
import com.faf223.expensetrackerfaf.repository.UserRepository; import com.faf223.expensetrackerfaf.repository.UserRepository;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;