From a791166abb2f5f955fee2d7883ee8f45e16a8b0e Mon Sep 17 00:00:00 2001 From: zekai Date: Fri, 18 Dec 2020 16:26:24 -0500 Subject: [PATCH 1/2] created branch --- .idea/FullStack.MicroWebApplication-Server.iml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.idea/FullStack.MicroWebApplication-Server.iml b/.idea/FullStack.MicroWebApplication-Server.iml index 52657c62b..0aa0bb8a3 100644 --- a/.idea/FullStack.MicroWebApplication-Server.iml +++ b/.idea/FullStack.MicroWebApplication-Server.iml @@ -14,7 +14,9 @@ - + + + From a82c6ce5fa0d81b38dd37e8b375a919bd5c808aa Mon Sep 17 00:00:00 2001 From: zekai Date: Wed, 23 Dec 2020 12:11:08 -0500 Subject: [PATCH 2/2] Added Address class and some DB relationships --- .idea/sqldialects.xml | 8 + src/main/Queries/.DS_Store | Bin 6148 -> 0 bytes src/main/Queries/MMDump.sql | 137 ------------------ .../runner/controllers/AccountController.java | 17 ++- .../runner/controllers/UserController.java | 46 +++--- src/main/java/runner/entities/Account.java | 65 ++++++--- src/main/java/runner/entities/Address.java | 74 ++++++++++ src/main/java/runner/entities/Checking.java | 4 + src/main/java/runner/entities/Checkings.java | 4 - src/main/java/runner/entities/Investment.java | 7 + .../java/runner/entities/Investments.java | 7 - src/main/java/runner/entities/Login.java | 18 ++- .../java/runner/entities/Transaction.java | 62 ++++++++ .../runner/entities/TransactionHistory.java | 19 --- src/main/java/runner/entities/User.java | 90 ++++++++++-- .../runner/repositories/TransactionRepo.java | 4 +- .../java/runner/services/AccountServices.java | 34 ++--- .../runner/services/TransactionServices.java | 8 +- .../java/runner/services/UserServices.java | 31 ++-- src/main/resources/application.properties | 22 ++- src/main/resources/db/data.sql | 46 ++++++ src/main/resources/db/import.sql | 37 +++++ src/main/resources/db/schema.sql | 122 ++++++++++++++++ target/classes/application.properties | 26 +++- target/classes/db/data.sql | 46 ++++++ target/classes/db/import.sql | 37 +++++ target/classes/db/schema.sql | 122 ++++++++++++++++ .../controllers/AccountController.class | Bin 2057 -> 2981 bytes .../runner/controllers/UserController.class | Bin 1592 -> 3205 bytes target/classes/runner/entities/Account.class | Bin 2754 -> 3769 bytes target/classes/runner/entities/Address.class | Bin 0 -> 2048 bytes target/classes/runner/entities/Checking.class | Bin 0 -> 288 bytes .../classes/runner/entities/Checkings.class | Bin 291 -> 0 bytes .../classes/runner/entities/Investment.class | Bin 0 -> 294 bytes .../classes/runner/entities/Investments.class | Bin 297 -> 0 bytes target/classes/runner/entities/Login.class | Bin 1426 -> 1390 bytes .../classes/runner/entities/Transaction.class | Bin 0 -> 2177 bytes .../runner/entities/TransactionHistory.class | Bin 728 -> 0 bytes target/classes/runner/entities/User.class | Bin 2432 -> 3870 bytes .../runner/repositories/TransactionRepo.class | Bin 422 -> 415 bytes .../runner/services/AccountServices.class | Bin 1978 -> 3115 bytes .../runner/services/TransactionServices.class | Bin 1063 -> 1056 bytes .../runner/services/UserServices.class | Bin 1482 -> 2152 bytes 43 files changed, 805 insertions(+), 288 deletions(-) create mode 100644 .idea/sqldialects.xml delete mode 100644 src/main/Queries/.DS_Store delete mode 100644 src/main/Queries/MMDump.sql create mode 100644 src/main/java/runner/entities/Address.java create mode 100644 src/main/java/runner/entities/Checking.java delete mode 100644 src/main/java/runner/entities/Checkings.java create mode 100644 src/main/java/runner/entities/Investment.java delete mode 100644 src/main/java/runner/entities/Investments.java create mode 100644 src/main/java/runner/entities/Transaction.java delete mode 100644 src/main/java/runner/entities/TransactionHistory.java create mode 100644 src/main/resources/db/data.sql create mode 100644 src/main/resources/db/import.sql create mode 100644 src/main/resources/db/schema.sql create mode 100644 target/classes/db/data.sql create mode 100644 target/classes/db/import.sql create mode 100644 target/classes/db/schema.sql create mode 100644 target/classes/runner/entities/Address.class create mode 100644 target/classes/runner/entities/Checking.class delete mode 100644 target/classes/runner/entities/Checkings.class create mode 100644 target/classes/runner/entities/Investment.class delete mode 100644 target/classes/runner/entities/Investments.class create mode 100644 target/classes/runner/entities/Transaction.class delete mode 100644 target/classes/runner/entities/TransactionHistory.class diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml new file mode 100644 index 000000000..32cc987d1 --- /dev/null +++ b/.idea/sqldialects.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/Queries/.DS_Store b/src/main/Queries/.DS_Store deleted file mode 100644 index ee927c5637332f8b82096041b1e88fd9aa4e2e7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKJx{|x41Iwwhu%~DmH|` zj_%%l*yr<;a(4zGqxsc7kO3I7D2g_EM2CB)R+937D7MBN_n6@VCB{7q{l+2Pdxk?y z`PKNm{~2T0!!sUH9ar^qQq>dF1rCV2t%-%Si4)r1;Fi&Q?8|Lm7HrpW%CDs7J3K7$ z_ey%V++W+$ego&+*EOEL^CsI1-fX*31p~oAFc1v4s|?p2qYegwfneZ+0X-jb z7R4fA<7h_*D@y^0`iwSVTXPAu$rBa{8%NGi#7&8ADk;SfH|Kbs^ooRyqnkrg@*&Cd zd-5XYo$KeO4k;X?4hDjOE(5FH&Gi01;xE&i readById(@PathVariable Long id) { return new ResponseEntity<>(accountServices.readAccount(id), HttpStatus.OK); } - @PostMapping(value = "/create") public ResponseEntity create(@RequestBody Account account) { return new ResponseEntity<>(accountServices.createAccount(account), HttpStatus.CREATED); } - -} + @PutMapping(value = "/update/{id}") + public ResponseEntity> update(@RequestBody Account account, @PathVariable Long id) { + return new ResponseEntity<>(accountServices.updateAccount(id,account), HttpStatus.OK); + } + @DeleteMapping(value = "/delete/{id}") + public ResponseEntity deleteById(@PathVariable Long id) { + return new ResponseEntity<>(accountServices.removeAccount(id), HttpStatus.OK); + } +} \ No newline at end of file diff --git a/src/main/java/runner/controllers/UserController.java b/src/main/java/runner/controllers/UserController.java index 63a94e41d..da53cd8ed 100644 --- a/src/main/java/runner/controllers/UserController.java +++ b/src/main/java/runner/controllers/UserController.java @@ -1,44 +1,36 @@ package runner.controllers; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import runner.entities.User; import runner.services.UserServices; +import java.util.Optional; @RequestMapping("/user") @RestController public class UserController { @Autowired private UserServices userServices; - @GetMapping(value = "/read/{id}") - public ResponseEntity readById(@PathVariable Long id) { - return new ResponseEntity<>(userServices.readUser(id), HttpStatus.OK); + public ResponseEntity readById(@PathVariable Long id) throws Exception { + if(new ResponseEntity<>(userServices.readUser(id), HttpStatus.OK) == null) throw new Exception("Error , the user id is null") ; + else + return new ResponseEntity<>(userServices.readUser(id), HttpStatus.OK); } - -//// @GetMapping(value = "/readAll") -//// public ResponseEntity> readAll() { -//// return new ResponseEntity<>(userServices.readAll(), HttpStatus.OK); -//// } -// @PostMapping(value = "/user/create") -// public ResponseEntity create(@RequestBody User user) { -// return new ResponseEntity<>(userServices.createUser(user), HttpStatus.CREATED); -// } -// -// @PutMapping(value = "/user/update/{id}") -// public ResponseEntity update(@RequestBody User user,@PathVariable Long id) { -// return new ResponseEntity<>(userServices.updateUser(id,user), HttpStatus.OK); -// } -// -// @DeleteMapping(value = "/user/delete/{id}") -// public ResponseEntity deleteById(@PathVariable Long id) { -// return new ResponseEntity<>(userServices.deleteUser(id), HttpStatus.OK); -// } - - @GetMapping(value = "/home") + @PostMapping(value = "/create") + public ResponseEntity create(@RequestBody User user) { + return new ResponseEntity<>(userServices.createUser(user), HttpStatus.CREATED); + } + @PutMapping(value = "/update/{id}") + public ResponseEntity update(@RequestBody User user,@PathVariable Long id) { + return new ResponseEntity<>(userServices.updateUser(id,user), HttpStatus.OK); + } + @DeleteMapping(value = "/delete/{id}") + public ResponseEntity deleteById(@PathVariable Long id) { + return new ResponseEntity<>(userServices.deleteUser(id), HttpStatus.OK); + } + @GetMapping(value = "/home") public String displayHome() { return "Hello World"; } - -} +} \ No newline at end of file diff --git a/src/main/java/runner/entities/Account.java b/src/main/java/runner/entities/Account.java index fea81d22f..3581d1145 100644 --- a/src/main/java/runner/entities/Account.java +++ b/src/main/java/runner/entities/Account.java @@ -1,44 +1,55 @@ package runner.entities; +import com.fasterxml.jackson.annotation.JsonBackReference; +import com.fasterxml.jackson.annotation.JsonManagedReference; import runner.enums.AccountType; import javax.persistence.*; import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; @Entity public class Account { @Id @GeneratedValue(strategy = GenerationType.AUTO) - protected Long id; - //@Column(name = "user_id") + private Long id; + @Column(nullable = false) + private String accountNumber; + @Column(nullable = false) + private String routingNumber; + @Enumerated(EnumType.STRING) + @Column(nullable = false) + private AccountType accountType; //enum + @Column(nullable = false) + private Double balance; + @Column(nullable = false) + private LocalDate dateOfOpening; + @Column(nullable = false) + private Double interestRate; + + @JsonBackReference(value = "name1") + @OneToMany(mappedBy = "account" ,cascade= CascadeType.ALL, fetch=FetchType.EAGER) + private Set transactionsList; + + @JsonBackReference (value = "name2") @ManyToOne + @JoinColumn(name = "UserId", nullable = false) private User user; - @Column(name = "account_number") - protected String accountNumber; - @Column(name = "routing_number") - protected String routingNumber; - @Enumerated(EnumType.STRING) - @Column(name = "account_type") - protected AccountType accountType; //enum - @Column(name = "balance") - protected Double balance; - @Column(name = "date_of_opening") - protected LocalDate dateOfOpening; - @Column(name = "interest_rate") - protected Double interestRate; + +// @ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.EAGER) +// private User user; public Account() { } - public Long getId() { return id; } - public void setId(Long id) { this.id = id; } - - public String getAccountNumber() { + public String getAccountNumber() { return accountNumber; } @@ -85,4 +96,20 @@ public Double getInterestRate() { public void setInterestRate(Double interestRate) { this.interestRate = interestRate; } + + public Set getTransactionsList() { + return transactionsList; + } + + public void setTransactionsList(Set transactionsList) { + this.transactionsList = transactionsList; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } } \ No newline at end of file diff --git a/src/main/java/runner/entities/Address.java b/src/main/java/runner/entities/Address.java new file mode 100644 index 000000000..c3a056ec7 --- /dev/null +++ b/src/main/java/runner/entities/Address.java @@ -0,0 +1,74 @@ +package runner.entities; + +import javax.persistence.*; +import java.time.LocalDate; + +@Entity +public class Address { + @Id + @Column(name = "userId") //references userID from user + private Long id; + @Column(nullable = false) + private String firstLine; + @Column(nullable = true) + private String secondLIne; + @Column(nullable = false) + private String city; + @Column(nullable = false) + private String state; + @Column(nullable = false) + private String zipcode; + + @OneToOne + @MapsId + @JoinColumn(name = "userId") + private User user; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getFirstLine() { + return firstLine; + } + + public void setFirstLine(String firstLine) { + this.firstLine = firstLine; + } + + public String getSecondLIne() { + return secondLIne; + } + + public void setSecondLIne(String secondLIne) { + this.secondLIne = secondLIne; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getZipcode() { + return zipcode; + } + + public void setZipcode(String zipcode) { + this.zipcode = zipcode; + } +} diff --git a/src/main/java/runner/entities/Checking.java b/src/main/java/runner/entities/Checking.java new file mode 100644 index 000000000..f1728e7ff --- /dev/null +++ b/src/main/java/runner/entities/Checking.java @@ -0,0 +1,4 @@ +package runner.entities; + +public class Checking extends Account{ +} diff --git a/src/main/java/runner/entities/Checkings.java b/src/main/java/runner/entities/Checkings.java deleted file mode 100644 index fab3d0e59..000000000 --- a/src/main/java/runner/entities/Checkings.java +++ /dev/null @@ -1,4 +0,0 @@ -package runner.entities; - -public class Checkings extends Account{ -} diff --git a/src/main/java/runner/entities/Investment.java b/src/main/java/runner/entities/Investment.java new file mode 100644 index 000000000..0abc3cfee --- /dev/null +++ b/src/main/java/runner/entities/Investment.java @@ -0,0 +1,7 @@ +package runner.entities; + +public class Investment extends Account{ + + + +} diff --git a/src/main/java/runner/entities/Investments.java b/src/main/java/runner/entities/Investments.java deleted file mode 100644 index 6cc562504..000000000 --- a/src/main/java/runner/entities/Investments.java +++ /dev/null @@ -1,7 +0,0 @@ -package runner.entities; - -public class Investments extends Account{ - - - -} diff --git a/src/main/java/runner/entities/Login.java b/src/main/java/runner/entities/Login.java index 2ba4cd782..d65133d0b 100644 --- a/src/main/java/runner/entities/Login.java +++ b/src/main/java/runner/entities/Login.java @@ -5,12 +5,20 @@ @Entity public class Login { @Id - @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "userId") //references userID from user private Long id; - private Long userId; +// @Column(nullable = false) +// private Long userId; + @Column(nullable = false) private String username; + @Column(nullable = false) private String password; + @OneToOne + @MapsId + @JoinColumn(name = "userId") + private User user; + public Login() { } @@ -22,9 +30,9 @@ public void setId(Long id) { this.id = id; } - public Long getUserId() { return userId; } - - public void setUserId(Long userId) { this.userId = userId; } +// public Long getUserId() { return userId; } +// +// public void setUserId(Long userId) { this.userId = userId; } public String getUsername() { return username; diff --git a/src/main/java/runner/entities/Transaction.java b/src/main/java/runner/entities/Transaction.java new file mode 100644 index 000000000..e409af53a --- /dev/null +++ b/src/main/java/runner/entities/Transaction.java @@ -0,0 +1,62 @@ +package runner.entities; + +import javax.persistence.*; +import java.time.LocalDate; +@Entity +public class Transaction { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + @Column(nullable = false) + private String accountNumber; + @Column(nullable = false) + private String transactionDescription; + @Column(nullable = false) + private Double transactionBalance; + @Column(nullable = false) + private LocalDate transactionDate; + + @ManyToOne + @JoinColumn(name = "AccountId", nullable = false) + private Account account; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAccountNumber() { + return accountNumber; + } + + public void setAccountNumber(String accountNumber) { + this.accountNumber = accountNumber; + } + + public String getTransactionDescription() { + return transactionDescription; + } + + public void setTransactionDescription(String transactionDescription) { + this.transactionDescription = transactionDescription; + } + + public Double getTransactionBalance() { + return transactionBalance; + } + + public void setTransactionBalance(Double transactionBalance) { + this.transactionBalance = transactionBalance; + } + + public LocalDate getTransactionDate() { + return transactionDate; + } + + public void setTransactionDate(LocalDate transactionDate) { + this.transactionDate = transactionDate; + } +} diff --git a/src/main/java/runner/entities/TransactionHistory.java b/src/main/java/runner/entities/TransactionHistory.java deleted file mode 100644 index 1f4eb0f67..000000000 --- a/src/main/java/runner/entities/TransactionHistory.java +++ /dev/null @@ -1,19 +0,0 @@ -package runner.entities; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import java.time.LocalDate; -@Entity -public class TransactionHistory { - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - private Long id; - private String accountNumber; - private String transactionType; - private Double balanceAfterTransaction; - private LocalDate dateOfTransaction; - - -} diff --git a/src/main/java/runner/entities/User.java b/src/main/java/runner/entities/User.java index c0f40922c..254eed377 100644 --- a/src/main/java/runner/entities/User.java +++ b/src/main/java/runner/entities/User.java @@ -1,9 +1,12 @@ package runner.entities; +import com.fasterxml.jackson.annotation.JsonBackReference; + import javax.persistence.*; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; +import java.util.Set; import static javax.persistence.CascadeType.ALL; @@ -12,36 +15,73 @@ public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; - @Column(name = "firstname") + @Column(nullable = false) private String firstName; - @Column(name = "lastname") + private String middleName; + @Column(nullable = false) private String lastName; - private LocalDate dateofbirth; - @Column(name ="socialsecurity") + //@Column(nullable = false) + private LocalDate dateOfBirth; + @Column(nullable = false) private String socialSecurity; - private String address; + @Column(nullable = false) + private String email; + @Column(nullable = false) + private String phoneNumber; + + @OneToOne(mappedBy = "user", cascade = CascadeType.ALL) + @PrimaryKeyJoinColumn //sharing primary key with address since creating a new user requires address anyways + private Address address; + + @OneToOne(mappedBy = "user", cascade = CascadeType.ALL) + @PrimaryKeyJoinColumn //sharing primary key with user login since creating a new user requires a login anyways + private Login login; - @OneToMany(cascade=ALL,fetch=FetchType.EAGER,mappedBy = "user" ) - //@JoinColumn(name="Id",referencedColumnName = "Id") - private List accounts = new ArrayList<>(); + //@JsonManagedReference + @OneToMany(mappedBy = "user",cascade= CascadeType.ALL, fetch=FetchType.EAGER) + private Set accounts; + +// @JsonBackReference +// @OneToMany(cascade=ALL,fetch=FetchType.EAGER, mappedBy = "user") +// private List accounts = new ArrayList<>(); public User() { } +// public List getAccounts() { +// return accounts; +// } +// +// public void setAccounts(List accounts) { +// this.accounts = accounts; +// } + + public Set getAccounts() { + return accounts; + } + + public void setAccounts(Set accounts) { + this.accounts = accounts; + } + public Long getId() { return id; } - public void setId(Long id) { this.id = id; } - public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } + public String getMiddleName() { + return middleName; + } + public void setMiddleName(String middleName) { + this.middleName = middleName; + } public String getLastName() { return lastName; } @@ -49,10 +89,10 @@ public void setLastName(String lastName) { this.lastName = lastName; } public LocalDate getDateOfBirth() { - return dateofbirth; + return dateOfBirth; } public void setDateOfBirth(LocalDate dateOfBirth) { - this.dateofbirth = dateofbirth; + this.dateOfBirth = this.dateOfBirth; } public String getSocialSecurity() { return socialSecurity; @@ -60,10 +100,32 @@ public String getSocialSecurity() { public void setSocialSecurity(String socialSecurity) { this.socialSecurity = socialSecurity; } - public String getAddress() { + public String getEmail() { + return email; + } + public void setEmail(String address) { + this.email = address; + } + public String getPhoneNumber() { + return phoneNumber; + } + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + public Address getAddress() { return address; } - public void setAddress(String address) { + + public void setAddress(Address address) { this.address = address; } + + public Login getLogin() { + return login; + } + + public void setLogin(Login login) { + this.login = login; + } + } \ No newline at end of file diff --git a/src/main/java/runner/repositories/TransactionRepo.java b/src/main/java/runner/repositories/TransactionRepo.java index 18a975d5c..a42771c36 100644 --- a/src/main/java/runner/repositories/TransactionRepo.java +++ b/src/main/java/runner/repositories/TransactionRepo.java @@ -1,11 +1,11 @@ package runner.repositories; -import runner.entities.TransactionHistory; +import runner.entities.Transaction; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; @Repository -public interface TransactionRepo extends CrudRepository { +public interface TransactionRepo extends CrudRepository { } diff --git a/src/main/java/runner/services/AccountServices.java b/src/main/java/runner/services/AccountServices.java index 194267896..0ca0aeb52 100644 --- a/src/main/java/runner/services/AccountServices.java +++ b/src/main/java/runner/services/AccountServices.java @@ -1,42 +1,43 @@ package runner.services; - import runner.entities.Account; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import runner.entities.User; import runner.repositories.AccountRepo; - import java.util.Optional; - @Service public class AccountServices { - @Autowired private AccountRepo accountRepo; //CRUD methods - public Account createAccount(Account account) { //Re-direct to POST in ACCOUNT controller return accountRepo.save(account); } - public Account readAccount(Long id) { //Re-direct to GET in ACCOUNT controller return accountRepo.findAccountById(id); } - public Boolean removeAccount() + public Boolean removeAccount(Long id) { - //Re-direct to DELETE in ACCOUNT controller - return true; + Account accountFromDB = accountRepo.findAccountById(id); + accountRepo.delete(accountFromDB); + return accountRepo.existsById(id); } - - public Optional updateAccount() + public Optional updateAccount(Long id , Account account) { - //Re-direct to PUT in ACCOUNT controller - return null; + Account accountFromDB = accountRepo.findAccountById(id); + accountFromDB.setAccountType(account.getAccountType()); + accountFromDB.setAccountNumber(account.getAccountNumber()); + accountFromDB.setInterestRate(account.getInterestRate()); + accountFromDB.setDateOfOpening(account.getDateOfOpening()); + accountFromDB.setRoutingNumber(account.getRoutingNumber()); + accountFromDB.setBalance(account.getBalance()); + accountFromDB.setUser(account.getUser()); + return Optional.of(accountFromDB); } - public Double withdraw(Double amount, Long Id) { //Login to withdraw from the account @@ -47,12 +48,9 @@ public Double deposit(Double amount , Long Id) //Login to withdraw from the account return 0d; } - - public Double transfer(Double amount , Long fromId ,Long toId) { //Login to withdraw from the account return 0d; } - -} +} \ No newline at end of file diff --git a/src/main/java/runner/services/TransactionServices.java b/src/main/java/runner/services/TransactionServices.java index 6b6e63da0..2e3a6bf68 100644 --- a/src/main/java/runner/services/TransactionServices.java +++ b/src/main/java/runner/services/TransactionServices.java @@ -1,6 +1,6 @@ package runner.services; -import runner.entities.TransactionHistory; +import runner.entities.Transaction; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import runner.repositories.TransactionRepo; @@ -11,13 +11,13 @@ public class TransactionServices { @Autowired private TransactionRepo transactionRepo; //CRUD methods - public Optional createTransaction() + public Optional createTransaction() { //Re-direct to POST in TransactionHistory controller return null; } - public Optional readTransaction() + public Optional readTransaction() { //Re-direct to GET in TransactionHistory controller return null; @@ -28,7 +28,7 @@ public Boolean removeTransaction() return true; } - public Optional updateTransaction() + public Optional updateTransaction() { //Re-direct to PUT in TransactionHistory controller return null; diff --git a/src/main/java/runner/services/UserServices.java b/src/main/java/runner/services/UserServices.java index a70dc4cdb..23824afdf 100644 --- a/src/main/java/runner/services/UserServices.java +++ b/src/main/java/runner/services/UserServices.java @@ -1,39 +1,38 @@ package runner.services; - import runner.entities.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import runner.repositories.UserRepo; - import java.util.Optional; - @Service public class UserServices { //CRUD methods @Autowired private UserRepo userRepo; - - public Optional createUser(User user) + public User createUser(User user) { - //Re-direct to POST in USER controller - return null; + return (User) userRepo.save(user); } - public User readUser(Long id) { - //Re-direct to GET in USER controller return userRepo.findUserById(id); } public Boolean deleteUser(Long id) { - //Re-direct to DELETE in USER controller - return true; + User userFromDB = userRepo.findUserById(id); + userRepo.delete(userFromDB); + return userRepo.existsById(id); } - public Optional updateUser(Long id ,User user) + public User updateUser(Long id ,User user) { - //Re-direct to PUT in USER controller - return null; + User userFromDB = userRepo.findUserById(id); + userFromDB.setFirstName(user.getFirstName()); + userFromDB.setLastName(user.getLastName()); + userFromDB.setDateOfBirth(user.getDateOfBirth()); + userFromDB.setSocialSecurity(user.getSocialSecurity()); + userFromDB.setAddress(user.getAddress()); + userFromDB.setAccounts(user.getAccounts()); + return userFromDB; } - -} +} \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index c91a0a0d7..a5e3d5703 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,4 +1,3 @@ -spring.jpa.show-sql=true server.port=8080 spring.h2.console.enabled=true #spring.datasource.generate-unique-name=false @@ -8,13 +7,28 @@ spring.h2.console.enabled=true #spring.jpa.database-platform=org.hibernate.dialect.H2Dialect #spring.h2.console.settings.trace=false #spring.h2.console.settings.web-allow-others=false + spring.datasource.url=jdbc:mysql://localhost:3306/moneymanagement spring.datasource.username=newuser spring.datasource.password=password + spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ### had to add this because of the .hibernate_sequence doesn't exist errors! spring.jpa.hibernate.use-new-id-generator-mappings= false -spring.jpa.hibernate.ddl-auto = create + +#set to 'none' to .ddl-auto if you want to create mysql tables from "schema.sql" files instead of from entities +spring.jpa.hibernate.ddl-auto = create-drop spring.jpa.generate-ddl=true -#spring.jpa.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect -#spring.jpa.hibernate.naming_strategy = org.hibernate.cfg.ImprovedNamingStrategy \ No newline at end of file +spring.jpa.show-sql=true +#tells hibernate where to find initial data to import into mysql if .ddl-auto method is used +spring.jpa.properties.hibernate.hbm2ddl.import_files= classpath:db/import.sql +#below is needed for JPA to read SQL language from import.sql +spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect +#spring.jpa.hibernate.naming_strategy = org.hibernate.cfg.ImprovedNamingStrategy + +#set to 'always' if you want to create mysql tables from "schema.sql" file instead of from entities +spring.datasource.initialization-mode=never + +#tells hibernate where to find the data and schema file +spring.datasource.data= classpath:db/data.sql +spring.datasource.schema = classpath:db/schema.sql diff --git a/src/main/resources/db/data.sql b/src/main/resources/db/data.sql new file mode 100644 index 000000000..dd409b410 --- /dev/null +++ b/src/main/resources/db/data.sql @@ -0,0 +1,46 @@ +-- MySQL dump 10.13 Distrib 8.0.22, for macos10.15 (x86_64) +-- +-- Host: localhost Database: moneymanagement +-- ------------------------------------------------------ +-- Server version 8.0.22 + +-- +-- Dumping data for table `account` +-- + +LOCK TABLES `account` WRITE; +/*!40000 ALTER TABLE `account` DISABLE KEYS */; +INSERT INTO `account` VALUES (1,'1245451','INVESTMENT',500000.22,'2004-01-22',12.5,'2001445',1); +/*!40000 ALTER TABLE `account` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Dumping data for table `login` +-- + +# LOCK TABLES `login` WRITE; +# /*!40000 ALTER TABLE `login` DISABLE KEYS */; +# INSERT INTO `login` VALUES (1,'c51ChDMn',1,'lmcqueen0'),(2,'9Gi1RGOg',2,'mpentecost1'),(3,'fyMzNy7n8A8t',3,'amills2'),(4,'q0NbGZf',4,'bculross3'),(5,'yLQvlpxXIuNe',5,'gbloss4'),(6,'eQANN59g7',6,'mnolli5'),(7,'4vKaSDaX4K',7,'bdefau6'),(8,'7sBfdC',8,'svanyashin7'),(9,'eTS542J8XdVI',9,'bchavez8'),(10,'2cWHHxth',10,'dquig9'),(11,'GxSxDH',11,'bhercocka'),(12,'RZh8GTIgBE',12,'cfownesb'),(13,'QekocrR',13,'jboamc'),(14,'821sff3S6whi',14,'amckeggied'),(15,'yf9AAFSCz',15,'cswansburye'),(16,'Jf2UhD6N',16,'shanmerf'),(17,'1gBv9SwWynK',17,'tscutching'),(18,'4YUf6yym0k8F',18,'jskirvinh'),(19,'vwUorIBbE',19,'wpretoi'),(20,'AphCxH2MIgq',20,'bpargetterj'),(21,'6ttHlsQoigO',21,'dudenk'),(22,'GzazmP0TMu',22,'bpantherl'),(23,'fPWjg5e',23,'scoronasm'),(24,'H4TNZ5yA9',24,'cmcgurgann'),(25,'ZTZvoWjo',25,'mdirando'); +# /*!40000 ALTER TABLE `login` ENABLE KEYS */; +# UNLOCK TABLES; + +-- +-- Dumping data for table `transaction_history` +-- + +# LOCK TABLES `transaction_history` WRITE; +# /*!40000 ALTER TABLE `transaction_history` DISABLE KEYS */; +# /*!40000 ALTER TABLE `transaction_history` ENABLE KEYS */; +# UNLOCK TABLES; + + +-- +-- Dumping data for table `user` +-- + +# LOCK TABLES `user` WRITE; +# /*!40000 ALTER TABLE `user` DISABLE KEYS */; +# INSERT INTO `user` VALUES (1,'48 Haas Street','2001-04-11','Antoine','Oakinfold','112-555-545'),(2,'77756 Cascade Circle','1986-04-07','Yanaton','Sikorski','125-784-457'),(3,'8 Quincy Place','1988-05-14','Warde','Tilburn','154-784-541'),(4,'77413 Milwaukee Crossing','2002-04-14','Dario','Purches','451-457-581'),(5,'4173 Arapahoe Parkway','1993-05-27','Tobi','Balfre','451-874-542'),(6,'1 Village Green Avenue','1993-09-15','Lexine','Shelliday','125-784-541'),(7,'9893 Vidon Way','1978-11-09','Morey','Vela','487-458-987'),(8,'9337 Erie Park','2001-05-25','Noella','Skein','451-784-541'),(9,'9 Towne Alley','1986-08-07','Isaac','Marskell','154-784-451'),(10,'9967 Hovde Parkway','1983-07-17','Kerwin','Franckton','154-784-451'),(11,'97169 Beilfuss Pass','1988-05-31','Almeda','Lumbers','125-457-845'),(12,'6 Mayfield Point','1990-03-09','Maude','Dunn','125-487-458'),(13,'46 Anthes Road','1979-10-01','Deni','Shermore','124-784-458'),(14,'4 Sloan Avenue','2002-01-11','Jobi','Ellick','451-458-457'),(15,'163 Lake View Circle','2004-08-22','Wallie','Leyrroyd','457-548-552'),(16,'2796 Kipling Place','1981-04-20','Augustine','Shermore','154-578-945'),(17,'4 Almo Avenue','1999-09-01','Ward','Rummins','547-854-999'),(18,'5 Mcbride Parkway','1985-11-10','Gar','Duddridge','451-457-845'),(19,'39 Bultman Hill','2001-09-26','Sosanna','MacGarvey','111-245-784'),(20,'638 Shasta Terrace','1980-08-18','Greta','Cheales','4512-457-451'),(21,'17646 Sundown Avenue','2003-05-08','Reilly','McIlwreath','245-445-444'),(22,'9 Oak Valley Drive','1995-02-27','Dona','Hancke','457-445-444'),(23,'7 Debs Plaza','1986-06-05','Georgette','Marusyak','457-444-999'),(24,'87489 Dunning Junction','1991-06-06','Dasi','Allso','451-451-444'),(25,'22 Everett Way','1995-06-20','Di','Izkovitz','987-444-111'); +# /*!40000 ALTER TABLE `user` ENABLE KEYS */; +# UNLOCK TABLES; +# /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; \ No newline at end of file diff --git a/src/main/resources/db/import.sql b/src/main/resources/db/import.sql new file mode 100644 index 000000000..a4a43c5a2 --- /dev/null +++ b/src/main/resources/db/import.sql @@ -0,0 +1,37 @@ +-- MySQL dump 10.13 Distrib 8.0.22, for macos10.15 (x86_64) +-- +-- Host: localhost Database: moneymanagement +-- ------------------------------------------------------ +-- Server version 8.0.22 + +-- +-- Dumping data for table `account` +-- + +INSERT INTO `account` VALUES (1,'1245451','INVESTMENT',500000.22,'2004-01-22',12.5,'2001445',1); + +-- +-- Dumping data for table `login` +-- + +INSERT INTO `login` VALUES (1,'c51ChDMn','lmcqueen0'),(2,'9Gi1RGOg','mpentecost1'); + +-- +-- Dumping data for table `transaction_history` +-- + +INSERT INTO `transaction` VALUES (1,'1245451',10.21,'2004-01-22','testing',1); + +-- +-- Dumping data for table `user` +-- + +INSERT INTO `user` VALUES (1,'2001-04-11','test@gmail.com','Antoine','Oakinfold',Null,'215-226-4008','112555545'); + +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +-- +-- Dumping data for table `address` +-- + +INSERT INTO `address` VALUES (1,'Philadelphia','123 A st',NULL,'Pennsylvania','19147'); diff --git a/src/main/resources/db/schema.sql b/src/main/resources/db/schema.sql new file mode 100644 index 000000000..dd36fc9fc --- /dev/null +++ b/src/main/resources/db/schema.sql @@ -0,0 +1,122 @@ +-- MySQL dump 10.13 Distrib 8.0.22, for macos10.15 (x86_64) +-- +-- Host: localhost Database: moneymanagement +-- ------------------------------------------------------ +-- Server version 8.0.22 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!50503 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `account` +-- + +DROP TABLE IF EXISTS `account`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `account` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `userId` bigint NOT NULL, + `accountNumber` varchar(255) NOT NULL, + `routingNumber` varchar(255) NOT NULL, + `accountType` varchar(255) NOT NULL, + `createdDate` date NOT NULL, + `interestRate` double NOT NULL, + `balance` double NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `login` +-- + +DROP TABLE IF EXISTS `login`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `login` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `userId` bigint NOT NULL, + `username` varchar(255) NOT NULL, + `password` varchar(255) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + + +-- +-- Table structure for table `transaction_history` +-- + +DROP TABLE IF EXISTS `transaction_history`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `transaction_history` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `accountNumber` varchar(255) NOT NULL, + `dateOfTransaction` date NOT NULL, + `description` varchar(255) NOT NULL, + `transactionAmount` varchar(255) NOT NULL, + `balance` double NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + + +-- +-- Table structure for table `user` +-- + +DROP TABLE IF EXISTS `user`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `user` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `firstName` varchar(255) NOT NULL, + `middleName` varchar(255) DEFAULT NULL, + `lastName` varchar(255) NOT NULL, + `dob` date NOT NULL, + `ssn` varchar(255) NOT NULL, + `email` varchar(255) DEFAULT NULL, + `phoneNumber` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `address` +-- + +DROP TABLE IF EXISTS `address`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `user` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `userId` bigint NOT NULL, + `firstLine` date NOT NULL, + `secondLine` varchar(255) NOT NULL, + `city` varchar(255) DEFAULT NULL, + `state` varchar(255) NOT NULL, + `zipcode` varchar(255) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2020-12-20 13:18:02 diff --git a/target/classes/application.properties b/target/classes/application.properties index b2b2310a9..a5e3d5703 100644 --- a/target/classes/application.properties +++ b/target/classes/application.properties @@ -1,4 +1,3 @@ -spring.jpa.show-sql=true server.port=8080 spring.h2.console.enabled=true #spring.datasource.generate-unique-name=false @@ -8,13 +7,28 @@ spring.h2.console.enabled=true #spring.jpa.database-platform=org.hibernate.dialect.H2Dialect #spring.h2.console.settings.trace=false #spring.h2.console.settings.web-allow-others=false + spring.datasource.url=jdbc:mysql://localhost:3306/moneymanagement -spring.datasource.username=root -spring.datasource.password=zipcode0 +spring.datasource.username=newuser +spring.datasource.password=password + spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ### had to add this because of the .hibernate_sequence doesn't exist errors! spring.jpa.hibernate.use-new-id-generator-mappings= false -spring.jpa.hibernate.ddl-auto = create + +#set to 'none' to .ddl-auto if you want to create mysql tables from "schema.sql" files instead of from entities +spring.jpa.hibernate.ddl-auto = create-drop spring.jpa.generate-ddl=true -#spring.jpa.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect -#spring.jpa.hibernate.naming_strategy = org.hibernate.cfg.ImprovedNamingStrategy \ No newline at end of file +spring.jpa.show-sql=true +#tells hibernate where to find initial data to import into mysql if .ddl-auto method is used +spring.jpa.properties.hibernate.hbm2ddl.import_files= classpath:db/import.sql +#below is needed for JPA to read SQL language from import.sql +spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect +#spring.jpa.hibernate.naming_strategy = org.hibernate.cfg.ImprovedNamingStrategy + +#set to 'always' if you want to create mysql tables from "schema.sql" file instead of from entities +spring.datasource.initialization-mode=never + +#tells hibernate where to find the data and schema file +spring.datasource.data= classpath:db/data.sql +spring.datasource.schema = classpath:db/schema.sql diff --git a/target/classes/db/data.sql b/target/classes/db/data.sql new file mode 100644 index 000000000..dd409b410 --- /dev/null +++ b/target/classes/db/data.sql @@ -0,0 +1,46 @@ +-- MySQL dump 10.13 Distrib 8.0.22, for macos10.15 (x86_64) +-- +-- Host: localhost Database: moneymanagement +-- ------------------------------------------------------ +-- Server version 8.0.22 + +-- +-- Dumping data for table `account` +-- + +LOCK TABLES `account` WRITE; +/*!40000 ALTER TABLE `account` DISABLE KEYS */; +INSERT INTO `account` VALUES (1,'1245451','INVESTMENT',500000.22,'2004-01-22',12.5,'2001445',1); +/*!40000 ALTER TABLE `account` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Dumping data for table `login` +-- + +# LOCK TABLES `login` WRITE; +# /*!40000 ALTER TABLE `login` DISABLE KEYS */; +# INSERT INTO `login` VALUES (1,'c51ChDMn',1,'lmcqueen0'),(2,'9Gi1RGOg',2,'mpentecost1'),(3,'fyMzNy7n8A8t',3,'amills2'),(4,'q0NbGZf',4,'bculross3'),(5,'yLQvlpxXIuNe',5,'gbloss4'),(6,'eQANN59g7',6,'mnolli5'),(7,'4vKaSDaX4K',7,'bdefau6'),(8,'7sBfdC',8,'svanyashin7'),(9,'eTS542J8XdVI',9,'bchavez8'),(10,'2cWHHxth',10,'dquig9'),(11,'GxSxDH',11,'bhercocka'),(12,'RZh8GTIgBE',12,'cfownesb'),(13,'QekocrR',13,'jboamc'),(14,'821sff3S6whi',14,'amckeggied'),(15,'yf9AAFSCz',15,'cswansburye'),(16,'Jf2UhD6N',16,'shanmerf'),(17,'1gBv9SwWynK',17,'tscutching'),(18,'4YUf6yym0k8F',18,'jskirvinh'),(19,'vwUorIBbE',19,'wpretoi'),(20,'AphCxH2MIgq',20,'bpargetterj'),(21,'6ttHlsQoigO',21,'dudenk'),(22,'GzazmP0TMu',22,'bpantherl'),(23,'fPWjg5e',23,'scoronasm'),(24,'H4TNZ5yA9',24,'cmcgurgann'),(25,'ZTZvoWjo',25,'mdirando'); +# /*!40000 ALTER TABLE `login` ENABLE KEYS */; +# UNLOCK TABLES; + +-- +-- Dumping data for table `transaction_history` +-- + +# LOCK TABLES `transaction_history` WRITE; +# /*!40000 ALTER TABLE `transaction_history` DISABLE KEYS */; +# /*!40000 ALTER TABLE `transaction_history` ENABLE KEYS */; +# UNLOCK TABLES; + + +-- +-- Dumping data for table `user` +-- + +# LOCK TABLES `user` WRITE; +# /*!40000 ALTER TABLE `user` DISABLE KEYS */; +# INSERT INTO `user` VALUES (1,'48 Haas Street','2001-04-11','Antoine','Oakinfold','112-555-545'),(2,'77756 Cascade Circle','1986-04-07','Yanaton','Sikorski','125-784-457'),(3,'8 Quincy Place','1988-05-14','Warde','Tilburn','154-784-541'),(4,'77413 Milwaukee Crossing','2002-04-14','Dario','Purches','451-457-581'),(5,'4173 Arapahoe Parkway','1993-05-27','Tobi','Balfre','451-874-542'),(6,'1 Village Green Avenue','1993-09-15','Lexine','Shelliday','125-784-541'),(7,'9893 Vidon Way','1978-11-09','Morey','Vela','487-458-987'),(8,'9337 Erie Park','2001-05-25','Noella','Skein','451-784-541'),(9,'9 Towne Alley','1986-08-07','Isaac','Marskell','154-784-451'),(10,'9967 Hovde Parkway','1983-07-17','Kerwin','Franckton','154-784-451'),(11,'97169 Beilfuss Pass','1988-05-31','Almeda','Lumbers','125-457-845'),(12,'6 Mayfield Point','1990-03-09','Maude','Dunn','125-487-458'),(13,'46 Anthes Road','1979-10-01','Deni','Shermore','124-784-458'),(14,'4 Sloan Avenue','2002-01-11','Jobi','Ellick','451-458-457'),(15,'163 Lake View Circle','2004-08-22','Wallie','Leyrroyd','457-548-552'),(16,'2796 Kipling Place','1981-04-20','Augustine','Shermore','154-578-945'),(17,'4 Almo Avenue','1999-09-01','Ward','Rummins','547-854-999'),(18,'5 Mcbride Parkway','1985-11-10','Gar','Duddridge','451-457-845'),(19,'39 Bultman Hill','2001-09-26','Sosanna','MacGarvey','111-245-784'),(20,'638 Shasta Terrace','1980-08-18','Greta','Cheales','4512-457-451'),(21,'17646 Sundown Avenue','2003-05-08','Reilly','McIlwreath','245-445-444'),(22,'9 Oak Valley Drive','1995-02-27','Dona','Hancke','457-445-444'),(23,'7 Debs Plaza','1986-06-05','Georgette','Marusyak','457-444-999'),(24,'87489 Dunning Junction','1991-06-06','Dasi','Allso','451-451-444'),(25,'22 Everett Way','1995-06-20','Di','Izkovitz','987-444-111'); +# /*!40000 ALTER TABLE `user` ENABLE KEYS */; +# UNLOCK TABLES; +# /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; \ No newline at end of file diff --git a/target/classes/db/import.sql b/target/classes/db/import.sql new file mode 100644 index 000000000..a4a43c5a2 --- /dev/null +++ b/target/classes/db/import.sql @@ -0,0 +1,37 @@ +-- MySQL dump 10.13 Distrib 8.0.22, for macos10.15 (x86_64) +-- +-- Host: localhost Database: moneymanagement +-- ------------------------------------------------------ +-- Server version 8.0.22 + +-- +-- Dumping data for table `account` +-- + +INSERT INTO `account` VALUES (1,'1245451','INVESTMENT',500000.22,'2004-01-22',12.5,'2001445',1); + +-- +-- Dumping data for table `login` +-- + +INSERT INTO `login` VALUES (1,'c51ChDMn','lmcqueen0'),(2,'9Gi1RGOg','mpentecost1'); + +-- +-- Dumping data for table `transaction_history` +-- + +INSERT INTO `transaction` VALUES (1,'1245451',10.21,'2004-01-22','testing',1); + +-- +-- Dumping data for table `user` +-- + +INSERT INTO `user` VALUES (1,'2001-04-11','test@gmail.com','Antoine','Oakinfold',Null,'215-226-4008','112555545'); + +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +-- +-- Dumping data for table `address` +-- + +INSERT INTO `address` VALUES (1,'Philadelphia','123 A st',NULL,'Pennsylvania','19147'); diff --git a/target/classes/db/schema.sql b/target/classes/db/schema.sql new file mode 100644 index 000000000..dd36fc9fc --- /dev/null +++ b/target/classes/db/schema.sql @@ -0,0 +1,122 @@ +-- MySQL dump 10.13 Distrib 8.0.22, for macos10.15 (x86_64) +-- +-- Host: localhost Database: moneymanagement +-- ------------------------------------------------------ +-- Server version 8.0.22 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!50503 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `account` +-- + +DROP TABLE IF EXISTS `account`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `account` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `userId` bigint NOT NULL, + `accountNumber` varchar(255) NOT NULL, + `routingNumber` varchar(255) NOT NULL, + `accountType` varchar(255) NOT NULL, + `createdDate` date NOT NULL, + `interestRate` double NOT NULL, + `balance` double NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `login` +-- + +DROP TABLE IF EXISTS `login`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `login` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `userId` bigint NOT NULL, + `username` varchar(255) NOT NULL, + `password` varchar(255) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + + +-- +-- Table structure for table `transaction_history` +-- + +DROP TABLE IF EXISTS `transaction_history`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `transaction_history` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `accountNumber` varchar(255) NOT NULL, + `dateOfTransaction` date NOT NULL, + `description` varchar(255) NOT NULL, + `transactionAmount` varchar(255) NOT NULL, + `balance` double NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + + +-- +-- Table structure for table `user` +-- + +DROP TABLE IF EXISTS `user`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `user` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `firstName` varchar(255) NOT NULL, + `middleName` varchar(255) DEFAULT NULL, + `lastName` varchar(255) NOT NULL, + `dob` date NOT NULL, + `ssn` varchar(255) NOT NULL, + `email` varchar(255) DEFAULT NULL, + `phoneNumber` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `address` +-- + +DROP TABLE IF EXISTS `address`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `user` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `userId` bigint NOT NULL, + `firstLine` date NOT NULL, + `secondLine` varchar(255) NOT NULL, + `city` varchar(255) DEFAULT NULL, + `state` varchar(255) NOT NULL, + `zipcode` varchar(255) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2020-12-20 13:18:02 diff --git a/target/classes/runner/controllers/AccountController.class b/target/classes/runner/controllers/AccountController.class index 6e92dccfc4430d4fcf1afefe184a9bb407e95804..dda2b5f65e39136e99815f169769bdaf6840be38 100644 GIT binary patch literal 2981 zcmcImYjfK~6g}%a6uSy-(=-sE^hMG*DHV_OK^;<@N7GWLF?R3_!v{vTw$2tsGSVuU z48uqM4|Eth12g;peiXx9NtT^fG7c>tva8+fo_p@OkM&=F|NbX{Wi$%VaaThrk5gDF z;4`e|aSxvtkV9E5*VJ-deQl^=Q^S1?TMVboR?7_>S?At?XmOw6a>WZAhkJ$}ZyDv| zM@kH{HM%19c|-W3Y4ftLIgsw5@VG^=<14}ua+P6Zq1a#;U3V=`6f45vkAwXt_jXOP#xPZJTc+JGJ)zd| z=BV5gWPZL&zvVj8b8VY@e%FKbWQ&YVc-*wsjviVJrG?5<^T0H0(`g$O*J+oEsZQ)k z*)eL|?~tQ>lN69g1e6m5appw?+S=xF&$X(i5YUL z#KF=k@mWsge#o0fQ#e+?_FG(To1G2?imr_vn07$C3WgHK_(51dGF&+x=){*}5x+IG z!Kx|ux?v-e<1I2J$>zpFrbj1X@K65(>`Fu^kis^0I;xA9_8@&vmgCi+Phj1M^og^( zU~!u&Gin0WSEt;8U z`K->HR`_w!^z2O-N$I5b?{pMj_DGa;oW&HwwY2u1(m8cZ;tdTCbUeft8XoDWU|V54 z*0F=CjxW`+hPsYje8up7{45RZ>(q67q1b6YN5E#s2RH8eyN#C0rD#Cao z8|~MSG$WUmW~C{qcB>ZT>QW=MYpKezp{E7*O|D)+%d_N-kkVT6*Y!wW;(R+p+^e- mA%)Cprb7y~piP?VlB!+Oe2=uCphYdIi%GO7ztoK`vjTr1K_#OA diff --git a/target/classes/runner/controllers/UserController.class b/target/classes/runner/controllers/UserController.class index e47d7028440b96b719cdf081eef9a0b405be2afa..84fabb8dc1d7081e96b87da10efbd9287f497ca2 100644 GIT binary patch literal 3205 zcmb`JYg5}s6o%imF$NeTb!AgYWN-HSS z>3?c7oifwRv>!XuAJyquNtOl3jMMaky{ldAInR0b>{(|#r+!y$&ODGa>$0~Y{~q?BoJA#zO$Nntxl`fJo>Aj2!)VFz zEQ>oTjrv3Cqu6|b;e6S%gt5!F4A-cde8IA8p$WsbXz}fm?d+&-!!fL#r;fJE_ig97 zTIHJMs!z3=u$=={ix#L0p0M`~hwEgvd(N;7G0%{mnA~FMTC#P{aJFPv{DHSy<<6!? z-WUc;c1<(4G{=z7;b51j8|3~6P`oiRsK8CTr+wu0Sz96UYIA+*~F;!c~z|%mLA`d6)p(8 zLHkF`GJBfo5mZi+=i(gtlGPj|HBiLv3;rtSyJVZRO|k9u3~#mjo&q7O&pRXx>e(5Bxt*0oOI~J z{ArP8)ZpYK*Yji(u4oYy6r95d!_}ngAfcElcmso3JW{ZQ$60)#U>jdb8&4>>mh4d- zWw=;$9NWoH=S7|8C2Zc%^M;$ZJkyj5zf$luzESY4wDTP_1y$4-`c}DV+WE(}V^ZzD z9A0(puM4X0E%)oyXS^mD-ahSy4DT1YBMcJ>=@u?NTBPajYAe+$T|RW92#>Cc)cSpf z@x+YtWo^AnxpF7&J%BHCv{YWe=i-aQ^poScpgaZf&9tcolkF;QcBx!k*eouSo#2oL zcIM;G{CharKwG=vArGvLpRg7`O3ky2%khv=!B+TpOJ9Hyr?=}D!Q zQJa}M1p9?LDZCZF1oYuN^_AcST);(oqAbBXWK1r0(M9hA*Iy#FJ@qTn*M39S3uF$_ z{TKRQBD+1Q@DnVkG~S)55@R$FVIK$k}s~r zNQ`YLVjIFV-Y1hG$TTeqKxQHksc!)CK?~$VALKed3PH-$rfF=r2{KJWDuIy4NiO&# z`QZJCWH=-t8@^sCpQ$%R!-xqq8*$x;xNiDf{V5svQ-K5kqSJQ)Mj;k`}I}S269jYRe{%9_ILWbsPG=)!n&x6$a KEb_d7Mc`kbs9wte delta 435 zcmZ9HIa&fi6omg~9GV$hgi%3o!F>e9alw^47#ZmS%uGChktg6HA_0B|nj4sV89!?V z12pJYZ>y@;kF^(3N`(XZB|m)_h~m7eEC*Y>}2bL?dA*E#+D XU-5M*ZK#`LGqaAAZAo)v9kUHTT2&xJ diff --git a/target/classes/runner/entities/Account.class b/target/classes/runner/entities/Account.class index ded2e246cc164f32a17a1a3ebdf738e4881fe74b..288310b5df614649066100177b9defdc647cb1e1 100644 GIT binary patch literal 3769 zcmai$ZC4XV6vyu-B!LhGMNm+*YPF!%^|7s@)bJpM2GI~`)!KI146vB&;y!rfTeau3 zr|0xVKR`cJPycsk5|Uw}FPO>B+=t)2bMFlQ{`dDkM0Ahd7pX*h12jl)d1&y^J|-G_MG>Q-EjOJyAt?2GZu|k6F>HvV$+Mft%fN3eh@pc z7xA6*K zR2B_MO$6Ss*F_ASfpu@kcj6?3!p-j8M~69xz1S0xT{|>5GYjQ=6*p+w+YYKA{LpOJ zdye}y3VhpX*NeS^?>Q`2#Wv6oBh+%f(-gNYnlz+m%@?&`)$tD?*WYyZ_eFgUwNg;0 zgI}%_xlSFp7Yyq2a#JNZTdq{#Zd=6euG!sF-cr)J#q!c(6(yHMTw-HK!r#Dp3;&MU z9+TGs1OYiynXCk!-!92M&VxmHw!4f*%s=vcFP^n1J2kxtj`@JY9IAM}kX2ga`sE_w zL*H~lkH6JoU%cy~JI9YutJ-Do9TBsilT*|3q&r(a7s<_$DSeMwhF3+r8`PgWA&_y} z@H7l-%66-VPIVb>_vJ85Ym%d#UX)kB%XGz~L|XB1cXo8|=~j}C^e;!M37=7U(q!565Ez%c8h!}+ z-76!I>1f(W-U26D1ReLlEq(3N-9G|%M~$CU#BJNmI@VpWI5SnXw>9Zcd1Ye-1jQ|5 z(V5O;S9g?Z(gNV5(0IpLcgnD-;(CyTu6XKkTa{Fe-sIG+it)iri5}78 z5*?%CB^sr%5>4=Mmd=&vB3&xcW%|5CSNPXe`l3Yl=_`v)x9d|uC~s(_!{>KxYfrc_ zj11yQCmNs(JHcx;gs&6$8ct`lu%Hn-g$1}*+k==-Od4f^N}mx+CZ= z{;kPy-jvNrNGX-C=^NO3fbEA7&B$m+AchmcIE%fzm@Uk?Yk!gTd+PXGj76vr{Pocd zdV*giDMV$O!&R9>W~kYeRo%GgGrW`Vj4}E zDn_P0o$0ZWY1Pcsr!$qoG}nVkR<>fANSU6|njud)ooUg?^qgLp@|4q=mcg{rgGn}( zVmg~LRcYP8l-HS7jZ8J#FfrwIrWatU_F$4tte7sQOq=wBfvKP~Z5Ww;q?ab9g3k03 zOs{${$@@bwT~3)^8S~VyGrch~y*B5mUuSZ_wAF)2UR{dmO3L&Ty-}fd-US0XlQ1yJ zo9<_%`4{>X*A_SLa~R8DPVa;PX3M5GioB9MuHh4SUea3tO?>2U~`A(s4Jv`1u0$i2eu0;^zJU literal 2754 zcmaKs+fo}x5Qck&4p^)u1sgCJoW#ah;Dk*a$4-oc&DnAQIYP*}qZVn5*Cp*zdvJxf zN~)4dRW9-Xd8kzW-W{Drqg-f4Gu`v|*FC-S&%b~DO+=6B=RD=<_!?cKDi3dX_=$%a z4<|g-c{t5cBS&uyN;xfqN{1ipkG9pe-3#l`b1yawny*D}=yXKG37qq`*m7Mjv_r>p z1A}H`_g}0_;Rj9-3b!e&N(+bXY77U$6}}ycR>N*b0#1`b$m@%%|Mf?t`qd@-r?*b) zRZLMJe2(o$E)*>RywDMWb&7qsEoovO+3r={tGX<6-EKBL!Rxs6+HLSQieT`$5NbCFuOnd-ahrErmu zK{H8_xDn78O}o7dJN%05cjmo2^SYj<^s~xro4l7e#iI|<9Yaj+T-`)YQv<5^o2=N zWSTTfb0*#9VTtaTv`qI+TA>FftFpS%Wv1w4* zpcfh?ctfLs+KK(iwwks$vTBYvTGOcTzAb#-V*A|VhfP)%!trgNJHpdwG&ug*I%TfM zJ)em>v#JdQO(+}{r`c`^I8(xIF^$q~kGWM8&3@#r=hwJ^G2a2O>$^Na$cT2cX`^@& zw<3*l9;-W|QLBo;q9J9S`)3;I9?+1*_`*-?P6NA?EFwYOwh+v<81CY8=2;(L2g{@a zbVsl~2cpM4w(V0dxa18*>>G!R^NXg}x#0eWM#*AnA1svssbAjoZM${I+&y_Id1eUfEhoB791y+Fi-&1YLT1GSHKFxG>%)2#dcQ{lP*E*%%0tpI zbU?#!fS}tk3J0jV9Wnx>Y6s}mjtROJIff`nlOVf}-woITx;|{s7szRtEvy<=efB45 z->^y0Ey#3WH0U<=W_W;R=ngcE?$SNT%fa6%@ii7asSGYs2_h z4F*h>k|`BunpZL{s+m%8rbRF<^EvuQ*ai&c$m3uISpIF2+9xy#pG8u8EmrAC`Y9=Gj^cqan9!%la V9WfQal%OYpTnYYj>K@f%zALqg;EWl9Lg<=hb31zYo8t!Bo3s@YPM zhoaPKIaQ8pei1{z;5Ff~aFw;j<;HsUY}WaBVe}8%uK^+bC@ZJUgzJ{p)#!bzjmi)r zB6R;t6FPsbk=A8pJ)RKA7xj>=)Ck7H@-qjb*BxjpLV!dt78w#~3TEd!!VOYkgj>M? F*$H&nKQRCR literal 0 HcmV?d00001 diff --git a/target/classes/runner/entities/Checkings.class b/target/classes/runner/entities/Checkings.class deleted file mode 100644 index 395a5135e861075265886183d1b4f3f23c2cf59a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmZ`!J!=9{5S%^l!(1*ZHX^C)Op08SE)ocW)nTL9Kc5d>W8T5Lcllqb0v7oJ`B5Qz z5-f!5!mu;L4D9#M@e9BsdMR4CNzh5qCBzf9?4Jp(@!g6LPRorUbPKj-Ucar4TdMUz zlzvfabyz9K4gV8EzvGHAh%O*4AT$Kpts^WTi(i7M7nl5Z!-*K12wR2*x5q0&T(UbVs;CDvWR~ H7$ExvwNXHg diff --git a/target/classes/runner/entities/Investment.class b/target/classes/runner/entities/Investment.class new file mode 100644 index 0000000000000000000000000000000000000000..53e0d1e5782fc23b53849e4263768d9f173e4811 GIT binary patch literal 294 zcmZ{fPiw+J5XIlb{IO};h!;V;cvBC}#apFN3W5;4DBjm}!4=)WX5;tjso=p6;D-_? zK@bFI;4!~9%!4^!jwb+Pv_drS7T`TVOzL9uTMw3En literal 0 HcmV?d00001 diff --git a/target/classes/runner/entities/Investments.class b/target/classes/runner/entities/Investments.class deleted file mode 100644 index 188122fc8c66209bb4134783613ea1e62b448362..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmaKnKa0XZ5XIlb{JD$q6dQ}<3cJ(7G1b?WsvVVliZ)Ztx$JtsE>WR{FR_s>NEW~Qd zPBY0;v0VzIN`9EG{Z~2RCozTA(!^3*WtGh1sou-n?wIodA)IH0N##V9L5-(fZzJ|1 zf(wuE{U(FZdfkrFG%K`48xFry7IAYDtIrhQ8SuJC(18sH0jtk8_~3&zy3Zay5i${~ HtPY|ZkUK-h diff --git a/target/classes/runner/entities/Login.class b/target/classes/runner/entities/Login.class index 0052813af8cff6e80b0b9768ed786f83dda0762d..f276e7fc658064d4f9b291144bc1f9f39bf430ca 100644 GIT binary patch literal 1390 zcmZ`%+int36x|1gp#>}mrL|aF>!ngqMqA%%nwUnD8hVMXeei7xC-gLMhRnswUumK- z@xc%9ql|0MObU*}!|XHrw)WbW-+zAoBBJNCQy`O`%u|j!EG!mJ^YkoF+k!HxFR0SJ zvOn0?(AER1>*&F*pq00Q_SHz9D^FbvWh?pOG!sA%WGY4V@%|mLW~-cDny{~OM6ldDQC&v-C)irFw$O z?Q`e7V-FnNx7)7n?+99YH`GR5$d2;W=|Jvj?Hb1@SNnqMLHI}eQhL7fjnrLf@Ar_j zn(**iYUw#f_BzgBC=rzN4cq|i#o<93}v$MF=~kuzn^ z6oy@Bdqa&8Y>9msC4FqDuQb5YeQ6k|(ris}MEgto;bXNKe`AvJ8)?qm-l5}R4udrc z%A?vzG-4jff4+;6Kb&~}uU_Msi%~)tRGaP@#c)?HbvRxQ=S-}^kvsId@|EI!6oL`A z`6vV}C;Zfxyo=FJiRP(Rq8#N*RAw}!&)(<~h50hh&X0*y}4oB|HWI;G(wRSiY(%b z>mrDjXc=124O)TZ0ycD5;0sxw;IN1bWCCY3G5IFlLKG+OLUW_c#^zVD;_VmEa51P* z52K>?Ts<89HgeOraVSA|5}9V=Ov{N(jWN@+X{MP8Q#jGe6+FCaK@m?m;8~@+aK(3& zit{uQdG65~IR4pDYQhu#qBZPj{R$@j?_;L9fN4FEDII5OB{JPlW=hAIw!pM~1ry)k Tn5haTi<*IK1$WF#-XQu7Y)$B3 diff --git a/target/classes/runner/entities/Transaction.class b/target/classes/runner/entities/Transaction.class new file mode 100644 index 0000000000000000000000000000000000000000..65103ec76ec2690f0167ab8749586e667d67373f GIT binary patch literal 2177 zcmaKtTT|0O6vt0`g;JyxS|}Gq1TEL1f}&isP;hXHI8yuITS#|Gn0CV?sbjyD&geMf zgCD>T<@nzulqTK!z;1WX+5h>SvuDGfzrTJH(Iy=yXn^(yDNe7%@LCK-F&v2DFixd7 z9VryjYYL^xSL$cA&`^23P&RmdN1@z@7Ps{#tLm11(O^Z+4O_K!gIfw^9rrJVYi3%y zWizg^!buH><|T$Vj5AZUS*@xzS`1DDmMzxx_J92msnWg{{*mIx%9%pLs-_uWde>@R zFjJv)7xTGo>JIgk1mMtUw3=K5=B-9UMKWO&h>!+2xTR_$s}i#`Q@<8JA>Cy-P*D|) z`Qw$07Gxkf(&bq~QVL~UEKxd?Qd1jZ8=i3wAC)beEsmNL7z%9b%qkS!%-}UE;XhS* zyJDPip>kJZe{1NxlVgOdO;8Mak|(&_*sjiXdtae&eyNIb9vU@xjFffG+*(#dO+_nm@tz%$bw#d8#KauDr;_FZ@mGW~2B|G7>-_=!3lk?~7)+TB;^}^glGX{%-M|5B7P@b2YN`4uu>>bOBnr!zfx@+B0;9Sl@AOu2aAwUZh!~r;TFTH^(MWuX5Q6rU*yR-X9je-~LdaLGV^;D^c z{s4XyVr-BA6@gZI-g%yVGoJPJ&EJ0jKH)B*ycL+Ht%T7zUHA~X`MUC zx(~Zg2OOjYk4ULTLSvotC&Yz2C7%VeiS_V+9C9c2jWzDG!r1msk1oHY34PVu#>%(i zvQIh9pdYTqlEQiL=YyMC9 z=>ML=$}{PI^@B%yHN3%F=KZ=HFT=xK==3incGy6PR|Xj8T4v?pi5f%|u9L)5f-0uj zs9}b!5@zq$I_3gyV4kbuLnEvUL{Y#TyZZ;~cc3k@POuG3p~+ec@8ej)a@b!9^j#!w)M`AD1AO^2?@$M>RRpmqS zkCH08Qk4(+0r^p>yuG_fVi-~RKx=2Z=bdMIrf2x)-@pDQqE9Kv(g5vesGn+V4%jF* zhiqQ4vDwtwIBZ-tM{HjAk=IAQpoFRl8Y&%HKU)Rca%zQ=>(mwnO+IQkfvU@0<*Pkg z79Gb8tU$RA#*ByIZwg1!^OYY+ry>jYs~9wEaI8y5dR8E-yO!OM2uk|_w`=LefsT?!iM;4KH93W=u-ldrgTqwesePQ$h>EF_84k)Ui{Rjam) z~ZE+JNs?lx3G?rQxXn3rWekrEEdDqXXBG zn~nOO^aS-;)v70bWNfnJH5}xjAd%ESNxx8xTo9W!aBn$s$Aw|?x^;9Ut9LLs77!_bw;87D7UER_V!8RE7*Rkyt6L)m=bDyNmGl$~^%Nea5537j=KYp1ZD`?v>2j;T9uf)v=;c`g=h`*>&`L)Y4sIeJ2&RhxNebVQAH zO2t7e)(^3bj>7E6u+BE;z0|H%c-yT3__#b<#XE6~VkloN^nA>tMKaPbWXoE$4`X7z zFO9g>=n_c79e*;^cITBa0N;s@EF$8&K+pvs>qoAAQDiZ;6*@iFHIlIzCoEXpJqFQM zEkiO6n>sBRMX_AA>^8iLTvJ>!8Lonx{9*_)UAn7$$2Ax8^f`Tzr<+vB(;yAyX@bt@ zX`0Opn~QWQPnY@YJvOs!uF(5=x=uF)jp}*eN%2y(AF8drLs9_FTrXna=WE-P+!ru97?nJ^U_P)*vrfoA*ug>%YOi#NoMK?s8r?X9|o=KhjU8>ma8yy#Z6R3sdws#Y|D2UeHSeQ(kBK#mHpQo{1^1GyMvt a-?}hGFJa7d9eGMnCA8J>z2mn=68#5*@2YtK literal 2432 zcmaKteN!7%6vm$oc~3+rFQr&oTC0XoiLKRYq1X^!iUz18;5hzu*<4^dVVBw6IP$G@ zMy4}5;|K6VIX-81N#e5jNABKx&$-X}-E+^q`TL(g{sQm}KNL|$Gl!ibQfL-X!mc!X z(!7!8dujHiX-U)0;UI@Y11YOxV66F8{j6$TWuMfVj(xIh;Ld)}_N_C0XnEFASJ!RZ z@s)2mwr5~EaQ~%tu3gXad~KV$w%y^PhY5x)ZEIKgx^t+yJx!;)=gauy;(z@aseN%S z{^|Nbd(S}O*m6C8SDk4Cw}yCIzH0@X6Mj zKC)c@)WB32ND{%sn5w%@E9FK#$Fx+prOlpe`P@k~;q@nSs?%|`$86=5X*x_MyHTEd zzSXTYnK>#ITGolJ{GQ8gEr!wh=9Q+~vzfh`=27^T_G>dD=CQ zU9oJ-Uo|jNSzvLc8;-<(ziHWew|91=-L_&e$pK0-50z`lIGRlRr&ds1@m(KKn;XiU zXn&j4daJS!CTh4|GhS$%sKjjoGPa}rQ>XJrxhw;pWow{Jwar0EP5wu;UsPqv4tY%t zt4B_vU!qvEUrr@18jMD1ld{=6UJHxr_Eo5avWmIRMDb#tK}adozUDZCv|=?mPK@|m zk$&~7$}G}hFlaeF*VLPqoKHbgz9f%=fuwu2Aq9D{T*eY=1}1{nBPiRt>#7SW?J^$V zVHxjXw2UcCmoY2NUCfnnPkQs1HZYlV(mbufYqWRtR+~PxN_^jd9A7s|f;Gj_I7ef_ zmqnp5fk{pAaGwUU1`ga2M;`|LM*+cIF8Bx| z`1mIn8lRwo1&t~e@z}$sBsC;KY(L|gHToI+j#b~msQ!u6kMA&YiS%!Q-V?T?^Z;?v zn4$U{o^n(U*WhzL@?if9d>QG9uIOc|za#T2J1K}rHkh0rTAb-GevYr`B`~Y}ro_9t zc!|saLH<5~N62tn5`H@LiWEdWO#j!kWeg64=>?YAitI2`HqKN@WLm*X#<<3mjWaEh z>G2Ir;h9HFQvuUzB2zBTw3Nv7O)^t1&h&&#Pj6rf%PnG>4VYe`o{*<}oatF2(;6C4 zp6dL{DHWJU@5&y!B{IEEW-7*+8f03(fl2OsKTq>yN?|)_zYQ+F+_LY0 Fe*xIqzNP>G diff --git a/target/classes/runner/repositories/TransactionRepo.class b/target/classes/runner/repositories/TransactionRepo.class index e91e673808578038f50a67d866cf9e3c5d7fa96a..db217d53fceda9fafad2bc233ab0b9d19ac41b2d 100644 GIT binary patch delta 15 WcmZ3+JfC@jB4g=9rKFAB(u@Eoo&?|k delta 23 ecmbQwyo`B*B4f=&r6hKb%;J*#qRNde(u@FHZU@-_ diff --git a/target/classes/runner/services/AccountServices.class b/target/classes/runner/services/AccountServices.class index 3bbf3fbfd40f747d1af26a13261390f7a57099c6..8343a276778f1066b230fc836af7832938917351 100644 GIT binary patch literal 3115 zcmbtWX>;3D6g^TFC$^fTOWLFhZ3!*TR#RF^X-YyCLJLk(k~TnC75mvyYfDCwlZJg? z{!N)-Ov?v`&-^Hcb1m6YjMM4Bczmy(-hJnuyS!`v_4n_80Jw~wlQ@p~UJPR)g;%kd zz-yv!h`1@@^(5XvHi=FwiC7k~BI1^aH$|+9SQBwu#2pdqBHj}5wupB`Y$Wk6-b>W#)2D)%I6a#nEs!>sD=Bxfz#B&+;ADQeI{@GMUmayh?Mctkx~h+AOJA z+je}@w;bEka5d|=#f(>RExTB7&9d5Y+ryDUVhULfNof_SDM?)ga8}soPtAQouZ#nr}rsTp`E;**? zKHu~{p3dGix6Mq+w2PUnV;3LmRJZaP23k)rCRdf6?I@;mZBQdObB{$L* z-ZghLT#5TxaH?#Rsn(o@bn9skP1u5FS+0WgSd^{iu6~orPvnD(L5IG}t}ZB7!{QS- zj3I_)ZsVf6z(RomVB^TMdKlFgT`?>b~Xq zUSQqUXhXxn$X9sx*ht%Esj5~A8jhwn;%uVZ*;iD4So7N~q=u8}*hH$9n}b<)Nx#o) zu|E|XZLQ`qV+SG!!H8v((M7~|&6hz==z$2jVYw&R&`?1833}6(_VfHz4wF{Q=6&iX z=3c`+kfB|J=K`Tt3M&<5lMx%Y!Bc*TI5_!}AQmCj7UQ9?crCUK=v9YP%PuwolUQ3` zB^lG4$zhRWI7#j|7YXj%VcTjLiWevRA(0(YO7KKrG#sl)+(xJzs^@*r0M(#7?2vT3 z<_pTS$6TV1iWekMT6ZB{(=e|%%YPil`45CXWF}Cb;;NhaDe4|-jtk1OTxF;=>aMZh zp#8!J9Zyq=G0=+YQ$bn6ITCUiVRPvoz!eqjXuP%J!d1LP5FWxcmMlmZ{aod%Yy4^? z{6zQ{|117=h8XZ)qL!kx<$ooXvG)9@>-;5>89oIWJJ3;&WSXcm{OWk6E@zvUaSr$g DQIO?W literal 1978 zcmbVMTW=dh6#iyy$MGeXmNcaoNDH($mv&nSZNVWW7a}3K1T`oRyiM$}GsWJq#=DO4 zuRubg@PK&cMmAvvd5N@0{tMeH3Ii*HVOh|eamZ4hsJ8v^Y_M(s=%$+gzJtv z)jfUIR(nBULK$ik^aNhijBWY7uGK-SX=O)U82ht-rex6bo3c*6OJ9xx{JkhN7uu=@ zY3Fuypu=5(OlAF4AbVgMN?@s`1ND8>IaBsW$!r4GYo;#Sr_yS7Pn_BCTr>Ts{GPIX zT_2ZzlH8eRp>CB7Ria5?yE4?QC@W0qt*+1fMX`mm(~Zh{3bb!bn-g%_qi!RueRYV7 zLf!U{yKaiIO<>_fw*nbPmJNS86|^%`^)BP*FLZd`u<}CSSz6(ti8!=ss<=e+xCse_ z3n4phG2O(c{Of(kR^%IlHD$uka>ts=3LL#d!W82b1vIVcxHQ?&I8!_^k*%vE?bdK5 z8R2lV9=jR^DpOy89!IZCc-d8cg0Ggbh@~=$DCO~W8M}BXa5H)NCKs`cZ*V7%y)yQ3 zkjJ63-wLcH@L9{wRT($#`0S0Uvzf!7SuZ%%_GF&|AEw(lh~{oi5^~l{O&tsudjHZj z>e?8U>>fwem+eR$Hw9KJKc#ub+nK6%uml1(Du-!ovKzS14_kpBIswmhkhaX*9PI+_ zJT05cbD1}vR?y})euwy#4<4@ZbYL*_I?wU|fcLP%8?$1SC>Oj>>(MT5{049H4`e+2 zjqES#njP}CMlTwgpf8TlX;=_R#%nE*DU1&06t delta 26 hcmZ3$v7BQ=5F?|_BlKi5|&8>{HnE-Bs2!H?p diff --git a/target/classes/runner/services/UserServices.class b/target/classes/runner/services/UserServices.class index 9f44790bc3c1bd6521d7279300663c6da7d10fe0..1f3281bffbb2652282d0916350733d3f86457dc1 100644 GIT binary patch literal 2152 zcmZ`)YgZdp6x}mC0?C*HEwmM^wb&Y-qixkHg-VKOH9#dTDn5tFO}H3lSThqUKgWNd zYq_HJgUiqUD3|+WCK(9f%Q^RP?mqjxX8!%}ufGA@$3YeoxHpV(+|S`%yqCfIq92I( zK*WbxEa71m{a6;UBI1#Vk3_7BD2jM2Vok)yBGyHGBI45wo@DTufuTmIf^Bu=8@N#l z8lI;DJK#3dksoLk+Ru~wB?H&D8(yRj)s7DJUR|wvo*y}p_Px-+gOVTA?C>biUacB9 zhw6nN{ABMb#|!PM;}Yz|b~+F2)kfsM(1EHDcJQJ0bhKiiuQ0P?p#QO7Q3fuRw5K*3 zhkGh`=Fppgv6AmP^&KbBvQG~CqkT>H9qwd%tlflnIoZ%j)(w;sDT&6wVxb+XVn9(l z%%z#$$K)hgGB9z`{m6!j_WjCJMW@ox9POC1z_zs|Hv%))v-@DJCDvN@`B60mX(p?72#CL~+-8-c6VwG?Jl zXqA&(FA5U_g`WKoGB?VPPL7nF*e_X_#FT}rxR$}^7E0JKa3yKPGu5%MiGqbKJhkuz zwlgSOc!uW|cJQTzukf{nU0Ho2t8ek0h41l$g&*b2k+VIx7AjB{s;F7mhc+;kcwzwO z+lG}$)4H{Hpxh{Z(Q`=HDWP-Bl-xO;;P@$v-i^i@Syk<|+N5~$gry&h>ug}W7XYUt ztA5sD6voy)jdod()KSt61~SJ^y`i?M?Bc@iX)0;ISTz-`>mZCa*~P3v;j~#flF=5% z;Tfwl91uXy3rqwk!F(a6~xga!+r0K0IT3ElEt5 zrMMg=Y}t3UQ!gvG5$NcIXMEp%mZjZlr4p!+b2>@a-R+iK$_Vj!$8_raXQOS|j(F8| zeSRc~JK7GZ5$QU+JtCT9A+;DwBIy{+?BET4^C$QZFks3^P+#Y6kor~X0cuVQsA#A{5EZ;WpLSPW@jP%D@{y% zeDDYOql|a9+Xt|k7{AQjJA2QWd(NHt`Rn@+0FUsnh#ck$7{Hwp?!ql%9t(La=CQ;u z7==P_iIi1FEsiJD!-{V@^JlV{eeM!f6d#7%XWG(4?CrRj#VoeKfgjK_^>O7g_mLP zhEhJw(V7^w>Rl68&w6&;c?Ts0+@;aAb*(zdiQ!i>rV-w1p zw1k(`uar?jxr{sp^SD>WGA8oy%D9gQ3{#2QM1TIak>5S@wyFoBW_pO!x5ZFy$RHl> z#>p!h*hr5cai1Z7#QjKYHRvL`?-Nr`%?C5|#B=oIY3jCZiUrDY6pIuGD3T&tFHq)D zWOjGq3)m<6aBz`UTMQ~2qScmK*f2&Y()+_GGBNluWe)8*?4w=#kfSkjto=7Z+KS7# zLYOhj$0z}=#=vW|IgSY`usuDaXlY9epW!TiL&m{b{_#HkQkTDkNlf+lCy9gMI;Ioe zr<7UVf$Udg&oWN;F?O_C)hUcOa5FLBIWcC4@w@@EF`ccmvfI|#uQpxB3MaOrV7Jj{ Q#|#zTih;MgqnibO0}+5&mjD0&