From 4ff35304f25f4a27815576183a4fd98c510758fd Mon Sep 17 00:00:00 2001 From: Reid Phillips Date: Sat, 11 Jan 2020 10:50:36 -0600 Subject: [PATCH 01/75] Initial changes for sprint 2 sign in and main menu functionality, incomplete. --- .../controllers/MainMenuRouteController.java | 45 +++++++++++++++++ .../controllers/SignInRestController.java | 26 ++++++++++ .../controllers/SignInRouteController.java | 32 ++++++++++++ .../controllers/enums/ViewModelNames.java | 1 + src/main/resources/static/scripts/signIn.js | 8 +++ src/main/resources/templates/mainMenu.html | 49 +++++++++++++++++++ src/main/resources/templates/signIn.html | 31 ++++++++++++ 7 files changed, 192 insertions(+) create mode 100644 src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java create mode 100644 src/main/java/edu/uark/registerapp/controllers/SignInRestController.java create mode 100644 src/main/java/edu/uark/registerapp/controllers/SignInRouteController.java create mode 100644 src/main/resources/static/scripts/signIn.js create mode 100644 src/main/resources/templates/mainMenu.html create mode 100644 src/main/resources/templates/signIn.html diff --git a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java new file mode 100644 index 00000000..9a3cda2d --- /dev/null +++ b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java @@ -0,0 +1,45 @@ +package edu.uark.registerapp.controllers; + +import java.util.Map; +import java.util.Optional; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import edu.uark.registerapp.controllers.enums.ViewModelNames; +import edu.uark.registerapp.controllers.enums.ViewNames; +import edu.uark.registerapp.models.entities.ActiveUserEntity; + +@Controller +@RequestMapping(value = "/mainMenu") +public class MainMenuRouteController extends BaseRouteController { + @RequestMapping(method = RequestMethod.GET) + public ModelAndView start( + @RequestParam final Map queryParameters, + final HttpServletRequest request + ) { + + final Optional activeUserEntity = + this.getCurrentUser(request); + if (!activeUserEntity.isPresent()) { + return this.buildInvalidSessionResponse(); + } + + ModelAndView modelAndView = + this.setErrorMessageFromQueryString( + new ModelAndView(ViewNames.MAIN_MENU.getViewName()), + queryParameters); + + // TODO: Examine the ActiveUser classification if you want this information + modelAndView.addObject( + ViewModelNames.IS_ELEVATED_USER.getValue(), + true); + + return modelAndView; + } +} diff --git a/src/main/java/edu/uark/registerapp/controllers/SignInRestController.java b/src/main/java/edu/uark/registerapp/controllers/SignInRestController.java new file mode 100644 index 00000000..68133574 --- /dev/null +++ b/src/main/java/edu/uark/registerapp/controllers/SignInRestController.java @@ -0,0 +1,26 @@ +package edu.uark.registerapp.controllers; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import edu.uark.registerapp.controllers.enums.ViewNames; +import edu.uark.registerapp.models.api.ApiResponse; + +@RestController +@RequestMapping(value = "/api") +public class SignInRestController extends BaseRestController { + @RequestMapping(value="/signOut", method = RequestMethod.DELETE) + public @ResponseBody ApiResponse removeActiveUser( + final HttpServletRequest request + ) { + + // TODO: Sign out the user associated with request.getSession().getId() + + return (new ApiResponse()) + .setRedirectUrl(ViewNames.SIGN_IN.getRoute()); + } +} diff --git a/src/main/java/edu/uark/registerapp/controllers/SignInRouteController.java b/src/main/java/edu/uark/registerapp/controllers/SignInRouteController.java new file mode 100644 index 00000000..306f98fb --- /dev/null +++ b/src/main/java/edu/uark/registerapp/controllers/SignInRouteController.java @@ -0,0 +1,32 @@ +package edu.uark.registerapp.controllers; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.servlet.ModelAndView; + +import edu.uark.registerapp.controllers.enums.ViewNames; + +@Controller +@RequestMapping(value = "/") +public class SignInRouteController extends BaseRouteController { + // TODO: Route for initial page load + + @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) + public ModelAndView performSignIn( + // TODO: Define an object that will represent the sign in request and add it as a parameter here + HttpServletRequest request + ) { + + // TODO: Use the credentials provided in the request body + // and the "id" property of the (HttpServletRequest)request.getSession() variable + // to sign in the user + + return new ModelAndView( + REDIRECT_PREPEND.concat( + ViewNames.MAIN_MENU.getRoute())); + } +} diff --git a/src/main/java/edu/uark/registerapp/controllers/enums/ViewModelNames.java b/src/main/java/edu/uark/registerapp/controllers/enums/ViewModelNames.java index 7c39b102..6ee26935 100644 --- a/src/main/java/edu/uark/registerapp/controllers/enums/ViewModelNames.java +++ b/src/main/java/edu/uark/registerapp/controllers/enums/ViewModelNames.java @@ -3,6 +3,7 @@ public enum ViewModelNames { NOT_DEFINED(""), ERROR_MESSAGE("errorMessage"), + IS_ELEVATED_USER("isElevatedUser"), PRODUCTS("products"), // Product listing PRODUCT("product"); // Product detail diff --git a/src/main/resources/static/scripts/signIn.js b/src/main/resources/static/scripts/signIn.js new file mode 100644 index 00000000..a1524a6a --- /dev/null +++ b/src/main/resources/static/scripts/signIn.js @@ -0,0 +1,8 @@ +document.addEventListener("DOMContentLoaded", function(event) { + // TODO: Anything you want to do when the page is loaded? +}); + +function validateForm() { + // TODO: Validate the user input + return true; +} diff --git a/src/main/resources/templates/mainMenu.html b/src/main/resources/templates/mainMenu.html new file mode 100644 index 00000000..36bdbf1b --- /dev/null +++ b/src/main/resources/templates/mainMenu.html @@ -0,0 +1,49 @@ + + + + Register - Main Menu + + + + + + + + + + +
+

Main Menu

+
+ +
+
+

+
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/signIn.html b/src/main/resources/templates/signIn.html new file mode 100644 index 00000000..96f63609 --- /dev/null +++ b/src/main/resources/templates/signIn.html @@ -0,0 +1,31 @@ + + + + Register - Sign In + + + + + + + + + + +
+

Sign In

+
+ +
+
+

+
+ +
+ +
+
+ + + + \ No newline at end of file From 656e63dc1fe956c9bff7ee03460f54a0685e8d54 Mon Sep 17 00:00:00 2001 From: moyeneka <60825726+moyeneka@users.noreply.github.com> Date: Thu, 11 Feb 2021 23:17:40 -0600 Subject: [PATCH 02/75] Create MainMenuRouteController.java --- .../registerapp/controllers/MainMenuRouteController.java | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java diff --git a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java new file mode 100644 index 00000000..e12323a6 --- /dev/null +++ b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java @@ -0,0 +1,5 @@ +package edu.uark.registerapp.controllers; + +public class MainMenuRouteController { + +} From 4104a9b7b4b91a5feeddcb42c55630d57d35416e Mon Sep 17 00:00:00 2001 From: Chase Date: Fri, 12 Feb 2021 13:29:57 -0600 Subject: [PATCH 03/75] define ActiveEmployeeExistsQuery.java class --- .../commands/employees/ActiveEmployeeExistsQuery.java | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java diff --git a/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java b/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java new file mode 100644 index 00000000..985e7138 --- /dev/null +++ b/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java @@ -0,0 +1,6 @@ +package edu.uark.registerapp.commands.employees; + +import org.apache.commons.lang3.StringUtils; + +public class ActiveEmployeeExistsQuery{ +} From 65437090db89a0dc0b659c1d1d2610daf501aae9 Mon Sep 17 00:00:00 2001 From: Chase Date: Fri, 12 Feb 2021 13:32:10 -0600 Subject: [PATCH 04/75] define EmployeeSignInCommand.java --- .../commands/employees/EmployeeSignInCommand.java | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java diff --git a/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java new file mode 100644 index 00000000..158f0142 --- /dev/null +++ b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java @@ -0,0 +1,6 @@ +package edu.uark.registerapp.commands.employees; + +import org.apache.commons.lang3.StringUtils; + +public class EmployeeSignInCommand{ +} From 0fbae3b6f3e4b4e84084d4053852db806309e5d2 Mon Sep 17 00:00:00 2001 From: moyeneka <60825726+moyeneka@users.noreply.github.com> Date: Fri, 12 Feb 2021 14:06:53 -0600 Subject: [PATCH 05/75] routing class --- .project | 11 +++++++++++ .../controllers/MainMenuRouteController.java | 17 +++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/.project b/.project index b51ee30c..a0487eab 100644 --- a/.project +++ b/.project @@ -20,4 +20,15 @@ org.eclipse.jdt.core.javanature org.eclipse.m2e.core.maven2Nature + + + 1613160376767 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java index e12323a6..8a4c1ef8 100644 --- a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java +++ b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java @@ -1,5 +1,22 @@ package edu.uark.registerapp.controllers; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RequestParam; + +@Controller + +// methods public class MainMenuRouteController { + // @GetMapping("/mainMenu") + // @ResponseBody + // public String getMainMenu()// @RequestParam Map object) + // { + + // } + // methods } + +// Properties From 51bb8c9b5034a5cae90392b01bdd0045711503c0 Mon Sep 17 00:00:00 2001 From: moyeneka <60825726+moyeneka@users.noreply.github.com> Date: Fri, 12 Feb 2021 14:35:34 -0600 Subject: [PATCH 06/75] update --- .../uark/registerapp/controllers/MainMenuRouteController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java index 8a4c1ef8..19f0f8f2 100644 --- a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java +++ b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java @@ -13,7 +13,7 @@ public class MainMenuRouteController { // @ResponseBody // public String getMainMenu()// @RequestParam Map object) // { - + /// nhnhn // } // methods From ba4db6ccd19dd80b40a54c45a0bab4a254256ed0 Mon Sep 17 00:00:00 2001 From: moyeneka <60825726+moyeneka@users.noreply.github.com> Date: Fri, 12 Feb 2021 14:39:55 -0600 Subject: [PATCH 07/75] update --- .../uark/registerapp/controllers/MainMenuRouteController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java index 9a3cda2d..5673b050 100644 --- a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java +++ b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java @@ -34,7 +34,7 @@ public ModelAndView start( this.setErrorMessageFromQueryString( new ModelAndView(ViewNames.MAIN_MENU.getViewName()), queryParameters); - + //start // TODO: Examine the ActiveUser classification if you want this information modelAndView.addObject( ViewModelNames.IS_ELEVATED_USER.getValue(), From 6592a9544e94fe5619dcf631d65ff28cb55e4c1b Mon Sep 17 00:00:00 2001 From: moyeneka <60825726+moyeneka@users.noreply.github.com> Date: Fri, 12 Feb 2021 15:11:16 -0600 Subject: [PATCH 08/75] Update .project --- .project | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.project b/.project index b51ee30c..103032bb 100644 --- a/.project +++ b/.project @@ -20,4 +20,15 @@ org.eclipse.jdt.core.javanature org.eclipse.m2e.core.maven2Nature + + + 1613163986495 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + From e5034e6b082da5a8f95407b6dd57c8980f55f052 Mon Sep 17 00:00:00 2001 From: benhodges65 <77591479+benhodges65@users.noreply.github.com> Date: Sun, 14 Feb 2021 15:58:43 -0600 Subject: [PATCH 09/75] Initial Commit --- src/main/resources/static/scripts/mainMenu.js | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/main/resources/static/scripts/mainMenu.js diff --git a/src/main/resources/static/scripts/mainMenu.js b/src/main/resources/static/scripts/mainMenu.js new file mode 100644 index 00000000..f92f4221 --- /dev/null +++ b/src/main/resources/static/scripts/mainMenu.js @@ -0,0 +1,3 @@ +document.addEventListener("DOMContentLoaded", function(event) { + +} From 8c54573035d45a2b654cde602c83d526c7f19dd8 Mon Sep 17 00:00:00 2001 From: uarkNathanSecrest <77640500+uarkNathanSecrest@users.noreply.github.com> Date: Sun, 14 Feb 2021 16:28:50 -0600 Subject: [PATCH 10/75] Initial commit --- src/S2T4 Sign In - Server-Side Routing/EmployeeSignIn.java | 4 ++++ .../SignInRestController.java | 4 ++++ .../SignInRouteController.java | 4 ++++ 3 files changed, 12 insertions(+) create mode 100644 src/S2T4 Sign In - Server-Side Routing/EmployeeSignIn.java create mode 100644 src/S2T4 Sign In - Server-Side Routing/SignInRestController.java create mode 100644 src/S2T4 Sign In - Server-Side Routing/SignInRouteController.java diff --git a/src/S2T4 Sign In - Server-Side Routing/EmployeeSignIn.java b/src/S2T4 Sign In - Server-Side Routing/EmployeeSignIn.java new file mode 100644 index 00000000..3c375560 --- /dev/null +++ b/src/S2T4 Sign In - Server-Side Routing/EmployeeSignIn.java @@ -0,0 +1,4 @@ +public class EmployeeSignIn +{ + +} \ No newline at end of file diff --git a/src/S2T4 Sign In - Server-Side Routing/SignInRestController.java b/src/S2T4 Sign In - Server-Side Routing/SignInRestController.java new file mode 100644 index 00000000..f833c146 --- /dev/null +++ b/src/S2T4 Sign In - Server-Side Routing/SignInRestController.java @@ -0,0 +1,4 @@ +public class SignInRestController +{ + +} \ No newline at end of file diff --git a/src/S2T4 Sign In - Server-Side Routing/SignInRouteController.java b/src/S2T4 Sign In - Server-Side Routing/SignInRouteController.java new file mode 100644 index 00000000..693adbb1 --- /dev/null +++ b/src/S2T4 Sign In - Server-Side Routing/SignInRouteController.java @@ -0,0 +1,4 @@ +public class SignInRouteController +{ + +} From 574097f58eced8d70f715b41887e7f7b3a5ea6db Mon Sep 17 00:00:00 2001 From: moyeneka <60825726+moyeneka@users.noreply.github.com> Date: Mon, 15 Feb 2021 20:00:30 -0600 Subject: [PATCH 11/75] Update ViewModelNames.java --- .../edu/uark/registerapp/controllers/enums/ViewModelNames.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/edu/uark/registerapp/controllers/enums/ViewModelNames.java b/src/main/java/edu/uark/registerapp/controllers/enums/ViewModelNames.java index 7c39b102..6ee26935 100644 --- a/src/main/java/edu/uark/registerapp/controllers/enums/ViewModelNames.java +++ b/src/main/java/edu/uark/registerapp/controllers/enums/ViewModelNames.java @@ -3,6 +3,7 @@ public enum ViewModelNames { NOT_DEFINED(""), ERROR_MESSAGE("errorMessage"), + IS_ELEVATED_USER("isElevatedUser"), PRODUCTS("products"), // Product listing PRODUCT("product"); // Product detail From de50cc614228b18d8070841f1e3c3c606bc87b15 Mon Sep 17 00:00:00 2001 From: moyeneka <60825726+moyeneka@users.noreply.github.com> Date: Mon, 15 Feb 2021 20:01:02 -0600 Subject: [PATCH 12/75] Update MainMenuRouteController.java --- .../uark/registerapp/controllers/MainMenuRouteController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java index 5673b050..33ee7b7d 100644 --- a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java +++ b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java @@ -36,6 +36,7 @@ public ModelAndView start( queryParameters); //start // TODO: Examine the ActiveUser classification if you want this information + modelAndView.addObject( ViewModelNames.IS_ELEVATED_USER.getValue(), true); From 7be099d2133e7d2c8e7b18271db310d257eb8937 Mon Sep 17 00:00:00 2001 From: moyeneka <60825726+moyeneka@users.noreply.github.com> Date: Mon, 15 Feb 2021 21:24:59 -0600 Subject: [PATCH 13/75] Update MainMenuRouteController.java --- .../controllers/MainMenuRouteController.java | 61 +++++++++++++++---- 1 file changed, 49 insertions(+), 12 deletions(-) diff --git a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java index 19f0f8f2..452b868a 100644 --- a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java +++ b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java @@ -1,22 +1,59 @@ package edu.uark.registerapp.controllers; +import java.util.Map; +import java.util.Optional; + +import javax.servlet.http.HttpServletRequest; + import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; -@Controller +import edu.uark.registerapp.controllers.enums.ViewModelNames; +import edu.uark.registerapp.controllers.enums.ViewNames; +import edu.uark.registerapp.models.entities.ActiveUserEntity; -// methods -public class MainMenuRouteController { - // @GetMapping("/mainMenu") - // @ResponseBody - // public String getMainMenu()// @RequestParam Map object) - // { - /// nhnhn - // } - // methods +// @Controller +// // methods +// public class MainMenuRouteController { +// // @GetMapping("/mainMenu") +// // @ResponseBody +// // public String getMainMenu()// @RequestParam Map object) +// // { +// /// nhnhn +// // } +// // methods -} +// } // Properties + +@RequestMapping(value = "/mainMenu") +public class MainMenuRouteController extends BaseRouteController { + @RequestMapping(method = RequestMethod.GET) + public ModelAndView start( + @RequestParam final Map queryParameters, + final HttpServletRequest request + ) { + + final Optional activeUserEntity = + this.getCurrentUser(request); + if (!activeUserEntity.isPresent()) { + return this.buildInvalidSessionResponse(); + } + + ModelAndView modelAndView = + this.setErrorMessageFromQueryString( + new ModelAndView(ViewNames.MAIN_MENU.getViewName()), + queryParameters); + // TODO: Examine the ActiveUser classification if you want this information + modelAndView.addObject( + ViewModelNames.IS_ELEVATED_USER.getValue(), + true); + + return modelAndView; + } +} \ No newline at end of file From 5bb9e8d0d15879f9caf2ea9b11da9b157e8eaab2 Mon Sep 17 00:00:00 2001 From: Chase Date: Tue, 16 Feb 2021 20:02:06 -0600 Subject: [PATCH 14/75] add method to query database --- .../commands/employees/ActiveEmployeeExistsQuery.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java b/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java index 985e7138..fab0ef95 100644 --- a/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java +++ b/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java @@ -1,6 +1,11 @@ package edu.uark.registerapp.commands.employees; import org.apache.commons.lang3.StringUtils; +import edu.uark.registerapp.models.repositories.EmployeeRepository; +import edu.uark.registerapp.commands.exceptions.NotFoundException; -public class ActiveEmployeeExistsQuery{ +public class ActiveEmployeeExistsQuery implements EmployeeRepository{ + public boolean existsByIsActive(boolean isActive){ + return isActive; + } } From 090ceca8736f8dd01b038e1a77a673004ad8f960 Mon Sep 17 00:00:00 2001 From: Chase Date: Tue, 16 Feb 2021 20:11:47 -0600 Subject: [PATCH 15/75] add method to check if any active employees and throw exception if false --- .../commands/employees/ActiveEmployeeExistsQuery.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java b/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java index fab0ef95..9b3d3cf6 100644 --- a/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java +++ b/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java @@ -8,4 +8,10 @@ public class ActiveEmployeeExistsQuery implements EmployeeRepository{ public boolean existsByIsActive(boolean isActive){ return isActive; } + + public void checkIfActive(boolean isActive){ + if(!isActive){ + throw new NotFoundException(); + } + } } From deb0e6c0702e355d9c94ceadf7032100163cc80b Mon Sep 17 00:00:00 2001 From: benhodges65 <77591479+benhodges65@users.noreply.github.com> Date: Thu, 18 Feb 2021 15:07:39 -0600 Subject: [PATCH 16/75] Added click event handlers and getters for buttons --- src/main/resources/static/scripts/mainMenu.js | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/main/resources/static/scripts/mainMenu.js b/src/main/resources/static/scripts/mainMenu.js index f92f4221..0e912d44 100644 --- a/src/main/resources/static/scripts/mainMenu.js +++ b/src/main/resources/static/scripts/mainMenu.js @@ -1,3 +1,29 @@ document.addEventListener("DOMContentLoaded", function(event) { + getStartTransactionActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); + getViewProductsActionElement().addEventListener("click", () => { window.location.assign("/productListing"); }); + getCreateEmployeeActionElement().addEventListener("click", () => { window.location.assign("/employeeDetail"); }); + getProductSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); + getCashierSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); +}); +// Getters and setters +function getViewProductsActionElement() { + return document.getElementById("viewProductsButton"); } + +function getCreateEmployeeActionElement() { + return document.getElementById("createEmployeeButton"); +} + +function getStartTransactionActionElement() { + return document.getElementById("startTransactionButton"); +} + +function getProductSalesReportActionElement() { + return document.getElementById("productSalesReportButton"); +} + +function getCashierSalesReportActionElement() { + return document.getElementById("cashierSalesReportButton"); +} +// End getters and setters From 1f4a16cbbe0a00d78d2dc4ca93060f72c92fa70a Mon Sep 17 00:00:00 2001 From: moyeneka <60825726+moyeneka@users.noreply.github.com> Date: Fri, 19 Feb 2021 02:51:47 -0600 Subject: [PATCH 17/75] Update MainMenuRouteController.java --- .../controllers/MainMenuRouteController.java | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java index 452b868a..0bc5b32d 100644 --- a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java +++ b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java @@ -16,21 +16,8 @@ import edu.uark.registerapp.controllers.enums.ViewNames; import edu.uark.registerapp.models.entities.ActiveUserEntity; -// @Controller -// // methods -// public class MainMenuRouteController { -// // @GetMapping("/mainMenu") -// // @ResponseBody -// // public String getMainMenu()// @RequestParam Map object) -// // { -// /// nhnhn -// // } -// // methods - -// } - -// Properties +@Controller @RequestMapping(value = "/mainMenu") public class MainMenuRouteController extends BaseRouteController { @RequestMapping(method = RequestMethod.GET) From 6e01ed0532b213dde24cdd5e1f7d9e58a027790a Mon Sep 17 00:00:00 2001 From: moyeneka <60825726+moyeneka@users.noreply.github.com> Date: Fri, 19 Feb 2021 16:10:53 -0600 Subject: [PATCH 18/75] Create mainMenu.html I am adding this mainMenu to test my routing --- src/main/resources/templates/mainMenu.html | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/main/resources/templates/mainMenu.html diff --git a/src/main/resources/templates/mainMenu.html b/src/main/resources/templates/mainMenu.html new file mode 100644 index 00000000..36bdbf1b --- /dev/null +++ b/src/main/resources/templates/mainMenu.html @@ -0,0 +1,49 @@ + + + + Register - Main Menu + + + + + + + + + + +
+

Main Menu

+
+ +
+
+

+
+ + +
+ + + + + + + + \ No newline at end of file From 14eb849659f6c4fe5b313cef41401a1578d5b606 Mon Sep 17 00:00:00 2001 From: Chase Date: Fri, 19 Feb 2021 16:53:38 -0600 Subject: [PATCH 19/75] Complete ActiveEmployeeExistsQuery class, ready for testing --- .../employees/ActiveEmployeeExistsQuery.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java b/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java index 9b3d3cf6..1f77a3c4 100644 --- a/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java +++ b/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java @@ -4,14 +4,16 @@ import edu.uark.registerapp.models.repositories.EmployeeRepository; import edu.uark.registerapp.commands.exceptions.NotFoundException; +@Service public class ActiveEmployeeExistsQuery implements EmployeeRepository{ - public boolean existsByIsActive(boolean isActive){ - return isActive; - } - - public void checkIfActive(boolean isActive){ + @Override + public void checkIfActive(){ + boolean isActive = existsByIsActive(isActive); if(!isActive){ - throw new NotFoundException(); + throw new NotFoundException("Employee"); } } + + @Autowire + private EmployeeRepository employeeRepository; } From 8c0c4ec1488b38e61830f129a3cf618af065261b Mon Sep 17 00:00:00 2001 From: Chase Date: Fri, 19 Feb 2021 16:56:07 -0600 Subject: [PATCH 20/75] correting minor error --- .../commands/employees/ActiveEmployeeExistsQuery.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java b/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java index 1f77a3c4..a6b1ebd4 100644 --- a/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java +++ b/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java @@ -8,7 +8,7 @@ public class ActiveEmployeeExistsQuery implements EmployeeRepository{ @Override public void checkIfActive(){ - boolean isActive = existsByIsActive(isActive); + boolean isActive = employeeRepository.existsByIsActive(isActive); if(!isActive){ throw new NotFoundException("Employee"); } From 6cccec9be64fa75f20d1c06ab22ae1898c7c9784 Mon Sep 17 00:00:00 2001 From: Chase Date: Sat, 20 Feb 2021 01:16:32 -0600 Subject: [PATCH 21/75] Cleaned code and imported dependencies --- .../commands/employees/ActiveEmployeeExistsQuery.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java b/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java index a6b1ebd4..18cfe61b 100644 --- a/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java +++ b/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java @@ -3,13 +3,14 @@ import org.apache.commons.lang3.StringUtils; import edu.uark.registerapp.models.repositories.EmployeeRepository; import edu.uark.registerapp.commands.exceptions.NotFoundException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; @Service public class ActiveEmployeeExistsQuery implements EmployeeRepository{ @Override public void checkIfActive(){ - boolean isActive = employeeRepository.existsByIsActive(isActive); - if(!isActive){ + if(!this.employeeRepository.existsByIsActive(true)){ throw new NotFoundException("Employee"); } } From 17f6aaefae8774e4eadc21cfc9eb2e077b159756 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 21 Feb 2021 22:08:50 -0600 Subject: [PATCH 22/75] Create mainMenu.html Initial commit to Sprint2Starter. Five buttons have been added but their onClick functionalities have not bee implemented. --- .../controllers/MainMenuRouteController.java | 15 +--- src/main/resources/static/scripts/mainMenu.js | 26 +++++++ src/main/resources/templates/mainMenu.html | 73 +++++++++++++++++++ 3 files changed, 100 insertions(+), 14 deletions(-) create mode 100644 src/main/resources/templates/mainMenu.html diff --git a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java index 452b868a..0bc5b32d 100644 --- a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java +++ b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java @@ -16,21 +16,8 @@ import edu.uark.registerapp.controllers.enums.ViewNames; import edu.uark.registerapp.models.entities.ActiveUserEntity; -// @Controller -// // methods -// public class MainMenuRouteController { -// // @GetMapping("/mainMenu") -// // @ResponseBody -// // public String getMainMenu()// @RequestParam Map object) -// // { -// /// nhnhn -// // } -// // methods - -// } - -// Properties +@Controller @RequestMapping(value = "/mainMenu") public class MainMenuRouteController extends BaseRouteController { @RequestMapping(method = RequestMethod.GET) diff --git a/src/main/resources/static/scripts/mainMenu.js b/src/main/resources/static/scripts/mainMenu.js index f92f4221..0e912d44 100644 --- a/src/main/resources/static/scripts/mainMenu.js +++ b/src/main/resources/static/scripts/mainMenu.js @@ -1,3 +1,29 @@ document.addEventListener("DOMContentLoaded", function(event) { + getStartTransactionActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); + getViewProductsActionElement().addEventListener("click", () => { window.location.assign("/productListing"); }); + getCreateEmployeeActionElement().addEventListener("click", () => { window.location.assign("/employeeDetail"); }); + getProductSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); + getCashierSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); +}); +// Getters and setters +function getViewProductsActionElement() { + return document.getElementById("viewProductsButton"); } + +function getCreateEmployeeActionElement() { + return document.getElementById("createEmployeeButton"); +} + +function getStartTransactionActionElement() { + return document.getElementById("startTransactionButton"); +} + +function getProductSalesReportActionElement() { + return document.getElementById("productSalesReportButton"); +} + +function getCashierSalesReportActionElement() { + return document.getElementById("cashierSalesReportButton"); +} +// End getters and setters diff --git a/src/main/resources/templates/mainMenu.html b/src/main/resources/templates/mainMenu.html new file mode 100644 index 00000000..86f0ca90 --- /dev/null +++ b/src/main/resources/templates/mainMenu.html @@ -0,0 +1,73 @@ + + + + Register - Main Menu + + + + + + + + + + +
+

Main Menu

+
+ +
+
+

+
+ + +<<<<<<< HEAD +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+======= +>>>>>>> 6e01ed0532b213dde24cdd5e1f7d9e58a027790a + + + + + + + + + \ No newline at end of file From e3e08ef5010af153710d7fb61db8a3dc8d60d2af Mon Sep 17 00:00:00 2001 From: Patrick Date: Mon, 22 Feb 2021 14:35:46 -0600 Subject: [PATCH 23/75] Update mainMenu.html --- src/main/resources/templates/mainMenu.html | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/resources/templates/mainMenu.html b/src/main/resources/templates/mainMenu.html index 01ff31b1..680ba002 100644 --- a/src/main/resources/templates/mainMenu.html +++ b/src/main/resources/templates/mainMenu.html @@ -42,7 +42,6 @@

- From 684e30bc75fe31e015667cd1bf6a6e3a4f34096f Mon Sep 17 00:00:00 2001 From: benhodges65 <77591479+benhodges65@users.noreply.github.com> Date: Tue, 23 Feb 2021 14:57:21 -0600 Subject: [PATCH 25/75] Add files via upload --- src/main/resources/static/images/Sign-Out.png | Bin 0 -> 417 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/static/images/Sign-Out.png diff --git a/src/main/resources/static/images/Sign-Out.png b/src/main/resources/static/images/Sign-Out.png new file mode 100644 index 0000000000000000000000000000000000000000..82fe8695ab00a4cdbd2b3f95f065fd7acbd108ec GIT binary patch literal 417 zcmV;S0bc%zP)7GIp>_a(3m+}_QaKE&z3o3q#8Dyh{QRup`m9ZI--K<7}2X0QOT_6(UfB~ zfFo0iTM!k^g5q{n0XmBNtqSl%ad9?U37>C(0R|XgKr-NscF2HNf}kBL;Dz{~wmv|? zI=>#2+PS61|;Y%W<1K>^~fyX^@&QOFD-2!R*p^-#O=;bI$z%Lh{J>>1jl;00000 LNkvXXu0mjf0)eri literal 0 HcmV?d00001 From 8aaa04adfeb78b6df2183a47aaa1f1ddc1ba93a9 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 25 Feb 2021 11:03:49 -0600 Subject: [PATCH 26/75] Re-routing Routing problem fixed --- .../static/images/{Sign-Out.png => Sign-Out.jpeg} | Bin src/main/resources/templates/mainMenu.html | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) rename src/main/resources/static/images/{Sign-Out.png => Sign-Out.jpeg} (100%) diff --git a/src/main/resources/static/images/Sign-Out.png b/src/main/resources/static/images/Sign-Out.jpeg similarity index 100% rename from src/main/resources/static/images/Sign-Out.png rename to src/main/resources/static/images/Sign-Out.jpeg diff --git a/src/main/resources/templates/mainMenu.html b/src/main/resources/templates/mainMenu.html index 8dd69efb..7eb972c8 100644 --- a/src/main/resources/templates/mainMenu.html +++ b/src/main/resources/templates/mainMenu.html @@ -6,8 +6,8 @@ - - + + @@ -23,7 +23,7 @@

- +
@@ -61,7 +61,7 @@

From e8710bddb6fada1200fb281c8e058600ee0f1a45 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 25 Feb 2021 14:26:30 -0600 Subject: [PATCH 27/75] Style update Style has been updated to match the already established look of the app --- src/main/resources/static/scripts/mainMenu.js | 2 +- src/main/resources/templates/mainMenu.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/static/scripts/mainMenu.js b/src/main/resources/static/scripts/mainMenu.js index 0e912d44..01a0f325 100644 --- a/src/main/resources/static/scripts/mainMenu.js +++ b/src/main/resources/static/scripts/mainMenu.js @@ -2,7 +2,7 @@ document.addEventListener("DOMContentLoaded", function(event) { getStartTransactionActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); getViewProductsActionElement().addEventListener("click", () => { window.location.assign("/productListing"); }); getCreateEmployeeActionElement().addEventListener("click", () => { window.location.assign("/employeeDetail"); }); - getProductSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); + getProductSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); getCashierSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); }); diff --git a/src/main/resources/templates/mainMenu.html b/src/main/resources/templates/mainMenu.html index 7eb972c8..3609887d 100644 --- a/src/main/resources/templates/mainMenu.html +++ b/src/main/resources/templates/mainMenu.html @@ -4,7 +4,7 @@ Register - Main Menu - + From e51c66326ab0a373e1287cdacf14e29bea276a77 Mon Sep 17 00:00:00 2001 From: Chase Date: Fri, 26 Feb 2021 12:01:29 -0600 Subject: [PATCH 28/75] created ActiveUserDeleteCommand class --- .../commands/activeUsers/ActiveUserDeleteCommand.java | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java diff --git a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java new file mode 100644 index 00000000..d9df9283 --- /dev/null +++ b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java @@ -0,0 +1,6 @@ +package edu.uark.registerapp.commands.activeUsers; + +import org.apache.commons.lang3.StringUtils; + +public class ActiveUserDeleteCommand{ +} From 88f56e0e505a981ac494451722ee9b76b1f750af Mon Sep 17 00:00:00 2001 From: Chase Date: Sat, 27 Feb 2021 13:10:01 -0600 Subject: [PATCH 29/75] Update to dpendencies --- .../commands/activeUsers/ActiveUserDeleteCommand.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java index d9df9283..8121f93f 100644 --- a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java +++ b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java @@ -1,6 +1,14 @@ package edu.uark.registerapp.commands.activeUsers; import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import edu.uark.registerapp.commands.ResultCommandInterface; +import edu.uark.registerapp.commands.exceptions.UnauthorizedException; +import edu.uark.registerapp.nodels.entities.ActiveUserEntity; +import edu.uark.registerapp.models.repositories.ActiveUserRepository; + +@Service public class ActiveUserDeleteCommand{ } From 30c4115b846c0a7419fe7231e2a383e7ea725a6d Mon Sep 17 00:00:00 2001 From: moyeneka <60825726+moyeneka@users.noreply.github.com> Date: Mon, 1 Mar 2021 11:56:46 -0600 Subject: [PATCH 30/75] testing the view --- .../uark/registerapp/RegisterApplication.java | 1 + .../controllers/MainMenuRouteController.java | 22 ++++++++++--------- .../ProductListingRouteController.java | 2 +- src/main/resources/application.properties | 1 + 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/main/java/edu/uark/registerapp/RegisterApplication.java b/src/main/java/edu/uark/registerapp/RegisterApplication.java index 960bbc9e..8a9a00ed 100644 --- a/src/main/java/edu/uark/registerapp/RegisterApplication.java +++ b/src/main/java/edu/uark/registerapp/RegisterApplication.java @@ -7,6 +7,7 @@ public class RegisterApplication { public static void main(final String[] args) { + System.setProperty("server.port", "6500"); SpringApplication.run(RegisterApplication.class, args); } diff --git a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java index 0bc5b32d..94bd681f 100644 --- a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java +++ b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java @@ -26,17 +26,19 @@ public ModelAndView start( final HttpServletRequest request ) { - final Optional activeUserEntity = - this.getCurrentUser(request); - if (!activeUserEntity.isPresent()) { - return this.buildInvalidSessionResponse(); - } + // final Optional activeUserEntity = + // this.getCurrentUser(request); + // if (!activeUserEntity.isPresent()) { + // return this.buildInvalidSessionResponse(); + // } - ModelAndView modelAndView = - this.setErrorMessageFromQueryString( - new ModelAndView(ViewNames.MAIN_MENU.getViewName()), - queryParameters); - // TODO: Examine the ActiveUser classification if you want this information + // ModelAndView modelAndView = + // this.setErrorMessageFromQueryString( + // new ModelAndView(ViewNames.MAIN_MENU.getViewName()), + // queryParameters); + ModelAndView modelAndView = new ModelAndView(); +// ViewNames.MAIN_MENU.getViewName(); + // TODO: Examine the ActiveUser classification if you want this information modelAndView.addObject( ViewModelNames.IS_ELEVATED_USER.getValue(), true); diff --git a/src/main/java/edu/uark/registerapp/controllers/ProductListingRouteController.java b/src/main/java/edu/uark/registerapp/controllers/ProductListingRouteController.java index 3c2a1178..ca944a1b 100644 --- a/src/main/java/edu/uark/registerapp/controllers/ProductListingRouteController.java +++ b/src/main/java/edu/uark/registerapp/controllers/ProductListingRouteController.java @@ -12,7 +12,7 @@ import edu.uark.registerapp.models.api.Product; @Controller -@RequestMapping(value = "/") +@RequestMapping(value = "/productsListing") public class ProductListingRouteController { @RequestMapping(method = RequestMethod.GET) public ModelAndView showProductListing() { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 301f32d2..33cf41bd 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -13,3 +13,4 @@ spring.datasource.removeAbandoned=true spring.jpa.generate-ddl=false spring.jpa.hibernate.ddl-auto=none spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +server.port=6500 \ No newline at end of file From f3ba2f7eed3a71e8ac4704813ca927eaef103b35 Mon Sep 17 00:00:00 2001 From: Chase Date: Mon, 1 Mar 2021 12:39:16 -0600 Subject: [PATCH 31/75] update to dependencies and begun to build out the class --- .../activeUsers/ActiveUserDeleteCommand.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java index 8121f93f..8b0968ae 100644 --- a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java +++ b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java @@ -1,8 +1,12 @@ package edu.uark.registerapp.commands.activeUsers; +import java.util.Optional; + import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; +import org.pringframework.beans.factory.annotation.Transactional; + import edu.uark.registerapp.commands.ResultCommandInterface; import edu.uark.registerapp.commands.exceptions.UnauthorizedException; @@ -11,4 +15,29 @@ @Service public class ActiveUserDeleteCommand{ + @Override + public ActiveUserEntity execute(){ + final Optional activeUserEntity= + this.activeUserRepository.findBySessionKey(this.sessionKey); + + if(!activeUserEntity.isPresent()){ + throw new UauthorizedException(); + } + + return activeUserEntity.get(); + } + + private String sessionKey; + + public String getSessionKey(){ + return this.sessionKey; + } + + @Transactional + public ActiveUserDeleteCommand(){ + + } + + @Autowired + private ActiveUserRepository activeUserRepository; } From 47f1ec5ba5d699989adc096de01f8bc03ded5cf4 Mon Sep 17 00:00:00 2001 From: Chase Date: Mon, 1 Mar 2021 12:53:54 -0600 Subject: [PATCH 32/75] added implement statement that was missing from the class --- .../commands/activeUsers/ActiveUserDeleteCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java index 8b0968ae..b066877d 100644 --- a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java +++ b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java @@ -14,7 +14,7 @@ import edu.uark.registerapp.models.repositories.ActiveUserRepository; @Service -public class ActiveUserDeleteCommand{ +public class ActiveUserDeleteCommand implements ResultCommandInterface{ @Override public ActiveUserEntity execute(){ final Optional activeUserEntity= From 7cf7dd50b67d3f0d53eb8b5d91d12e94bcaee963 Mon Sep 17 00:00:00 2001 From: moyeneka <60825726+moyeneka@users.noreply.github.com> Date: Mon, 1 Mar 2021 13:28:12 -0600 Subject: [PATCH 33/75] mainMenu view and routing --- .../controllers/MainMenuRouteController.java | 22 +++++++++---------- .../ProductListingRouteController.java | 2 +- src/main/resources/application.properties | 3 ++- src/main/resources/static/scripts/mainMenu.js | 4 ++-- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java index 94bd681f..635e4793 100644 --- a/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java +++ b/src/main/java/edu/uark/registerapp/controllers/MainMenuRouteController.java @@ -26,18 +26,18 @@ public ModelAndView start( final HttpServletRequest request ) { - // final Optional activeUserEntity = - // this.getCurrentUser(request); - // if (!activeUserEntity.isPresent()) { - // return this.buildInvalidSessionResponse(); - // } + final Optional activeUserEntity = + this.getCurrentUser(request); + if (!activeUserEntity.isPresent()) { + return this.buildInvalidSessionResponse(); + } - // ModelAndView modelAndView = - // this.setErrorMessageFromQueryString( - // new ModelAndView(ViewNames.MAIN_MENU.getViewName()), - // queryParameters); - ModelAndView modelAndView = new ModelAndView(); -// ViewNames.MAIN_MENU.getViewName(); + ModelAndView modelAndView = + this.setErrorMessageFromQueryString( + new ModelAndView(ViewNames.MAIN_MENU.getViewName()), + queryParameters); + // ModelAndView modelAndView = new ModelAndView(ViewNames.MAIN_MENU.getViewName()); + // TODO: Examine the ActiveUser classification if you want this information modelAndView.addObject( ViewModelNames.IS_ELEVATED_USER.getValue(), diff --git a/src/main/java/edu/uark/registerapp/controllers/ProductListingRouteController.java b/src/main/java/edu/uark/registerapp/controllers/ProductListingRouteController.java index ca944a1b..e96a45fb 100644 --- a/src/main/java/edu/uark/registerapp/controllers/ProductListingRouteController.java +++ b/src/main/java/edu/uark/registerapp/controllers/ProductListingRouteController.java @@ -12,7 +12,7 @@ import edu.uark.registerapp.models.api.Product; @Controller -@RequestMapping(value = "/productsListing") +@RequestMapping(value = "/productListing") public class ProductListingRouteController { @RequestMapping(method = RequestMethod.GET) public ModelAndView showProductListing() { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 33cf41bd..6fc54c12 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -13,4 +13,5 @@ spring.datasource.removeAbandoned=true spring.jpa.generate-ddl=false spring.jpa.hibernate.ddl-auto=none spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true -server.port=6500 \ No newline at end of file +server.port=6500 +server.error.whitelabel.enabled=false \ No newline at end of file diff --git a/src/main/resources/static/scripts/mainMenu.js b/src/main/resources/static/scripts/mainMenu.js index 01a0f325..f7058573 100644 --- a/src/main/resources/static/scripts/mainMenu.js +++ b/src/main/resources/static/scripts/mainMenu.js @@ -1,6 +1,6 @@ document.addEventListener("DOMContentLoaded", function(event) { - getStartTransactionActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); - getViewProductsActionElement().addEventListener("click", () => { window.location.assign("/productListing"); }); + getStartTransactionActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented. Functionality"); }); + getViewProductsActionElement().addEventListener("click", () => { window.location.assign("/src/main/resources/templates/productDetail.html"); }); getCreateEmployeeActionElement().addEventListener("click", () => { window.location.assign("/employeeDetail"); }); getProductSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); getCashierSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); From 51ce71395121cea8e30467a3e1c192055d600a71 Mon Sep 17 00:00:00 2001 From: moyeneka <60825726+moyeneka@users.noreply.github.com> Date: Mon, 1 Mar 2021 13:35:34 -0600 Subject: [PATCH 34/75] Update ProductListingRouteController.java --- .../registerapp/controllers/ProductListingRouteController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/edu/uark/registerapp/controllers/ProductListingRouteController.java b/src/main/java/edu/uark/registerapp/controllers/ProductListingRouteController.java index e96a45fb..3c2a1178 100644 --- a/src/main/java/edu/uark/registerapp/controllers/ProductListingRouteController.java +++ b/src/main/java/edu/uark/registerapp/controllers/ProductListingRouteController.java @@ -12,7 +12,7 @@ import edu.uark.registerapp.models.api.Product; @Controller -@RequestMapping(value = "/productListing") +@RequestMapping(value = "/") public class ProductListingRouteController { @RequestMapping(method = RequestMethod.GET) public ModelAndView showProductListing() { From a58bcb8b4341c8ed486013dee57b036a23d45aad Mon Sep 17 00:00:00 2001 From: moyeneka <60825726+moyeneka@users.noreply.github.com> Date: Mon, 1 Mar 2021 14:54:16 -0600 Subject: [PATCH 35/75] Update application.properties --- src/main/resources/application.properties | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 6fc54c12..301f32d2 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -13,5 +13,3 @@ spring.datasource.removeAbandoned=true spring.jpa.generate-ddl=false spring.jpa.hibernate.ddl-auto=none spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true -server.port=6500 -server.error.whitelabel.enabled=false \ No newline at end of file From 8553e775e0a02b4f940c91c6397f004e4e87aa73 Mon Sep 17 00:00:00 2001 From: moyeneka <60825726+moyeneka@users.noreply.github.com> Date: Mon, 1 Mar 2021 15:05:34 -0600 Subject: [PATCH 36/75] Update RegisterApplication.java --- src/main/java/edu/uark/registerapp/RegisterApplication.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/edu/uark/registerapp/RegisterApplication.java b/src/main/java/edu/uark/registerapp/RegisterApplication.java index 8a9a00ed..960bbc9e 100644 --- a/src/main/java/edu/uark/registerapp/RegisterApplication.java +++ b/src/main/java/edu/uark/registerapp/RegisterApplication.java @@ -7,7 +7,6 @@ public class RegisterApplication { public static void main(final String[] args) { - System.setProperty("server.port", "6500"); SpringApplication.run(RegisterApplication.class, args); } From 466de2f4cfdcb20b516e42f5306f6e22d4068acd Mon Sep 17 00:00:00 2001 From: Chase-Garrett <73758562+Chase-Garrett@users.noreply.github.com> Date: Mon, 1 Mar 2021 18:48:00 -0600 Subject: [PATCH 37/75] Update ActiveEmployeeExistsQuery.java changed method name --- .../commands/employees/ActiveEmployeeExistsQuery.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java b/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java index 18cfe61b..29c8f85a 100644 --- a/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java +++ b/src/main/java/edu/uark/registerapp/commands/employees/ActiveEmployeeExistsQuery.java @@ -9,7 +9,7 @@ @Service public class ActiveEmployeeExistsQuery implements EmployeeRepository{ @Override - public void checkIfActive(){ + public void ActiveEmployeeExistsQuery(){ if(!this.employeeRepository.existsByIsActive(true)){ throw new NotFoundException("Employee"); } From f8a1bea094350fce9ad90d0d168eb9793da977ca Mon Sep 17 00:00:00 2001 From: Patrick Date: Tue, 2 Mar 2021 14:12:22 -0600 Subject: [PATCH 38/75] Fixed products listing button --- .../registerapp/controllers/ProductListingRouteController.java | 2 +- src/main/resources/static/scripts/mainMenu.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/edu/uark/registerapp/controllers/ProductListingRouteController.java b/src/main/java/edu/uark/registerapp/controllers/ProductListingRouteController.java index 3c2a1178..e96a45fb 100644 --- a/src/main/java/edu/uark/registerapp/controllers/ProductListingRouteController.java +++ b/src/main/java/edu/uark/registerapp/controllers/ProductListingRouteController.java @@ -12,7 +12,7 @@ import edu.uark.registerapp.models.api.Product; @Controller -@RequestMapping(value = "/") +@RequestMapping(value = "/productListing") public class ProductListingRouteController { @RequestMapping(method = RequestMethod.GET) public ModelAndView showProductListing() { diff --git a/src/main/resources/static/scripts/mainMenu.js b/src/main/resources/static/scripts/mainMenu.js index 01a0f325..cb367ce4 100644 --- a/src/main/resources/static/scripts/mainMenu.js +++ b/src/main/resources/static/scripts/mainMenu.js @@ -1,6 +1,6 @@ document.addEventListener("DOMContentLoaded", function(event) { getStartTransactionActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); - getViewProductsActionElement().addEventListener("click", () => { window.location.assign("/productListing"); }); + getViewProductsActionElement().addEventListener("click", () => { window.location.assign("productListing.html"); }); getCreateEmployeeActionElement().addEventListener("click", () => { window.location.assign("/employeeDetail"); }); getProductSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); getCashierSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); From dbeeeeb6d2fd888c51244e7a89b7b7c25cd0750d Mon Sep 17 00:00:00 2001 From: Chase-Garrett <73758562+Chase-Garrett@users.noreply.github.com> Date: Tue, 2 Mar 2021 16:46:51 -0600 Subject: [PATCH 39/75] changes to ActiveUserDeleteCommand method --- .../commands/activeUsers/ActiveUserDeleteCommand.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java index b066877d..ee8d179c 100644 --- a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java +++ b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java @@ -34,7 +34,8 @@ public String getSessionKey(){ } @Transactional - public ActiveUserDeleteCommand(){ + public void ActiveUserDeleteCommand(){ + activeUserRepository.delete(); } From babf1cfb05cf80bdbf5ff5a98c33f582962e4580 Mon Sep 17 00:00:00 2001 From: Chase-Garrett <73758562+Chase-Garrett@users.noreply.github.com> Date: Tue, 2 Mar 2021 16:48:31 -0600 Subject: [PATCH 40/75] corrected formatting --- .../commands/activeUsers/ActiveUserDeleteCommand.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java index ee8d179c..623a160d 100644 --- a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java +++ b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java @@ -36,7 +36,6 @@ public String getSessionKey(){ @Transactional public void ActiveUserDeleteCommand(){ activeUserRepository.delete(); - } @Autowired From 056f2165d33c2f937d0d52e57924a63e4057015d Mon Sep 17 00:00:00 2001 From: uarkNathanSecrest <77640500+uarkNathanSecrest@users.noreply.github.com> Date: Tue, 2 Mar 2021 20:50:27 -0600 Subject: [PATCH 41/75] removing and replacing task 4 stuff --- src/S2T4 Sign In - Server-Side Routing/EmployeeSignIn.java | 4 ---- .../SignInRestController.java | 4 ---- .../SignInRouteController.java | 4 ---- 3 files changed, 12 deletions(-) delete mode 100644 src/S2T4 Sign In - Server-Side Routing/EmployeeSignIn.java delete mode 100644 src/S2T4 Sign In - Server-Side Routing/SignInRestController.java delete mode 100644 src/S2T4 Sign In - Server-Side Routing/SignInRouteController.java diff --git a/src/S2T4 Sign In - Server-Side Routing/EmployeeSignIn.java b/src/S2T4 Sign In - Server-Side Routing/EmployeeSignIn.java deleted file mode 100644 index 3c375560..00000000 --- a/src/S2T4 Sign In - Server-Side Routing/EmployeeSignIn.java +++ /dev/null @@ -1,4 +0,0 @@ -public class EmployeeSignIn -{ - -} \ No newline at end of file diff --git a/src/S2T4 Sign In - Server-Side Routing/SignInRestController.java b/src/S2T4 Sign In - Server-Side Routing/SignInRestController.java deleted file mode 100644 index f833c146..00000000 --- a/src/S2T4 Sign In - Server-Side Routing/SignInRestController.java +++ /dev/null @@ -1,4 +0,0 @@ -public class SignInRestController -{ - -} \ No newline at end of file diff --git a/src/S2T4 Sign In - Server-Side Routing/SignInRouteController.java b/src/S2T4 Sign In - Server-Side Routing/SignInRouteController.java deleted file mode 100644 index 693adbb1..00000000 --- a/src/S2T4 Sign In - Server-Side Routing/SignInRouteController.java +++ /dev/null @@ -1,4 +0,0 @@ -public class SignInRouteController -{ - -} From 8ea28763f59b00afd0d74cb21a9bca3c96b8d29f Mon Sep 17 00:00:00 2001 From: pingyhead <42194751+pingyhead@users.noreply.github.com> Date: Tue, 2 Mar 2021 20:56:33 -0600 Subject: [PATCH 42/75] Update SignInRouteController.java --- .../controllers/SignInRouteController.java | 67 +++++++++++++++++-- 1 file changed, 62 insertions(+), 5 deletions(-) diff --git a/src/main/java/edu/uark/registerapp/controllers/SignInRouteController.java b/src/main/java/edu/uark/registerapp/controllers/SignInRouteController.java index 306f98fb..749ace20 100644 --- a/src/main/java/edu/uark/registerapp/controllers/SignInRouteController.java +++ b/src/main/java/edu/uark/registerapp/controllers/SignInRouteController.java @@ -1,32 +1,89 @@ package edu.uark.registerapp.controllers; +import java.util.Map; + import javax.servlet.http.HttpServletRequest; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; +import edu.uark.registerapp.commands.employees.ActiveEmployeeExistsQuery; +import edu.uark.registerapp.commands.employees.EmployeeSignInCommand; +import edu.uark.registerapp.commands.exceptions.NotFoundException; +import edu.uark.registerapp.controllers.enums.QueryParameterNames; +import edu.uark.registerapp.controllers.enums.ViewModelNames; import edu.uark.registerapp.controllers.enums.ViewNames; +import edu.uark.registerapp.models.api.EmployeeSignIn; @Controller @RequestMapping(value = "/") public class SignInRouteController extends BaseRouteController { - // TODO: Route for initial page load + @RequestMapping(method = RequestMethod.GET) + public ModelAndView showSignIn( + @RequestParam final Map queryParameters + ) { + + try { + this.activeEmployeeExistsQuery.execute(); + } catch (NotFoundException e) { + return new ModelAndView( + REDIRECT_PREPEND.concat( + ViewNames.EMPLOYEE_DETAIL.getRoute())); + } + + ModelAndView modelAndView = + this.setErrorMessageFromQueryString( + new ModelAndView(ViewNames.SIGN_IN.getViewName()), + queryParameters); + + if (queryParameters.containsKey(QueryParameterNames.EMPLOYEE_ID.getValue())) { + modelAndView.addObject( + ViewModelNames.EMPLOYEE_ID.getValue(), + queryParameters.get(QueryParameterNames.EMPLOYEE_ID.getValue())); + } + + return modelAndView; + } @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) public ModelAndView performSignIn( - // TODO: Define an object that will represent the sign in request and add it as a parameter here + EmployeeSignIn employeeSignIn, HttpServletRequest request ) { - // TODO: Use the credentials provided in the request body - // and the "id" property of the (HttpServletRequest)request.getSession() variable - // to sign in the user + try { + this.employeeSignInCommand + .setSessionId(request.getSession().getId()) + .setEmployeeSignIn(employeeSignIn) + .execute(); + } catch (Exception e) { + ModelAndView modelAndView = + new ModelAndView(ViewNames.SIGN_IN.getViewName()); + + modelAndView.addObject( + ViewModelNames.ERROR_MESSAGE.getValue(), + e.getMessage()); + modelAndView.addObject( + ViewModelNames.EMPLOYEE_ID.getValue(), + employeeSignIn.getEmployeeId()); + + return modelAndView; + } return new ModelAndView( REDIRECT_PREPEND.concat( ViewNames.MAIN_MENU.getRoute())); } + + // Properties + @Autowired + private EmployeeSignInCommand employeeSignInCommand; + + @Autowired + private ActiveEmployeeExistsQuery activeEmployeeExistsQuery; } From eaadfdc03ee307b3e755fbb5c876dd30add7601f Mon Sep 17 00:00:00 2001 From: uarkNathanSecrest <77640500+uarkNathanSecrest@users.noreply.github.com> Date: Tue, 2 Mar 2021 21:00:34 -0600 Subject: [PATCH 43/75] Implemented EmployeeSignIn.java --- .../models/api/EmployeeSignIn.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/main/java/edu/uark/registerapp/models/api/EmployeeSignIn.java diff --git a/src/main/java/edu/uark/registerapp/models/api/EmployeeSignIn.java b/src/main/java/edu/uark/registerapp/models/api/EmployeeSignIn.java new file mode 100644 index 00000000..e01e4f6c --- /dev/null +++ b/src/main/java/edu/uark/registerapp/models/api/EmployeeSignIn.java @@ -0,0 +1,28 @@ +package edu.uark.registerapp.models.api; + +import org.apache.commons.lang3.StringUtils; + +public class EmployeeSignIn { + private String employeeId; + public String getEmployeeId() { + return this.employeeId; + } + public EmployeeSignIn setEmployeeId(final String employeeId) { + this.employeeId = employeeId; + return this; + } + + private String password; + public String getPassword() { + return this.password; + } + public EmployeeSignIn setPassword(final String password) { + this.password = password; + return this; + } + + public EmployeeSignIn() { + this.password = StringUtils.EMPTY; + this.employeeId = StringUtils.EMPTY; + } +} From 168d0bd817386423e6fc3540f4da21f21c94e55f Mon Sep 17 00:00:00 2001 From: pingyhead <42194751+pingyhead@users.noreply.github.com> Date: Tue, 2 Mar 2021 21:01:32 -0600 Subject: [PATCH 44/75] Update SignInRestController.java --- .../registerapp/controllers/SignInRestController.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/edu/uark/registerapp/controllers/SignInRestController.java b/src/main/java/edu/uark/registerapp/controllers/SignInRestController.java index 68133574..8ec7ef25 100644 --- a/src/main/java/edu/uark/registerapp/controllers/SignInRestController.java +++ b/src/main/java/edu/uark/registerapp/controllers/SignInRestController.java @@ -2,11 +2,13 @@ import javax.servlet.http.HttpServletRequest; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; +import edu.uark.registerapp.commands.activeUsers.ActiveUserDeleteCommand; import edu.uark.registerapp.controllers.enums.ViewNames; import edu.uark.registerapp.models.api.ApiResponse; @@ -18,9 +20,15 @@ public class SignInRestController extends BaseRestController { final HttpServletRequest request ) { - // TODO: Sign out the user associated with request.getSession().getId() + this.activeUserDeleteCommand + .setSessionKey(request.getSession().getId()) + .execute(); return (new ApiResponse()) .setRedirectUrl(ViewNames.SIGN_IN.getRoute()); } + + // Properties + @Autowired + private ActiveUserDeleteCommand activeUserDeleteCommand; } From be672ee9e24e6d22bee625226d54ca20ffc3574e Mon Sep 17 00:00:00 2001 From: Chase-Garrett <73758562+Chase-Garrett@users.noreply.github.com> Date: Wed, 3 Mar 2021 12:55:18 -0600 Subject: [PATCH 45/75] Corrected placement of @Transactional corrected syntax and variable placement --- .../activeUsers/ActiveUserDeleteCommand.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java index 623a160d..5c09a1d4 100644 --- a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java +++ b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java @@ -16,15 +16,14 @@ @Service public class ActiveUserDeleteCommand implements ResultCommandInterface{ @Override - public ActiveUserEntity execute(){ + @Transactional + public void execute(){ final Optional activeUserEntity= this.activeUserRepository.findBySessionKey(this.sessionKey); if(!activeUserEntity.isPresent()){ - throw new UauthorizedException(); + this.activeUserRepository.delete(activeUserEntity.get()); } - - return activeUserEntity.get(); } private String sessionKey; @@ -33,9 +32,8 @@ public String getSessionKey(){ return this.sessionKey; } - @Transactional - public void ActiveUserDeleteCommand(){ - activeUserRepository.delete(); + public ActiveUserDeleteCommand setSessionKey(final String sessionKey){ + this.sessionKey = sessionKey; } @Autowired From 2825e5d6098300b689f405e8283f8114c1c377e9 Mon Sep 17 00:00:00 2001 From: Chase-Garrett <73758562+Chase-Garrett@users.noreply.github.com> Date: Wed, 3 Mar 2021 12:57:58 -0600 Subject: [PATCH 46/75] corrected import statement for transactional --- .../commands/activeUsers/ActiveUserDeleteCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java index 5c09a1d4..188c8129 100644 --- a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java +++ b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java @@ -5,7 +5,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; -import org.pringframework.beans.factory.annotation.Transactional; +import org.pringframework.transaction.annotation.Transactional; import edu.uark.registerapp.commands.ResultCommandInterface; From 1f8aae99e2761211e6944db027ca1325e74dc978 Mon Sep 17 00:00:00 2001 From: Chase-Garrett <73758562+Chase-Garrett@users.noreply.github.com> Date: Wed, 3 Mar 2021 13:00:23 -0600 Subject: [PATCH 47/75] removed unneeded import statements changed ResultCommandInterface to VoidCommandInterface --- .../commands/activeUsers/ActiveUserDeleteCommand.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java index 188c8129..0429cc84 100644 --- a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java +++ b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java @@ -8,13 +8,12 @@ import org.pringframework.transaction.annotation.Transactional; -import edu.uark.registerapp.commands.ResultCommandInterface; -import edu.uark.registerapp.commands.exceptions.UnauthorizedException; +import edu.uark.registerapp.commands.VoidCommandInterface; import edu.uark.registerapp.nodels.entities.ActiveUserEntity; import edu.uark.registerapp.models.repositories.ActiveUserRepository; @Service -public class ActiveUserDeleteCommand implements ResultCommandInterface{ +public class ActiveUserDeleteCommand implements VoidCommandInterface{ @Override @Transactional public void execute(){ From cf94ca254cdb12b0026b14d406542891c67b7fa8 Mon Sep 17 00:00:00 2001 From: Chase-Garrett <73758562+Chase-Garrett@users.noreply.github.com> Date: Wed, 3 Mar 2021 13:01:52 -0600 Subject: [PATCH 48/75] added missing return statement --- .../commands/activeUsers/ActiveUserDeleteCommand.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java index 0429cc84..1b1dfa6f 100644 --- a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java +++ b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java @@ -33,6 +33,7 @@ public String getSessionKey(){ public ActiveUserDeleteCommand setSessionKey(final String sessionKey){ this.sessionKey = sessionKey; + return this; } @Autowired From 33220136e56d0857df9c7ff1daff12b891504729 Mon Sep 17 00:00:00 2001 From: cw062 <77361631+cw062@users.noreply.github.com> Date: Thu, 4 Mar 2021 09:59:38 -0600 Subject: [PATCH 49/75] Added employeeId, password, and submit inputs to the sign in page --- src/main/resources/templates/signIn.html | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/resources/templates/signIn.html b/src/main/resources/templates/signIn.html index 96f63609..13799e48 100644 --- a/src/main/resources/templates/signIn.html +++ b/src/main/resources/templates/signIn.html @@ -4,7 +4,7 @@ Register - Sign In - + @@ -22,10 +22,21 @@

- +
+ +
+
+
+ +
+
+
+ +
+
- \ No newline at end of file + From 746fdd8bb2dd0ba43acd25e88fe1d48c227fe6be Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 4 Mar 2021 14:46:59 -0600 Subject: [PATCH 50/75] Update mainMenu.html Added checks for elevated users. --- src/main/resources/templates/mainMenu.html | 35 ++++++++++++---------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/main/resources/templates/mainMenu.html b/src/main/resources/templates/mainMenu.html index 3609887d..6c235713 100644 --- a/src/main/resources/templates/mainMenu.html +++ b/src/main/resources/templates/mainMenu.html @@ -22,25 +22,28 @@

-
- -
+ From a70343ff40c8fb639e4fc19d66014f7661b52e71 Mon Sep 17 00:00:00 2001 From: Chase Date: Thu, 4 Mar 2021 19:02:09 -0600 Subject: [PATCH 51/75] added dependencies --- .../employees/EmployeeSignInCommand.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java index 158f0142..94da8656 100644 --- a/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java +++ b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java @@ -1,6 +1,24 @@ package edu.uark.registerapp.commands.employees; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import edu.uark.registerapp.commands.ResultCommandInterface; +import edu.uark.registerapp.commands.employees.helpers.EmployeeHelper; +import edu.uark.registerapp.commands.exceptions.UnauthorizedException; +import edu.uark.registerapp.commands.exceptions.UnprocessableEntityException; +import edu.uark.registerapp.models.api.Employee; +import edu.uark.registerapp.models.api.EmployeeSignIn; +import edu.uark.registerapp.models.entities.ActiveUserEntity; +import edu.uark.registerapp.models.entities.EmployeeEntity; +import edu.uark.registerapp.models.repositories.ActiveUesrRepository; +import edu.uark.registerapp.models.repositories.EmployeeRepository; + +import java.util.Arrays; +import java.util.Optional; +import javax.transaction.Transactional; + +@Service public class EmployeeSignInCommand{ } From 077b1bd0d05b3cd410c119adb6a60090ba8bd1d9 Mon Sep 17 00:00:00 2001 From: Chase Date: Thu, 4 Mar 2021 19:24:00 -0600 Subject: [PATCH 52/75] Defined primary functions --- .../employees/EmployeeSignInCommand.java | 46 ++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java index 94da8656..368df5ee 100644 --- a/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java +++ b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java @@ -20,5 +20,49 @@ import javax.transaction.Transactional; @Service -public class EmployeeSignInCommand{ +public class EmployeeSignInCommand implements ResultCommandInterface{ + @Override + public Employee execute(){ + this.validateProperties(); + return new Employee(this.SignInEmployee()); + } + + private void validateProperties(){ + if(StringUtils.isBlank(this.employeeSignIn.getEmployeeId()){ + throw new UnprocessableEntityException("Employee ID"); + } + try{ + Integer.parseInt(this.employeeSignIn.getEmployeeId()); + } catch(final NumberFormatException e){ + throw new UnprocessableEntityException("Employee ID"); + } if(StringUtils.isBlank(this.employeeSignin.getPassword()){ + throw new UnprocessableEntityException("Password"); + } + } + + @Transactional + private EmployeeEntity SignInEmployee(){ + final Optional employeeEntity = + this.employeeRepository.findByEmployeeId( + Integer.parseInt(this.employeeSignIn.getEmployeeId())); + + if(!employeeEntity.isPresent() || !Arrays.equals(employeeEntity.get().getPassword(), + EmployeeHelper.hashPassword(this.employeeSignIn.getPassword())){ + throw new UnauthorizedException(); + } + + final Optional activeUserEntity = + this.activeUserRepository.findByEmployeeId(employeeEntity.get().getId()); + + if(!activeUserRepository.isPresent()){ + this.activeUserRepository.save((new ActiveUserEntity()).setSessionKey(this.sessionId) + .setEmployeeId(employeeEntity.get().getId()).setClassification( + employeeEntity.get().getClassification()) + .setName(employeeEntity.get().getFirstName().concat(" "). + .concat(employeeEntity.get().getLastName()))); + } else{ + this.activeUserRepository.save(activeUserEntity.get().setSessionKey(this.sessionId)); + } + + return employeeEntity.get(); } From 68488ea7a1ea64066388fe85d91dae2a3aeb5cc7 Mon Sep 17 00:00:00 2001 From: Chase Date: Thu, 4 Mar 2021 19:29:38 -0600 Subject: [PATCH 53/75] added properties to complete the class --- .../employees/EmployeeSignInCommand.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java index 368df5ee..bdad1830 100644 --- a/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java +++ b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java @@ -65,4 +65,35 @@ private EmployeeEntity SignInEmployee(){ } return employeeEntity.get(); + } + + private EmployeeSignIn employeeSignIn; + + public EmployeeSignIn getEmployeeSignIn(){ + return this.employeeSignIn; + } + + public EmployeeSignInCommand setEmployeeSignIn(final EmployeeSignIn employeeSignIn){ + this.employeeSignIn = employeeSignIn; + + return this; + } + + private String sessionId; + + public String getSessionId(){ + return this.sessionId; + } + + public EmployeeSignInCommand setSessionId(final String sessionId){ + this.sessionId = sessionId; + + return this; + } + + @Autowired + private EmployeeRepository employeeRepository; + + @Autowired + private ActiveUserRepository activeUserRepository; } From 8753963a7c3908916a129d5cafee9fd0d92c7404 Mon Sep 17 00:00:00 2001 From: pingyhead <42194751+pingyhead@users.noreply.github.com> Date: Thu, 4 Mar 2021 19:53:51 -0600 Subject: [PATCH 54/75] Update ViewModelNames.java --- .../uark/registerapp/controllers/enums/ViewModelNames.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/edu/uark/registerapp/controllers/enums/ViewModelNames.java b/src/main/java/edu/uark/registerapp/controllers/enums/ViewModelNames.java index 6ee26935..fefde2fd 100644 --- a/src/main/java/edu/uark/registerapp/controllers/enums/ViewModelNames.java +++ b/src/main/java/edu/uark/registerapp/controllers/enums/ViewModelNames.java @@ -5,7 +5,10 @@ public enum ViewModelNames { ERROR_MESSAGE("errorMessage"), IS_ELEVATED_USER("isElevatedUser"), PRODUCTS("products"), // Product listing - PRODUCT("product"); // Product detail + PRODUCT("product"), // Product detail + EMPLOYEE_ID("employeeId"), // Sign in + EMPLOYEE("employee"), // Employee detail + EMPLOYEE_TYPES("employeeTypes"); public String getValue() { return value; From 5764c0cc138597f2a44f95544b2ef8d8e3acdad9 Mon Sep 17 00:00:00 2001 From: cdbridge <77647092+cdbridge@users.noreply.github.com> Date: Thu, 4 Mar 2021 20:05:35 -0600 Subject: [PATCH 55/75] Add files via upload --- signIn.js | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 signIn.js diff --git a/signIn.js b/signIn.js new file mode 100644 index 00000000..c2dd38b7 --- /dev/null +++ b/signIn.js @@ -0,0 +1,39 @@ +document.addEventListener("DOMContentLoaded", function(event) { + const employeeIdEditElement = getEmployeeId(); + employeeIdEditElement.focus(); + employeeIdEditElement.select(); +}); + +//Get elements for the Employee Id and Password +function getEmployeeId() { + return document.getElementById("employeeId"); +} + +function getPassword() { + return document.getElementById("password"); +} + +//Validates the Id is not blank and is a number; Validates that Password is not null +function validateForm() { + const employeeIdEditElement = getEmployeeId(); + if(isNaN(Number(employeeIdEditElement.value)) || (Number(employeeIdEditElement.value) <= 0)) + { + displayError("Employee Id must be a positive numerical value."); + + employeeIdEditElement.focus(); + employeeIdEditElement.select(); + return false; + } + + const passwordEditElement = getPassword(); + if ((passwordEditElement.value == null) || (passwordEditElement.value.trim() === "")) + { + displayError("Password must be valid and cannot be blank."); + + passwordEditElement.focus(); + passwordEditElement.select(); + return false; + + } + return true; +} From 56a3d31407628246483c92ba46c0925e9d115278 Mon Sep 17 00:00:00 2001 From: moyeneka <60825726+moyeneka@users.noreply.github.com> Date: Thu, 4 Mar 2021 20:09:51 -0600 Subject: [PATCH 56/75] help --- src/main/resources/templates/signIn.html | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/resources/templates/signIn.html b/src/main/resources/templates/signIn.html index 13799e48..5539065c 100644 --- a/src/main/resources/templates/signIn.html +++ b/src/main/resources/templates/signIn.html @@ -22,18 +22,31 @@

+<<<<<<< Updated upstream
+======= + +
+ +>>>>>>> Stashed changes

+<<<<<<< Updated upstream
+======= +

+
+ +
+>>>>>>> Stashed changes
From 9bc6ebae7713d9bd38a61573e81f1ce248a61913 Mon Sep 17 00:00:00 2001 From: cdbridge <77647092+cdbridge@users.noreply.github.com> Date: Thu, 4 Mar 2021 20:12:10 -0600 Subject: [PATCH 57/75] Update signIn.js --- src/main/resources/static/scripts/signIn.js | 37 +++++++++++++++++++-- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/src/main/resources/static/scripts/signIn.js b/src/main/resources/static/scripts/signIn.js index a1524a6a..36aafe03 100644 --- a/src/main/resources/static/scripts/signIn.js +++ b/src/main/resources/static/scripts/signIn.js @@ -1,8 +1,39 @@ document.addEventListener("DOMContentLoaded", function(event) { - // TODO: Anything you want to do when the page is loaded? -}); + const employeeIdEditElement = getEmployeeId(); + employeeIdEditElement.focus(); + employeeIdEditElement.select(); +); +//Get elements for the Employee Id and Password +function getEmployeeId() { + return document.getElementById("employeeId"); +} + +function getPassword() { + return document.getElementById("password"); +} + +//Validates the Id is not blank and is a number; Validates that Password is not null function validateForm() { - // TODO: Validate the user input + const employeeIdEditElement = getEmployeeId(); + if(isNaN(Number(employeeIdEditElement.value)) || (Number(employeeIdEditElement.value) <= 0)) + { + displayError("Employee Id must be a positive numerical value."); + + employeeIdEditElement.focus(); + employeeIdEditElement.select(); + return false; + } + + const passwordEditElement = getPassword(); + if ((passwordEditElement.value == null) || (passwordEditElement.value.trim() === "")) + { + displayError("Password must be valid and cannot be blank."); + + passwordEditElement.focus(); + passwordEditElement.select(); + return false; + + } return true; } From 9de52e06df0b3a72a3637de8291db357d2bed534 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 4 Mar 2021 20:15:26 -0600 Subject: [PATCH 58/75] Update mainMenu.js Added signout functionality but haven't fully implemented it. --- src/main/resources/static/scripts/mainMenu.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/resources/static/scripts/mainMenu.js b/src/main/resources/static/scripts/mainMenu.js index 2b6082f8..f81ee98d 100644 --- a/src/main/resources/static/scripts/mainMenu.js +++ b/src/main/resources/static/scripts/mainMenu.js @@ -9,6 +9,8 @@ document.addEventListener("DOMContentLoaded", function(event) { getCreateEmployeeActionElement().addEventListener("click", () => { window.location.assign("/employeeDetail"); }); getProductSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); getCashierSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); + //Additional functionality + signOut().addEventListener("click", () => {window.location.assign("/signIn");}); }); // Getters and setters @@ -31,4 +33,8 @@ function getProductSalesReportActionElement() { function getCashierSalesReportActionElement() { return document.getElementById("cashierSalesReportButton"); } + +function signOut() { + return document.getElementById("signOutImage"); +} // End getters and setters From 72e856b9775cb1b4ce40cc833d46dea932fbdada Mon Sep 17 00:00:00 2001 From: moyeneka <60825726+moyeneka@users.noreply.github.com> Date: Thu, 4 Mar 2021 20:18:51 -0600 Subject: [PATCH 59/75] Revert "help" This reverts commit 56a3d31407628246483c92ba46c0925e9d115278. --- src/main/resources/templates/signIn.html | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/main/resources/templates/signIn.html b/src/main/resources/templates/signIn.html index 5539065c..13799e48 100644 --- a/src/main/resources/templates/signIn.html +++ b/src/main/resources/templates/signIn.html @@ -22,31 +22,18 @@

-<<<<<<< Updated upstream
-======= - -
- ->>>>>>> Stashed changes

-<<<<<<< Updated upstream
-======= -

-
- -
->>>>>>> Stashed changes
From 0e1cb9c68a910b09da27a46c7afba8c5b673b9b5 Mon Sep 17 00:00:00 2001 From: pingyhead <42194751+pingyhead@users.noreply.github.com> Date: Thu, 4 Mar 2021 20:20:40 -0600 Subject: [PATCH 60/75] Create signIn.html --- signIn.html | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 signIn.html diff --git a/signIn.html b/signIn.html new file mode 100644 index 00000000..34be12ac --- /dev/null +++ b/signIn.html @@ -0,0 +1,41 @@ + + + + Register - Sign In + + + + + + + + + + +
+

Sign In

+
+ +
+
+

+
+ +
+
+ +
+
+
+ +
+

+
+ +
+
+
+ + + + From 14dfe35110305a9d442fe18550d2ab5a8be82a84 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 4 Mar 2021 20:23:39 -0600 Subject: [PATCH 61/75] Update mainMenu.js --- src/main/resources/static/scripts/mainMenu.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/static/scripts/mainMenu.js b/src/main/resources/static/scripts/mainMenu.js index f81ee98d..58f67281 100644 --- a/src/main/resources/static/scripts/mainMenu.js +++ b/src/main/resources/static/scripts/mainMenu.js @@ -10,7 +10,7 @@ document.addEventListener("DOMContentLoaded", function(event) { getProductSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); getCashierSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); //Additional functionality - signOut().addEventListener("click", () => {window.location.assign("/signIn");}); + signOut().addEventListener("click", () => {window.location.assign("./signIn.html");}); }); // Getters and setters From 16e11984a47593098f7d81a507039c7680dc6e01 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 4 Mar 2021 20:25:14 -0600 Subject: [PATCH 62/75] Update mainMenu.js --- src/main/resources/static/scripts/mainMenu.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/static/scripts/mainMenu.js b/src/main/resources/static/scripts/mainMenu.js index 58f67281..3d56a719 100644 --- a/src/main/resources/static/scripts/mainMenu.js +++ b/src/main/resources/static/scripts/mainMenu.js @@ -6,7 +6,7 @@ document.addEventListener("DOMContentLoaded", function(event) { getStartTransactionActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented. Functionality"); }); //getViewProductsActionElement().addEventListener("click", () => { window.location.assign("/src/main/resources/templates/productDetail.html"); }); - getCreateEmployeeActionElement().addEventListener("click", () => { window.location.assign("/employeeDetail"); }); + getCreateEmployeeActionElement().addEventListener("click", () => { window.location.assign("./employeeDetail.html"); }); getProductSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); getCashierSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); //Additional functionality From 1310e9e760dbb87639b421cd6d493292bd1e99f2 Mon Sep 17 00:00:00 2001 From: pingyhead <42194751+pingyhead@users.noreply.github.com> Date: Thu, 4 Mar 2021 20:35:56 -0600 Subject: [PATCH 63/75] Update ViewModelNames.java --- .../uark/registerapp/controllers/enums/ViewModelNames.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/edu/uark/registerapp/controllers/enums/ViewModelNames.java b/src/main/java/edu/uark/registerapp/controllers/enums/ViewModelNames.java index 6ee26935..fefde2fd 100644 --- a/src/main/java/edu/uark/registerapp/controllers/enums/ViewModelNames.java +++ b/src/main/java/edu/uark/registerapp/controllers/enums/ViewModelNames.java @@ -5,7 +5,10 @@ public enum ViewModelNames { ERROR_MESSAGE("errorMessage"), IS_ELEVATED_USER("isElevatedUser"), PRODUCTS("products"), // Product listing - PRODUCT("product"); // Product detail + PRODUCT("product"), // Product detail + EMPLOYEE_ID("employeeId"), // Sign in + EMPLOYEE("employee"), // Employee detail + EMPLOYEE_TYPES("employeeTypes"); public String getValue() { return value; From c822388901b94ec265a9c3100ee4919047125416 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 4 Mar 2021 20:37:26 -0600 Subject: [PATCH 64/75] Update mainMenu.js Removed the added signout functionality. --- src/main/resources/static/scripts/mainMenu.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/main/resources/static/scripts/mainMenu.js b/src/main/resources/static/scripts/mainMenu.js index 3d56a719..a2e52f9e 100644 --- a/src/main/resources/static/scripts/mainMenu.js +++ b/src/main/resources/static/scripts/mainMenu.js @@ -9,8 +9,7 @@ document.addEventListener("DOMContentLoaded", function(event) { getCreateEmployeeActionElement().addEventListener("click", () => { window.location.assign("./employeeDetail.html"); }); getProductSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); getCashierSalesReportActionElement().addEventListener("click", () => { displayError("Functionality has not yet been implemented."); }); - //Additional functionality - signOut().addEventListener("click", () => {window.location.assign("./signIn.html");}); + }); // Getters and setters @@ -34,7 +33,4 @@ function getCashierSalesReportActionElement() { return document.getElementById("cashierSalesReportButton"); } -function signOut() { - return document.getElementById("signOutImage"); -} // End getters and setters From 4f952d3863870b543ced89aa6eac63e225f8c39f Mon Sep 17 00:00:00 2001 From: pingyhead <42194751+pingyhead@users.noreply.github.com> Date: Thu, 4 Mar 2021 20:53:24 -0600 Subject: [PATCH 65/75] Update EmployeeSignIn.java --- .../models/api/EmployeeSignIn.java | 114 +++++++++++++++--- 1 file changed, 97 insertions(+), 17 deletions(-) diff --git a/src/main/java/edu/uark/registerapp/models/api/EmployeeSignIn.java b/src/main/java/edu/uark/registerapp/models/api/EmployeeSignIn.java index e01e4f6c..ad757154 100644 --- a/src/main/java/edu/uark/registerapp/models/api/EmployeeSignIn.java +++ b/src/main/java/edu/uark/registerapp/models/api/EmployeeSignIn.java @@ -1,28 +1,108 @@ -package edu.uark.registerapp.models.api; +package edu.uark.registerapp.commands.employees; + +import java.util.Arrays; +import java.util.Optional; + +import javax.transaction.Transactional; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import edu.uark.registerapp.commands.ResultCommandInterface; +import edu.uark.registerapp.commands.employees.helpers.EmployeeHelper; +import edu.uark.registerapp.commands.exceptions.UnauthorizedException; +import edu.uark.registerapp.commands.exceptions.UnprocessableEntityException; +import edu.uark.registerapp.models.api.Employee; +import edu.uark.registerapp.models.api.EmployeeSignIn; +import edu.uark.registerapp.models.entities.ActiveUserEntity; +import edu.uark.registerapp.models.entities.EmployeeEntity; +import edu.uark.registerapp.models.repositories.ActiveUserRepository; +import edu.uark.registerapp.models.repositories.EmployeeRepository; -public class EmployeeSignIn { - private String employeeId; - public String getEmployeeId() { - return this.employeeId; +@Service +public class EmployeeSignInCommand implements ResultCommandInterface { + @Override + public Employee execute() { + this.validateProperties(); + + return new Employee(this.SignInEmployee()); } - public EmployeeSignIn setEmployeeId(final String employeeId) { - this.employeeId = employeeId; - return this; + + // Helper methods + private void validateProperties() { + if (StringUtils.isBlank(this.employeeSignIn.getEmployeeId())) { + throw new UnprocessableEntityException("employee ID"); + } + try { + Integer.parseInt(this.employeeSignIn.getEmployeeId()); + } catch (final NumberFormatException e) { + throw new UnprocessableEntityException("employee ID"); + } + if (StringUtils.isBlank(this.employeeSignIn.getPassword())) { + throw new UnprocessableEntityException("password"); + } } - private String password; - public String getPassword() { - return this.password; + @Transactional + private EmployeeEntity SignInEmployee() { + final Optional employeeEntity = + this.employeeRepository.findByEmployeeId( + Integer.parseInt(this.employeeSignIn.getEmployeeId())); + + if (!employeeEntity.isPresent() + || !Arrays.equals( + employeeEntity.get().getPassword(), + EmployeeHelper.hashPassword(this.employeeSignIn.getPassword())) + ) { + + throw new UnauthorizedException(); + } + + final Optional activeUserEntity = + this.activeUserRepository + .findByEmployeeId(employeeEntity.get().getId()); + + if (!activeUserEntity.isPresent()) { + this.activeUserRepository.save( + (new ActiveUserEntity()) + .setSessionKey(this.sessionId) + .setEmployeeId(employeeEntity.get().getId()) + .setClassification( + employeeEntity.get().getClassification()) + .setName( + employeeEntity.get().getFirstName() + .concat(" ") + .concat(employeeEntity.get().getLastName()))); + } else { + this.activeUserRepository.save( + activeUserEntity.get().setSessionKey(this.sessionId)); + } + + return employeeEntity.get(); + } + + // Properties + private EmployeeSignIn employeeSignIn; + public EmployeeSignIn getEmployeeSignIn() { + return this.employeeSignIn; } - public EmployeeSignIn setPassword(final String password) { - this.password = password; + public EmployeeSignInCommand setEmployeeSignIn(final EmployeeSignIn employeeSignIn) { + this.employeeSignIn = employeeSignIn; return this; } - - public EmployeeSignIn() { - this.password = StringUtils.EMPTY; - this.employeeId = StringUtils.EMPTY; + + private String sessionId; + public String getSessionId() { + return this.sessionId; + } + public EmployeeSignInCommand setSessionId(final String sessionId) { + this.sessionId = sessionId; + return this; } + + @Autowired + private EmployeeRepository employeeRepository; + @Autowired + private ActiveUserRepository activeUserRepository; } From 236c05dab1971ced65d935435efa6e707eedba63 Mon Sep 17 00:00:00 2001 From: pingyhead <42194751+pingyhead@users.noreply.github.com> Date: Thu, 4 Mar 2021 20:59:02 -0600 Subject: [PATCH 66/75] Update EmployeeSignInCommand.java --- .../employees/EmployeeSignInCommand.java | 171 +++++++++--------- 1 file changed, 90 insertions(+), 81 deletions(-) diff --git a/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java index bdad1830..ad757154 100644 --- a/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java +++ b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeSignInCommand.java @@ -1,5 +1,10 @@ package edu.uark.registerapp.commands.employees; +import java.util.Arrays; +import java.util.Optional; + +import javax.transaction.Transactional; + import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -12,88 +17,92 @@ import edu.uark.registerapp.models.api.EmployeeSignIn; import edu.uark.registerapp.models.entities.ActiveUserEntity; import edu.uark.registerapp.models.entities.EmployeeEntity; -import edu.uark.registerapp.models.repositories.ActiveUesrRepository; +import edu.uark.registerapp.models.repositories.ActiveUserRepository; import edu.uark.registerapp.models.repositories.EmployeeRepository; -import java.util.Arrays; -import java.util.Optional; -import javax.transaction.Transactional; - @Service -public class EmployeeSignInCommand implements ResultCommandInterface{ - @Override - public Employee execute(){ - this.validateProperties(); - return new Employee(this.SignInEmployee()); - } - - private void validateProperties(){ - if(StringUtils.isBlank(this.employeeSignIn.getEmployeeId()){ - throw new UnprocessableEntityException("Employee ID"); - } - try{ - Integer.parseInt(this.employeeSignIn.getEmployeeId()); - } catch(final NumberFormatException e){ - throw new UnprocessableEntityException("Employee ID"); - } if(StringUtils.isBlank(this.employeeSignin.getPassword()){ - throw new UnprocessableEntityException("Password"); - } - } - - @Transactional - private EmployeeEntity SignInEmployee(){ - final Optional employeeEntity = - this.employeeRepository.findByEmployeeId( - Integer.parseInt(this.employeeSignIn.getEmployeeId())); - - if(!employeeEntity.isPresent() || !Arrays.equals(employeeEntity.get().getPassword(), - EmployeeHelper.hashPassword(this.employeeSignIn.getPassword())){ - throw new UnauthorizedException(); - } - - final Optional activeUserEntity = - this.activeUserRepository.findByEmployeeId(employeeEntity.get().getId()); - - if(!activeUserRepository.isPresent()){ - this.activeUserRepository.save((new ActiveUserEntity()).setSessionKey(this.sessionId) - .setEmployeeId(employeeEntity.get().getId()).setClassification( - employeeEntity.get().getClassification()) - .setName(employeeEntity.get().getFirstName().concat(" "). - .concat(employeeEntity.get().getLastName()))); - } else{ - this.activeUserRepository.save(activeUserEntity.get().setSessionKey(this.sessionId)); - } - - return employeeEntity.get(); - } - - private EmployeeSignIn employeeSignIn; - - public EmployeeSignIn getEmployeeSignIn(){ - return this.employeeSignIn; - } - - public EmployeeSignInCommand setEmployeeSignIn(final EmployeeSignIn employeeSignIn){ - this.employeeSignIn = employeeSignIn; - - return this; - } - - private String sessionId; - - public String getSessionId(){ - return this.sessionId; - } - - public EmployeeSignInCommand setSessionId(final String sessionId){ - this.sessionId = sessionId; - - return this; - } - - @Autowired - private EmployeeRepository employeeRepository; - - @Autowired - private ActiveUserRepository activeUserRepository; +public class EmployeeSignInCommand implements ResultCommandInterface { + @Override + public Employee execute() { + this.validateProperties(); + + return new Employee(this.SignInEmployee()); + } + + // Helper methods + private void validateProperties() { + if (StringUtils.isBlank(this.employeeSignIn.getEmployeeId())) { + throw new UnprocessableEntityException("employee ID"); + } + try { + Integer.parseInt(this.employeeSignIn.getEmployeeId()); + } catch (final NumberFormatException e) { + throw new UnprocessableEntityException("employee ID"); + } + if (StringUtils.isBlank(this.employeeSignIn.getPassword())) { + throw new UnprocessableEntityException("password"); + } + } + + @Transactional + private EmployeeEntity SignInEmployee() { + final Optional employeeEntity = + this.employeeRepository.findByEmployeeId( + Integer.parseInt(this.employeeSignIn.getEmployeeId())); + + if (!employeeEntity.isPresent() + || !Arrays.equals( + employeeEntity.get().getPassword(), + EmployeeHelper.hashPassword(this.employeeSignIn.getPassword())) + ) { + + throw new UnauthorizedException(); + } + + final Optional activeUserEntity = + this.activeUserRepository + .findByEmployeeId(employeeEntity.get().getId()); + + if (!activeUserEntity.isPresent()) { + this.activeUserRepository.save( + (new ActiveUserEntity()) + .setSessionKey(this.sessionId) + .setEmployeeId(employeeEntity.get().getId()) + .setClassification( + employeeEntity.get().getClassification()) + .setName( + employeeEntity.get().getFirstName() + .concat(" ") + .concat(employeeEntity.get().getLastName()))); + } else { + this.activeUserRepository.save( + activeUserEntity.get().setSessionKey(this.sessionId)); + } + + return employeeEntity.get(); + } + + // Properties + private EmployeeSignIn employeeSignIn; + public EmployeeSignIn getEmployeeSignIn() { + return this.employeeSignIn; + } + public EmployeeSignInCommand setEmployeeSignIn(final EmployeeSignIn employeeSignIn) { + this.employeeSignIn = employeeSignIn; + return this; + } + + private String sessionId; + public String getSessionId() { + return this.sessionId; + } + public EmployeeSignInCommand setSessionId(final String sessionId) { + this.sessionId = sessionId; + return this; + } + + @Autowired + private EmployeeRepository employeeRepository; + @Autowired + private ActiveUserRepository activeUserRepository; } From 0b6168f37bb8b8291e0f0edfe5e2523cb47423ca Mon Sep 17 00:00:00 2001 From: pingyhead <42194751+pingyhead@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:09:17 -0600 Subject: [PATCH 67/75] Update EmployeeSignIn.java --- .../models/api/EmployeeSignIn.java | 114 +++--------------- 1 file changed, 17 insertions(+), 97 deletions(-) diff --git a/src/main/java/edu/uark/registerapp/models/api/EmployeeSignIn.java b/src/main/java/edu/uark/registerapp/models/api/EmployeeSignIn.java index ad757154..e01e4f6c 100644 --- a/src/main/java/edu/uark/registerapp/models/api/EmployeeSignIn.java +++ b/src/main/java/edu/uark/registerapp/models/api/EmployeeSignIn.java @@ -1,108 +1,28 @@ -package edu.uark.registerapp.commands.employees; - -import java.util.Arrays; -import java.util.Optional; - -import javax.transaction.Transactional; +package edu.uark.registerapp.models.api; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import edu.uark.registerapp.commands.ResultCommandInterface; -import edu.uark.registerapp.commands.employees.helpers.EmployeeHelper; -import edu.uark.registerapp.commands.exceptions.UnauthorizedException; -import edu.uark.registerapp.commands.exceptions.UnprocessableEntityException; -import edu.uark.registerapp.models.api.Employee; -import edu.uark.registerapp.models.api.EmployeeSignIn; -import edu.uark.registerapp.models.entities.ActiveUserEntity; -import edu.uark.registerapp.models.entities.EmployeeEntity; -import edu.uark.registerapp.models.repositories.ActiveUserRepository; -import edu.uark.registerapp.models.repositories.EmployeeRepository; -@Service -public class EmployeeSignInCommand implements ResultCommandInterface { - @Override - public Employee execute() { - this.validateProperties(); - - return new Employee(this.SignInEmployee()); +public class EmployeeSignIn { + private String employeeId; + public String getEmployeeId() { + return this.employeeId; } - - // Helper methods - private void validateProperties() { - if (StringUtils.isBlank(this.employeeSignIn.getEmployeeId())) { - throw new UnprocessableEntityException("employee ID"); - } - try { - Integer.parseInt(this.employeeSignIn.getEmployeeId()); - } catch (final NumberFormatException e) { - throw new UnprocessableEntityException("employee ID"); - } - if (StringUtils.isBlank(this.employeeSignIn.getPassword())) { - throw new UnprocessableEntityException("password"); - } - } - - @Transactional - private EmployeeEntity SignInEmployee() { - final Optional employeeEntity = - this.employeeRepository.findByEmployeeId( - Integer.parseInt(this.employeeSignIn.getEmployeeId())); - - if (!employeeEntity.isPresent() - || !Arrays.equals( - employeeEntity.get().getPassword(), - EmployeeHelper.hashPassword(this.employeeSignIn.getPassword())) - ) { - - throw new UnauthorizedException(); - } - - final Optional activeUserEntity = - this.activeUserRepository - .findByEmployeeId(employeeEntity.get().getId()); - - if (!activeUserEntity.isPresent()) { - this.activeUserRepository.save( - (new ActiveUserEntity()) - .setSessionKey(this.sessionId) - .setEmployeeId(employeeEntity.get().getId()) - .setClassification( - employeeEntity.get().getClassification()) - .setName( - employeeEntity.get().getFirstName() - .concat(" ") - .concat(employeeEntity.get().getLastName()))); - } else { - this.activeUserRepository.save( - activeUserEntity.get().setSessionKey(this.sessionId)); - } - - return employeeEntity.get(); - } - - // Properties - private EmployeeSignIn employeeSignIn; - public EmployeeSignIn getEmployeeSignIn() { - return this.employeeSignIn; - } - public EmployeeSignInCommand setEmployeeSignIn(final EmployeeSignIn employeeSignIn) { - this.employeeSignIn = employeeSignIn; + public EmployeeSignIn setEmployeeId(final String employeeId) { + this.employeeId = employeeId; return this; } - private String sessionId; - public String getSessionId() { - return this.sessionId; + private String password; + public String getPassword() { + return this.password; } - public EmployeeSignInCommand setSessionId(final String sessionId) { - this.sessionId = sessionId; + public EmployeeSignIn setPassword(final String password) { + this.password = password; return this; } - - @Autowired - private EmployeeRepository employeeRepository; - @Autowired - private ActiveUserRepository activeUserRepository; + + public EmployeeSignIn() { + this.password = StringUtils.EMPTY; + this.employeeId = StringUtils.EMPTY; + } } From 24b4c2e5f2d54dddd9b89a93fe381ccfdddf8bdf Mon Sep 17 00:00:00 2001 From: uarkNathanSecrest <77640500+uarkNathanSecrest@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:17:58 -0600 Subject: [PATCH 68/75] Updated implementation --- .../activeUsers/ActiveUserDeleteCommand.java | 43 ++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java index 1b1dfa6f..cc4be71b 100644 --- a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java +++ b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java @@ -1,4 +1,4 @@ -package edu.uark.registerapp.commands.activeUsers; +/*package edu.uark.registerapp.commands.activeUsers; import java.util.Optional; @@ -39,3 +39,44 @@ public ActiveUserDeleteCommand setSessionKey(final String sessionKey){ @Autowired private ActiveUserRepository activeUserRepository; } +*/ + + +package edu.uark.registerapp.commands.activeUsers; + +import java.util.Optional; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import edu.uark.registerapp.commands.VoidCommandInterface; +import edu.uark.registerapp.models.entities.ActiveUserEntity; +import edu.uark.registerapp.models.repositories.ActiveUserRepository; + +@Service +public class ActiveUserDeleteCommand implements VoidCommandInterface { + @Transactional + @Override + public void execute() { + final Optional activeUserEntity = + this.activeUserRepository.findBySessionKey(this.sessionKey); + + if (activeUserEntity.isPresent()) { + this.activeUserRepository.delete(activeUserEntity.get()); + } + } + + // Properties + private String sessionKey; + public String getSessionKey() { + return this.sessionKey; + } + public ActiveUserDeleteCommand setSessionKey(final String sessionKey) { + this.sessionKey = sessionKey; + return this; + } + + @Autowired + private ActiveUserRepository activeUserRepository; +} From dbb417c324908f6d59ea699174372f3fa6b9fa2f Mon Sep 17 00:00:00 2001 From: uarkNathanSecrest <77640500+uarkNathanSecrest@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:20:21 -0600 Subject: [PATCH 69/75] commented out parts to debug --- .../commands/activeUsers/ActiveUserDeleteCommand.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java index cc4be71b..f8e5ab4c 100644 --- a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java +++ b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java @@ -48,10 +48,10 @@ public ActiveUserDeleteCommand setSessionKey(final String sessionKey){ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; +//import org.springframework.transaction.annotation.Transactional; import edu.uark.registerapp.commands.VoidCommandInterface; -import edu.uark.registerapp.models.entities.ActiveUserEntity; +//import edu.uark.registerapp.models.entities.ActiveUserEntity; import edu.uark.registerapp.models.repositories.ActiveUserRepository; @Service From 223ddf5ca023785ef9a75c4063f462a85fe935f9 Mon Sep 17 00:00:00 2001 From: uarkNathanSecrest <77640500+uarkNathanSecrest@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:21:46 -0600 Subject: [PATCH 70/75] Update ActiveUserDeleteCommand.java --- .../commands/activeUsers/ActiveUserDeleteCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java index f8e5ab4c..e100bbd5 100644 --- a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java +++ b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java @@ -78,5 +78,5 @@ public ActiveUserDeleteCommand setSessionKey(final String sessionKey) { } @Autowired - private ActiveUserRepository activeUserRepository; + private ActiveUserRepository activeUserRepository; } From 126556b7074299da9c2c889216197348baa0dd95 Mon Sep 17 00:00:00 2001 From: uarkNathanSecrest <77640500+uarkNathanSecrest@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:22:03 -0600 Subject: [PATCH 71/75] Update ActiveUserDeleteCommand.java --- .../commands/activeUsers/ActiveUserDeleteCommand.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java index e100bbd5..eed29928 100644 --- a/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java +++ b/src/main/java/edu/uark/registerapp/commands/activeUsers/ActiveUserDeleteCommand.java @@ -48,10 +48,10 @@ public ActiveUserDeleteCommand setSessionKey(final String sessionKey){ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -//import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.annotation.Transactional; import edu.uark.registerapp.commands.VoidCommandInterface; -//import edu.uark.registerapp.models.entities.ActiveUserEntity; +import edu.uark.registerapp.models.entities.ActiveUserEntity; import edu.uark.registerapp.models.repositories.ActiveUserRepository; @Service From e6c457548c6914036e1ddaab9f4f37bc1a67425a Mon Sep 17 00:00:00 2001 From: uarkNathanSecrest <77640500+uarkNathanSecrest@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:31:07 -0600 Subject: [PATCH 72/75] Create EmployeeCreateCommand.java --- .../employees/EmployeeCreateCommand.java | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 src/main/java/edu/uark/registerapp/commands/employees/EmployeeCreateCommand.java diff --git a/src/main/java/edu/uark/registerapp/commands/employees/EmployeeCreateCommand.java b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeCreateCommand.java new file mode 100644 index 00000000..0da298fb --- /dev/null +++ b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeCreateCommand.java @@ -0,0 +1,89 @@ +package edu.uark.registerapp.commands.employees; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import edu.uark.registerapp.commands.ResultCommandInterface; +import edu.uark.registerapp.commands.employees.helpers.EmployeeHelper; +import edu.uark.registerapp.commands.exceptions.UnprocessableEntityException; +import edu.uark.registerapp.models.api.Employee; +import edu.uark.registerapp.models.entities.EmployeeEntity; +import edu.uark.registerapp.models.enums.EmployeeClassification; +import edu.uark.registerapp.models.repositories.EmployeeRepository; + +@Service +public class EmployeeCreateCommand implements ResultCommandInterface { + @Override + public Employee execute() { + this.validateProperties(); + + if (this.isInitialEmployee) { + this.apiEmployee.setClassification( + EmployeeClassification.GENERAL_MANAGER.getClassification()); + } + + // Create a new ENTITY object from the API object details. + final EmployeeEntity employeeEntity = + this.employeeRepository.save(new EmployeeEntity(this.apiEmployee)); + + // Synchronize information generated by the database upon INSERT. + this.apiEmployee.setId(employeeEntity.getId()); + // Only send the password over the network when modifying the database. + this.apiEmployee.setPassword(StringUtils.EMPTY); + this.apiEmployee.setCreatedOn(employeeEntity.getCreatedOn()); + this.apiEmployee.setEmployeeId( + EmployeeHelper.padEmployeeId( + employeeEntity.getEmployeeId())); + + return this.apiEmployee; + } + + // Helper methods + private void validateProperties() { + if (StringUtils.isBlank(this.apiEmployee.getFirstName())) { + throw new UnprocessableEntityException("first name"); + } + if (StringUtils.isBlank(this.apiEmployee.getLastName())) { + throw new UnprocessableEntityException("last name"); + } + if (StringUtils.isBlank(this.apiEmployee.getPassword())) { + throw new UnprocessableEntityException("password"); + } + + if (!this.isInitialEmployee + && (EmployeeClassification.map(this.apiEmployee.getClassification()) == EmployeeClassification.NOT_DEFINED)) { + + throw new UnprocessableEntityException("classification"); + } + } + + // Properties + private Employee apiEmployee; + public Employee getApiEmployee() { + return this.apiEmployee; + } + public EmployeeCreateCommand setApiEmployee(final Employee apiEmployee) { + this.apiEmployee = apiEmployee; + return this; + } + + private boolean isInitialEmployee; + public boolean getIsInitialEmployee() { + return this.isInitialEmployee; + } + public EmployeeCreateCommand setIsInitialEmployee( + final boolean isInitialEmployee + ) { + + this.isInitialEmployee = isInitialEmployee; + return this; + } + + @Autowired + private EmployeeRepository employeeRepository; + + public EmployeeCreateCommand() { + this.isInitialEmployee = false; + } +} From 455d6ad4c6afa6dffe97d4176a35cfe62d0eca70 Mon Sep 17 00:00:00 2001 From: uarkNathanSecrest <77640500+uarkNathanSecrest@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:32:14 -0600 Subject: [PATCH 73/75] Create EmployeeDeleteCommand.java --- .../employees/EmployeeDeleteCommand.java | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/main/java/edu/uark/registerapp/commands/employees/EmployeeDeleteCommand.java diff --git a/src/main/java/edu/uark/registerapp/commands/employees/EmployeeDeleteCommand.java b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeDeleteCommand.java new file mode 100644 index 00000000..da485479 --- /dev/null +++ b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeDeleteCommand.java @@ -0,0 +1,42 @@ +package edu.uark.registerapp.commands.employees; + +import java.util.Optional; +import java.util.UUID; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import edu.uark.registerapp.commands.VoidCommandInterface; +import edu.uark.registerapp.commands.exceptions.NotFoundException; +import edu.uark.registerapp.models.entities.EmployeeEntity; +import edu.uark.registerapp.models.repositories.EmployeeRepository; + +@Service +public class EmployeeDeleteCommand implements VoidCommandInterface { + @Transactional + @Override + public void execute() { + final Optional employeeEntity = + this.employeeRepository.findById(this.employeeId); + + if (!employeeEntity.isPresent()) { // No record with the associated record ID exists in the database. + throw new NotFoundException("Product"); + } + + this.employeeRepository.delete(employeeEntity.get()); + } + + // Properties + private UUID employeeId; + public UUID getEmployeeId() { + return this.employeeId; + } + public EmployeeDeleteCommand setEmployeeId(final UUID productId) { + this.employeeId = productId; + return this; + } + + @Autowired + private EmployeeRepository employeeRepository; +} From c250a87f151e5eff2ed3885b6fa11c58dd00cdd8 Mon Sep 17 00:00:00 2001 From: uarkNathanSecrest <77640500+uarkNathanSecrest@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:32:50 -0600 Subject: [PATCH 74/75] Create EmployeeQuery.java --- .../commands/employees/EmployeeQuery.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/main/java/edu/uark/registerapp/commands/employees/EmployeeQuery.java diff --git a/src/main/java/edu/uark/registerapp/commands/employees/EmployeeQuery.java b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeQuery.java new file mode 100644 index 00000000..0fcfb8e8 --- /dev/null +++ b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeQuery.java @@ -0,0 +1,41 @@ +package edu.uark.registerapp.commands.employees; + +import java.util.Optional; +import java.util.UUID; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import edu.uark.registerapp.commands.ResultCommandInterface; +import edu.uark.registerapp.commands.exceptions.NotFoundException; +import edu.uark.registerapp.models.api.Employee; +import edu.uark.registerapp.models.entities.EmployeeEntity; +import edu.uark.registerapp.models.repositories.EmployeeRepository; + +@Service +public class EmployeeQuery implements ResultCommandInterface { + @Override + public Employee execute() { + final Optional employeeEntity = + this.employeeRepository.findById(this.employeeId); + + if (employeeEntity.isPresent()) { + return new Employee(employeeEntity.get()); + } else { + throw new NotFoundException("Employee"); + } + } + + // Properties + private UUID employeeId; + public UUID getEmployeeId() { + return this.employeeId; + } + public EmployeeQuery setEmployeeId(final UUID employeeId) { + this.employeeId = employeeId; + return this; + } + + @Autowired + private EmployeeRepository employeeRepository; +} From 366ce39562a41e8694559235f1f6e4b302cd7687 Mon Sep 17 00:00:00 2001 From: uarkNathanSecrest <77640500+uarkNathanSecrest@users.noreply.github.com> Date: Thu, 4 Mar 2021 21:33:27 -0600 Subject: [PATCH 75/75] Create EmployeeUpdateCommand.java --- .../employees/EmployeeUpdateCommand.java | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 src/main/java/edu/uark/registerapp/commands/employees/EmployeeUpdateCommand.java diff --git a/src/main/java/edu/uark/registerapp/commands/employees/EmployeeUpdateCommand.java b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeUpdateCommand.java new file mode 100644 index 00000000..0fd64d7a --- /dev/null +++ b/src/main/java/edu/uark/registerapp/commands/employees/EmployeeUpdateCommand.java @@ -0,0 +1,80 @@ +package edu.uark.registerapp.commands.employees; + +import java.util.Optional; +import java.util.UUID; + +import javax.transaction.Transactional; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import edu.uark.registerapp.commands.ResultCommandInterface; +import edu.uark.registerapp.commands.exceptions.NotFoundException; +import edu.uark.registerapp.commands.exceptions.UnprocessableEntityException; +import edu.uark.registerapp.models.api.Employee; +import edu.uark.registerapp.models.entities.EmployeeEntity; +import edu.uark.registerapp.models.enums.EmployeeClassification; +import edu.uark.registerapp.models.repositories.EmployeeRepository; + +@Service +public class EmployeeUpdateCommand implements ResultCommandInterface { + @Override + public Employee execute() { + this.validateProperties(); + + this.updateEmployeeEntity(); + + return this.apiEmployee; + } + + // Helper methods + private void validateProperties() { + if (StringUtils.isBlank(this.apiEmployee.getFirstName())) { + throw new UnprocessableEntityException("first name"); + } + if (StringUtils.isBlank(this.apiEmployee.getLastName())) { + throw new UnprocessableEntityException("last name"); + } + if (EmployeeClassification.map(this.apiEmployee.getClassification()) == EmployeeClassification.NOT_DEFINED) { + throw new UnprocessableEntityException("classification"); + } + } + + @Transactional + private void updateEmployeeEntity() { + final Optional queriedEmployeeEntity = + this.employeeRepository.findById(this.employeeId); + + if (!queriedEmployeeEntity.isPresent()) { + throw new NotFoundException("Employee"); // No record with the associated record ID exists in the database. + } + + this.apiEmployee = queriedEmployeeEntity.get() + .synchronize(this.apiEmployee); // Synchronize any incoming changes for UPDATE to the database. + + this.employeeRepository.save(queriedEmployeeEntity.get()); // Write, via an UPDATE, any changes to the database. + } + + // Properties + private UUID employeeId; + public UUID getEmployeeId() { + return this.employeeId; + } + public EmployeeUpdateCommand setEmployeeId(final UUID employeeId) { + this.employeeId = employeeId; + return this; + } + + private Employee apiEmployee; + public Employee getApiEmployee() { + return this.apiEmployee; + } + public EmployeeUpdateCommand setApiEmployee(final Employee apiEmployee) { + this.apiEmployee = apiEmployee; + return this; + } + + @Autowired + private EmployeeRepository employeeRepository; +}