diff --git a/.gitignore b/.gitignore
index d9273a9..890199e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@ target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
+/src/main/resources/application.properties
### STS ###
.apt_generated
diff --git a/pom.xml b/pom.xml
index e90d662..02f1b6f 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.mysql
- mysql-connector-j
- 8.1.0
+ org.projectlombok
+ lombok
io.jsonwebtoken
@@ -82,5 +76,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 20112c1..47ba33b 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);
- }
-
- @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.");
+// }
+//
+//}
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 57a2ea6..38344a7 100644
--- a/src/main/java/com/faf223/expensetrackerfaf/model/Income.java
+++ b/src/main/java/com/faf223/expensetrackerfaf/model/Income.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 = "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 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/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
index edc0209..4cd39d0 100644
--- a/src/main/java/com/faf223/expensetrackerfaf/repository/ExpenseRepository.java
+++ b/src/main/java/com/faf223/expensetrackerfaf/repository/ExpenseRepository.java
@@ -2,6 +2,11 @@ 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
index 818dcfd..9a1a592 100644
--- a/src/main/java/com/faf223/expensetrackerfaf/repository/IncomeRepository.java
+++ b/src/main/java/com/faf223/expensetrackerfaf/repository/IncomeRepository.java
@@ -2,6 +2,11 @@ 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/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