diff --git a/pom.xml b/pom.xml index f38313e..a41a611 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.springframework.boot spring-boot-starter-parent 3.1.3 - + com.faf223 ExpenseTrackerFAF @@ -20,37 +20,31 @@ org.springframework.boot spring-boot-starter-web + 3.1.4 org.springframework.boot spring-boot-starter-data-jpa + - com.microsoft.sqlserver - mssql-jdbc + org.mariadb.jdbc + mariadb-java-client + 3.2.0 org.springframework.boot spring-boot-starter-test test - 3.1.2 org.springframework.boot spring-boot-starter-security - - org.springframework.boot - spring-boot-starter-data-jpa - 3.1.3 - - - - com.microsoft.sqlserver - mssql-jdbc - 12.4.1.jre11 + org.projectlombok + lombok @@ -61,5 +55,4 @@ - diff --git a/src/main/java/com/faf223/expensetrackerfaf/controller/BasicController.java b/src/main/java/com/faf223/expensetrackerfaf/controller/BasicController.java deleted file mode 100644 index fbb3f0c..0000000 --- a/src/main/java/com/faf223/expensetrackerfaf/controller/BasicController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.faf223.expensetrackerfaf.controller; - -import com.faf223.expensetrackerfaf.model.BasicEntity; -import com.faf223.expensetrackerfaf.repository.BasicRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.List; - -@RestController -@RequestMapping("/api/getData") -public class BasicController { - private final BasicRepository basicRepository; - - @Autowired - public BasicController(BasicRepository basicRepository) { - this.basicRepository = basicRepository; - } - - @GetMapping() - public List listDepartments() { - return basicRepository.findAll(); - } -} diff --git a/src/main/java/com/faf223/expensetrackerfaf/controller/ExpenseController.java b/src/main/java/com/faf223/expensetrackerfaf/controller/ExpenseController.java new file mode 100644 index 0000000..9769c9a --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/controller/ExpenseController.java @@ -0,0 +1,31 @@ +package com.faf223.expensetrackerfaf.controller; + +import com.faf223.expensetrackerfaf.model.Expense; +import com.faf223.expensetrackerfaf.service.ExpenseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/expenses") +public class ExpenseController { + + @Autowired + private ExpenseService expenseService; + + @GetMapping("/user/{userUuid}") + public ResponseEntity> getExpensesByUser(@PathVariable String userUuid) { + List expenses = expenseService.getExpensesByUserId(userUuid); + if (!expenses.isEmpty()) { + return ResponseEntity.ok(expenses); + } else { + return ResponseEntity.notFound().build(); + } + } +} + diff --git a/src/main/java/com/faf223/expensetrackerfaf/controller/IncomeController.java b/src/main/java/com/faf223/expensetrackerfaf/controller/IncomeController.java new file mode 100644 index 0000000..078c65a --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/controller/IncomeController.java @@ -0,0 +1,30 @@ +package com.faf223.expensetrackerfaf.controller; + +import com.faf223.expensetrackerfaf.model.Income; +import com.faf223.expensetrackerfaf.service.IncomeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/incomes") +public class IncomeController { + @Autowired + private IncomeService incomeService; + + @GetMapping("/user/{userUuid}") + public ResponseEntity> getIncomesByUser(@PathVariable String userUuid) { + List incomes = incomeService.getIncomesByUserId(userUuid); + if (!incomes.isEmpty()) { + return ResponseEntity.ok(incomes); + } else { + return ResponseEntity.notFound().build(); + } + } +} + diff --git a/src/main/java/com/faf223/expensetrackerfaf/controller/MainController.java b/src/main/java/com/faf223/expensetrackerfaf/controller/MainController.java index 6e8d9bf..0ce20b5 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/controller/MainController.java +++ b/src/main/java/com/faf223/expensetrackerfaf/controller/MainController.java @@ -1,66 +1,66 @@ -package com.faf223.expensetrackerfaf.controller; - -import com.faf223.expensetrackerfaf.model.Expense; -import com.faf223.expensetrackerfaf.model.Income; -import com.faf223.expensetrackerfaf.model.Role; -import com.faf223.expensetrackerfaf.model.User; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -@RestController -public class MainController { - - @GetMapping("/") - public String helloWorld() { - return "Hello, World!"; - } - - @GetMapping("/users/get/{id}") - public User getUser(@PathVariable int id) { - return new User(id, "Test", null, null, null, null, null, null); - } - - @PostMapping("/users/set/{id}/name") - public String setName(@PathVariable int id, - @RequestParam("name") String name) { - throw new UnsupportedOperationException("Waiting for the DB."); - } - - @PostMapping("/users/set/{id}/email") - public String setEmail(@PathVariable int id, - @RequestParam("email") String email) { - throw new UnsupportedOperationException("Waiting for the DB."); - } - - @PostMapping("/users/set/{id}/login") - public String setLogin(@PathVariable int id, - @RequestParam("login") String login) { - throw new UnsupportedOperationException("Waiting for the DB."); - } - - @PostMapping("/users/set/{id}/password") - public String setPassword(@PathVariable int id, - @RequestParam("password") String password) { - throw new UnsupportedOperationException("Waiting for the DB."); - } - - @PostMapping("/users/set/{id}/role") - public String setRole(@PathVariable int id, - @RequestParam("role") Role role) { - throw new UnsupportedOperationException("Waiting for the DB."); - } - - @PostMapping("/users/set/{id}/expenses") - public String setExpenses(@PathVariable int id, - @RequestParam("expenses") List expenses) { - throw new UnsupportedOperationException("Waiting for the DB."); - } - - @PostMapping("/users/set/{id}/incomes") - public String setIncomes(@PathVariable int id, - @RequestParam("incomes")List incomes) { - throw new UnsupportedOperationException("Waiting for the DB."); - } - -} \ No newline at end of file +//package com.faf223.expensetrackerfaf.controller; +// +//import com.faf223.expensetrackerfaf.model.Expense; +//import com.faf223.expensetrackerfaf.model.Income; +//import com.faf223.expensetrackerfaf.model.Role; +//import com.faf223.expensetrackerfaf.model.User; +//import org.springframework.web.bind.annotation.*; +// +//import java.util.List; +// +//@RestController +//public class MainController { +// +// @GetMapping("/") +// public String helloWorld() { +// return "Hello, World!"; +// } +// +// @GetMapping("/users/get/{id}") +// public User getUser(@PathVariable int id) { +// return new User(id, "Test", null, null, null, null, null, null); +// } +// +// @PostMapping("/users/set/{id}/name") +// public String setName(@PathVariable int id, +// @RequestParam("name") String name) { +// throw new UnsupportedOperationException("Waiting for the DB."); +// } +// +// @PostMapping("/users/set/{id}/email") +// public String setEmail(@PathVariable int id, +// @RequestParam("email") String email) { +// throw new UnsupportedOperationException("Waiting for the DB."); +// } +// +// @PostMapping("/users/set/{id}/login") +// public String setLogin(@PathVariable int id, +// @RequestParam("login") String login) { +// throw new UnsupportedOperationException("Waiting for the DB."); +// } +// +// @PostMapping("/users/set/{id}/password") +// public String setPassword(@PathVariable int id, +// @RequestParam("password") String password) { +// throw new UnsupportedOperationException("Waiting for the DB."); +// } +// +// @PostMapping("/users/set/{id}/role") +// public String setRole(@PathVariable int id, +// @RequestParam("role") Role role) { +// throw new UnsupportedOperationException("Waiting for the DB."); +// } +// +// @PostMapping("/users/set/{id}/expenses") +// public String setExpenses(@PathVariable int id, +// @RequestParam("expenses") List expenses) { +// throw new UnsupportedOperationException("Waiting for the DB."); +// } +// +// @PostMapping("/users/set/{id}/incomes") +// public String setIncomes(@PathVariable int id, +// @RequestParam("incomes")List incomes) { +// throw new UnsupportedOperationException("Waiting for the DB."); +// } +// +//} \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/controller/UserController.java b/src/main/java/com/faf223/expensetrackerfaf/controller/UserController.java new file mode 100644 index 0000000..a9de44e --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/controller/UserController.java @@ -0,0 +1,29 @@ +package com.faf223.expensetrackerfaf.controller; + +import com.faf223.expensetrackerfaf.model.User; +import com.faf223.expensetrackerfaf.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/users") +public class UserController { + + @Autowired + private UserService userService; + + @GetMapping("/{userUuid}") + public ResponseEntity getUser(@PathVariable String userUuid) { + User user = userService.getUserById(userUuid); + if (user != null) { + return ResponseEntity.ok(user); + } else { + return ResponseEntity.notFound().build(); + } + } +} + diff --git a/src/main/java/com/faf223/expensetrackerfaf/custom/UppercaseStrategy.java b/src/main/java/com/faf223/expensetrackerfaf/custom/UppercaseStrategy.java deleted file mode 100644 index 9c3cc83..0000000 --- a/src/main/java/com/faf223/expensetrackerfaf/custom/UppercaseStrategy.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.faf223.expensetrackerfaf.custom; - -import org.hibernate.boot.model.naming.Identifier; -import org.hibernate.boot.model.naming.PhysicalNamingStrategy; -import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; - -public class UppercaseStrategy implements PhysicalNamingStrategy { - - @Override - public Identifier toPhysicalCatalogName(Identifier identifier, JdbcEnvironment jdbcEnvironment) { - return identifier; // No modification for catalog name - } - - @Override - public Identifier toPhysicalSchemaName(Identifier identifier, JdbcEnvironment jdbcEnvironment) { - return identifier; // No modification for schema name - } - - @Override - public Identifier toPhysicalTableName(Identifier name, JdbcEnvironment context) { - String tableName = name.getText(); - return new Identifier(tableName, name.isQuoted()); - } - - @Override - public Identifier toPhysicalSequenceName(Identifier identifier, JdbcEnvironment jdbcEnvironment) { - return identifier; // No modification for sequence name - } - - @Override - public Identifier toPhysicalColumnName(Identifier identifier, JdbcEnvironment jdbcEnvironment) { - return identifier; // No modification for column name - } - - @Override - public Identifier toPhysicalTypeName(Identifier logicalName, JdbcEnvironment jdbcEnvironment) { - return PhysicalNamingStrategy.super.toPhysicalTypeName(logicalName, jdbcEnvironment); - } -} diff --git a/src/main/java/com/faf223/expensetrackerfaf/model/BasicEntity.java b/src/main/java/com/faf223/expensetrackerfaf/model/BasicEntity.java deleted file mode 100644 index 06f0644..0000000 --- a/src/main/java/com/faf223/expensetrackerfaf/model/BasicEntity.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.faf223.expensetrackerfaf.model; - -import jakarta.persistence.*; -import java.util.Date; - -@Entity -@Table(name = "Department", schema = "HumanResources") -public class BasicEntity { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "DepartmentID") - private Short departmentId; - - @Column(name = "GroupName", nullable = false, length = 50) - private String groupName; - - @Column(name = "ModifiedDate", nullable = false) - @Temporal(TemporalType.TIMESTAMP) - private Date modifiedDate; - - @Column(name = "Name", nullable = false, length = 50) - private String name; - - public Short getDepartmentId() { - return departmentId; - } - public String getGroupName() { - return groupName; - } - public Date getModifiedDate() { - return modifiedDate; - } - - public String getName() { - return name; - } -} diff --git a/src/main/java/com/faf223/expensetrackerfaf/model/Categories.java b/src/main/java/com/faf223/expensetrackerfaf/model/Categories.java deleted file mode 100644 index a309f85..0000000 --- a/src/main/java/com/faf223/expensetrackerfaf/model/Categories.java +++ /dev/null @@ -1,34 +0,0 @@ - -package com.faf223.expensetrackerfaf.model; - -public class Categories { - - public enum ExpenseCategory { - CREDIT, BUY, BUSINESS, ENTERTAINMENT, RESTAURANTS_AND_CAFE, COMMUNAL_PAYMENTS, SUPERMARKET, MISC; - - public String getEffectiveName() { - return Categories.getEffectiveName(this.name()); - } - } - - public enum IncomeCategory { - P2P, SALARY, GIFT, CREDIT, MISC; - - public String getEffectiveName() { - return Categories.getEffectiveName(this.name()); - } - } - - private static String getEffectiveName(String name) { - String[] arr = name.split("_"); - StringBuilder result = new StringBuilder(); - for(String entry : arr) { - String[] entryArr = entry.split(""); - StringBuilder builder = new StringBuilder(entryArr[0]); - for(int i = 1; i < entry.length(); i++) builder.append(entryArr[i].toLowerCase()); - result.append(builder).append(" "); - } - return result.toString(); - } - -} diff --git a/src/main/java/com/faf223/expensetrackerfaf/model/Credential.java b/src/main/java/com/faf223/expensetrackerfaf/model/Credential.java new file mode 100644 index 0000000..aa2b4bd --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/model/Credential.java @@ -0,0 +1,20 @@ +package com.faf223.expensetrackerfaf.model; + +import jakarta.persistence.*; +import lombok.Data; + +@Data +@Entity(name = "credentials") +public class Credential { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long credentialId; + + @ManyToOne + @JoinColumn(name = "user_uuid") + private User user; + + private String email; + private String password; +} + diff --git a/src/main/java/com/faf223/expensetrackerfaf/model/Expense.java b/src/main/java/com/faf223/expensetrackerfaf/model/Expense.java index 5c43723..67df9cf 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/model/Expense.java +++ b/src/main/java/com/faf223/expensetrackerfaf/model/Expense.java @@ -1,63 +1,26 @@ - package com.faf223.expensetrackerfaf.model; -import com.faf223.expensetrackerfaf.util.IMoneyTransaction; import jakarta.persistence.*; +import lombok.Data; -@Entity -@Table(name = "expense") -public class Expense implements IMoneyTransaction { +import java.math.BigDecimal; +import java.time.LocalDate; +@Data +@Entity(name = "expenses") +public class Expense { @Id - @Column(name = "id") @GeneratedValue(strategy = GenerationType.IDENTITY) - private long id; + private Long expenseId; @ManyToOne - @JoinColumn(name = "user_id", referencedColumnName = "id") + @JoinColumn(name = "user_uuid") private User user; - private int amount; - private Categories.ExpenseCategory category; - public Expense(User user, int amount, Categories.ExpenseCategory category) { - this.user = user; - this.amount = amount; - this.category = category; - } + @ManyToOne + @JoinColumn(name = "category_id") + private ExpenseCategory category; - public Expense() {} - - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - @Override - public User getUser() { - return user; - } - - public void setUser(User user) { - this.user = user; - } - - @Override - public int getAmount() { - return amount; - } - - public void setAmount(int amount) { - this.amount = amount; - } - - @Override - public String getCategory() { - return category.getEffectiveName(); - } - - public void setCategory(Categories.ExpenseCategory category) { - this.category = category; - } + private LocalDate date; + private BigDecimal amount; } + diff --git a/src/main/java/com/faf223/expensetrackerfaf/model/ExpenseCategory.java b/src/main/java/com/faf223/expensetrackerfaf/model/ExpenseCategory.java new file mode 100644 index 0000000..7662ce6 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/model/ExpenseCategory.java @@ -0,0 +1,17 @@ +package com.faf223.expensetrackerfaf.model; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import lombok.Data; + +@Data +@Entity(name = "expense_categories") +public class ExpenseCategory { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long categoryId; + + private String categoryName; +} diff --git a/src/main/java/com/faf223/expensetrackerfaf/model/Income.java b/src/main/java/com/faf223/expensetrackerfaf/model/Income.java index 55fbaef..38344a7 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/model/Income.java +++ b/src/main/java/com/faf223/expensetrackerfaf/model/Income.java @@ -1,67 +1,26 @@ package com.faf223.expensetrackerfaf.model; -import com.faf223.expensetrackerfaf.util.IMoneyTransaction; import jakarta.persistence.*; +import lombok.Data; -@Entity -@Table(name = "income") -public class Income implements IMoneyTransaction { +import java.math.BigDecimal; +import java.time.LocalDate; +@Data +@Entity(name = "incomes") +public class Income { @Id - @Column(name = "id") @GeneratedValue(strategy = GenerationType.IDENTITY) - private long id; + private Long incomeId; @ManyToOne - @JoinColumn(name = "user_id", referencedColumnName = "id") + @JoinColumn(name = "user_uuid") private User user; - private int amount; - private Categories.IncomeCategory category; - public Income(User user, int amount, Categories.IncomeCategory category) { - this.user = user; - this.amount = amount; - this.category = category; - } + @ManyToOne + @JoinColumn(name = "category_id") + private IncomeCategory category; - public Income() {} - - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public void setUser(User user) { - this.user = user; - } - - @Override - public User getUser() { - return user; - } - - @Override - public int getAmount() { - return amount; - } - - @Override - public String getCategory() { - return category.getEffectiveName(); - } - - public void setUserId(User user) { - this.user = user; - } - - public void setAmount(int amount) { - this.amount = amount; - } - - public void setCategory(Categories.IncomeCategory category) { - this.category = category; - } + private LocalDate date; + private BigDecimal amount; } diff --git a/src/main/java/com/faf223/expensetrackerfaf/model/IncomeCategory.java b/src/main/java/com/faf223/expensetrackerfaf/model/IncomeCategory.java new file mode 100644 index 0000000..8bb54f0 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/model/IncomeCategory.java @@ -0,0 +1,18 @@ +package com.faf223.expensetrackerfaf.model; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import lombok.Data; + +@Data +@Entity(name = "income_categories") +public class IncomeCategory { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long categoryId; + + private String categoryName; +} + diff --git a/src/main/java/com/faf223/expensetrackerfaf/model/User.java b/src/main/java/com/faf223/expensetrackerfaf/model/User.java index 65ed712..b5a30a9 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/model/User.java +++ b/src/main/java/com/faf223/expensetrackerfaf/model/User.java @@ -1,101 +1,18 @@ - package com.faf223.expensetrackerfaf.model; -import jakarta.persistence.*; -import java.util.List; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import lombok.Data; -@Entity -@Table(name = "User") +@Data +@Entity(name = "users") public class User { @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private long id; + @Column(table = "users", name = "user_uuid") + private String userUuid; + private String name; - private String email; - private String login; - private String password; - private Role role; - - @OneToMany(mappedBy = "user") - private List expenses; - - @OneToMany(mappedBy = "user") - private List incomes; - - public User(long id, String name, String email, String login, String password, Role role, List expenses, List incomes) { - this.id = id; - this.name = name; - this.email = email; - this.login = login; - this.password = password; - this.role = role; - this.expenses = expenses; - this.incomes = incomes; - } - - public User() {} - - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getLogin() { - return login; - } - - public void setLogin(String login) { - this.login = login; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public Role getRole() { - return role; - } - - public void setRole(Role role) { - this.role = role; - } - - public List getExpenses() { - return expenses; - } - - public void setExpenses(List expenses) { - this.expenses = expenses; - } - - public List getIncomes() { - return incomes; - } - - public void setIncomes(List incomes) { - this.incomes = incomes; - } + private String surname; + private String username; } diff --git a/src/main/java/com/faf223/expensetrackerfaf/repository/BasicRepository.java b/src/main/java/com/faf223/expensetrackerfaf/repository/BasicRepository.java deleted file mode 100644 index 94f10e3..0000000 --- a/src/main/java/com/faf223/expensetrackerfaf/repository/BasicRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.faf223.expensetrackerfaf.repository; - -import com.faf223.expensetrackerfaf.model.BasicEntity; - -import java.util.List; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface BasicRepository extends JpaRepository { - // You can define custom query methods here if needed -} - diff --git a/src/main/java/com/faf223/expensetrackerfaf/repository/CredentialRepository.java b/src/main/java/com/faf223/expensetrackerfaf/repository/CredentialRepository.java new file mode 100644 index 0000000..346136a --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/repository/CredentialRepository.java @@ -0,0 +1,9 @@ +package com.faf223.expensetrackerfaf.repository; + +import com.faf223.expensetrackerfaf.model.Credential; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface CredentialRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/repository/ExpenseCategoryRepository.java b/src/main/java/com/faf223/expensetrackerfaf/repository/ExpenseCategoryRepository.java new file mode 100644 index 0000000..91deb28 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/repository/ExpenseCategoryRepository.java @@ -0,0 +1,9 @@ +package com.faf223.expensetrackerfaf.repository; + +import com.faf223.expensetrackerfaf.model.ExpenseCategory; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface ExpenseCategoryRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/repository/ExpenseRepository.java b/src/main/java/com/faf223/expensetrackerfaf/repository/ExpenseRepository.java new file mode 100644 index 0000000..4cd39d0 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/repository/ExpenseRepository.java @@ -0,0 +1,12 @@ +package com.faf223.expensetrackerfaf.repository; + +import com.faf223.expensetrackerfaf.model.Expense; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface ExpenseRepository extends JpaRepository { + List findByUserUserUuid(String userUuid); +} diff --git a/src/main/java/com/faf223/expensetrackerfaf/repository/IncomeCategoryRepository.java b/src/main/java/com/faf223/expensetrackerfaf/repository/IncomeCategoryRepository.java new file mode 100644 index 0000000..e6c8402 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/repository/IncomeCategoryRepository.java @@ -0,0 +1,9 @@ +package com.faf223.expensetrackerfaf.repository; + +import com.faf223.expensetrackerfaf.model.IncomeCategory; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface IncomeCategoryRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/repository/IncomeRepository.java b/src/main/java/com/faf223/expensetrackerfaf/repository/IncomeRepository.java new file mode 100644 index 0000000..9a1a592 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/repository/IncomeRepository.java @@ -0,0 +1,12 @@ +package com.faf223.expensetrackerfaf.repository; + +import com.faf223.expensetrackerfaf.model.Income; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface IncomeRepository extends JpaRepository { + List findByUserUserUuid(String userUuid); +} diff --git a/src/main/java/com/faf223/expensetrackerfaf/repository/UserRepository.java b/src/main/java/com/faf223/expensetrackerfaf/repository/UserRepository.java new file mode 100644 index 0000000..9e4e015 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/repository/UserRepository.java @@ -0,0 +1,9 @@ +package com.faf223.expensetrackerfaf.repository; + +import com.faf223.expensetrackerfaf.model.User; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface UserRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/service/BasicService.java b/src/main/java/com/faf223/expensetrackerfaf/service/BasicService.java deleted file mode 100644 index a424dce..0000000 --- a/src/main/java/com/faf223/expensetrackerfaf/service/BasicService.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.faf223.expensetrackerfaf.service; - -import com.faf223.expensetrackerfaf.model.BasicEntity; - -import java.util.List; - -public interface BasicService { - List getAllData(); -} diff --git a/src/main/java/com/faf223/expensetrackerfaf/service/BasicServiceImpl.java b/src/main/java/com/faf223/expensetrackerfaf/service/BasicServiceImpl.java deleted file mode 100644 index 8a83825..0000000 --- a/src/main/java/com/faf223/expensetrackerfaf/service/BasicServiceImpl.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.faf223.expensetrackerfaf.service; - -import com.faf223.expensetrackerfaf.model.BasicEntity; -import com.faf223.expensetrackerfaf.repository.BasicRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -public class BasicServiceImpl implements BasicService { - private final BasicRepository basicRepository; - - @Autowired - public BasicServiceImpl(BasicRepository basicRepository) { - this.basicRepository = basicRepository; - } - - @Override - public List getAllData() { - return basicRepository.findAll(); - } -} diff --git a/src/main/java/com/faf223/expensetrackerfaf/service/ExpenseService.java b/src/main/java/com/faf223/expensetrackerfaf/service/ExpenseService.java new file mode 100644 index 0000000..443ca0d --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/service/ExpenseService.java @@ -0,0 +1,19 @@ +package com.faf223.expensetrackerfaf.service; + +import com.faf223.expensetrackerfaf.model.Expense; +import com.faf223.expensetrackerfaf.repository.ExpenseRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class ExpenseService { + + @Autowired + private ExpenseRepository expenseRepository; + + public List getExpensesByUserId(String userUuid) { + return expenseRepository.findByUserUserUuid(userUuid); + } +} \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/service/IncomeService.java b/src/main/java/com/faf223/expensetrackerfaf/service/IncomeService.java new file mode 100644 index 0000000..5ca97d1 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/service/IncomeService.java @@ -0,0 +1,18 @@ +package com.faf223.expensetrackerfaf.service; + +import com.faf223.expensetrackerfaf.model.Income; +import com.faf223.expensetrackerfaf.repository.IncomeRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class IncomeService { + @Autowired + private IncomeRepository incomeRepository; + + public List getIncomesByUserId(String userUuid) { + return incomeRepository.findByUserUserUuid(userUuid); + } +} diff --git a/src/main/java/com/faf223/expensetrackerfaf/service/UserService.java b/src/main/java/com/faf223/expensetrackerfaf/service/UserService.java new file mode 100644 index 0000000..e9c3798 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/service/UserService.java @@ -0,0 +1,17 @@ +package com.faf223.expensetrackerfaf.service; + +import com.faf223.expensetrackerfaf.model.User; +import com.faf223.expensetrackerfaf.repository.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class UserService { + + @Autowired + private UserRepository userRepository; + + public User getUserById(String userUuid) { + return userRepository.findById(userUuid).orElse(null); + } +} \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 27b9961..11854ec 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,5 +1,9 @@ -spring.datasource.url=jdbc:sqlserver://DANIEL-LAPTOP\\SQLEXPRESS01:1433;databaseName=AdventureWorks2022;encrypt=true;user=Daniel1;password=daniel;trustServerCertificate=true; -spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver -spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServer2008Dialect -spring.jpa.hibernate.naming.physical-strategy=com.faf223.expensetrackerfaf.custom.UppercaseStrategy +# MySQL Connection Configuration +spring.datasource.url=jdbc:mariadb://194.195.242.137:3306/expensetracker +spring.datasource.username=root +spring.datasource.password=daniel$$$javatop +spring.datasource.driver-class-name=org.mariadb.jdbc.Driver +# Hibernate Configuration +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect +server.port=8081