diff --git a/pom.xml b/pom.xml index 610cd42..33dbe52 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 2.1.17.RELEASE + 2.2.11.RELEASE com.edimitri diff --git a/src/main/java/com/edimitri/cohortcalendar/controllers/CohortController.java b/src/main/java/com/edimitri/cohortcalendar/controllers/CohortController.java index 62c867d..9f03748 100644 --- a/src/main/java/com/edimitri/cohortcalendar/controllers/CohortController.java +++ b/src/main/java/com/edimitri/cohortcalendar/controllers/CohortController.java @@ -84,7 +84,7 @@ public String getCalendar(@PathVariable int year, @PathVariable int month, @Path for (CohortDay cohortDay: calendar) { String dayDisplay = ""; if(cohortDay.getHoliday() != null) { - dayDisplay = String.format("%s", cohortDay.getHoliday().getName()); + dayDisplay = String.format("%s", cohortDay.getHoliday().getHolidayName()); } else { dayDisplay = cohortDay.getDate().getDayOfWeek().toString(); } @@ -93,6 +93,4 @@ public String getCalendar(@PathVariable int year, @PathVariable int month, @Path return body; } - - } \ No newline at end of file diff --git a/src/main/java/com/edimitri/cohortcalendar/controllers/HolidayController.java b/src/main/java/com/edimitri/cohortcalendar/controllers/HolidayController.java index 47507a0..30d3163 100644 --- a/src/main/java/com/edimitri/cohortcalendar/controllers/HolidayController.java +++ b/src/main/java/com/edimitri/cohortcalendar/controllers/HolidayController.java @@ -14,18 +14,14 @@ @Controller public class HolidayController { - private final HolidayRepository holidayRepository; - - public HolidayController(HolidayRepository holidayRepository) { - this.holidayRepository = holidayRepository; - } + @Autowired + private HolidayRepository holidayRepository; @GetMapping("/holidays") public String cohortsIndex(Model model) { List holidays = holidayRepository.findAll(); model.addAttribute("holidays", holidays); - model.addAttribute("byDate", Comparator.comparing(Holiday::getDate)); - + model.addAttribute("byDate", Comparator.comparing(Holiday::getHolidayDate)); return "holidays/holidays"; } @@ -52,7 +48,7 @@ public String showUpdateHolidayForm(@PathVariable("id") Long id, Model model){ @PostMapping("holidays/{id}/edit") public String editHoliday(@PathVariable Long id, @Valid Holiday editedHoliday, Model model) { editedHoliday.setId(id); - editedHoliday.setName(editedHoliday.getName()); + editedHoliday.setHolidayName(editedHoliday.getHolidayName()); holidayRepository.save(editedHoliday); return "redirect:/holidays"; } diff --git a/src/main/java/com/edimitri/cohortcalendar/controllers/UserController.java b/src/main/java/com/edimitri/cohortcalendar/controllers/UserController.java index 4092333..ce06d6e 100644 --- a/src/main/java/com/edimitri/cohortcalendar/controllers/UserController.java +++ b/src/main/java/com/edimitri/cohortcalendar/controllers/UserController.java @@ -1,6 +1,7 @@ package com.edimitri.cohortcalendar.controllers; import com.edimitri.cohortcalendar.models.*; +import com.edimitri.cohortcalendar.repositories.Roles; import com.edimitri.cohortcalendar.services.UserService; import com.google.inject.internal.Errors; import org.springframework.beans.factory.annotation.Autowired; @@ -29,13 +30,12 @@ public class UserController { @Autowired private PasswordEncoder passwordEncoder; - /*@Autowired - private UserRoles userRoles;*/ + @Autowired + private Roles userRoles; @Autowired private UserService userService; - @GetMapping("/sign-up") public String showSignupForm(Model model) { model.addAttribute("user", new User()); @@ -46,68 +46,53 @@ public String saveUser(@ModelAttribute User user) { String hash = passwordEncoder.encode(user.getPassword()); user.setPassword(hash); userRepository.save(user); - authenticate(user); + userService.authenticate(user); return "index"; } - private void authenticate(User user) { - UserDetails userDetails = new UserWithRoles(user, Collections.emptyList()); - Authentication auth = new UsernamePasswordAuthenticationToken( - userDetails, - userDetails.getPassword(), - userDetails.getAuthorities() - ); - SecurityContext context = SecurityContextHolder.getContext(); - context.setAuthentication(auth); - } - - /*@PostMapping("/users/create") - public String saveUser(@Valid User user, Errors validation, Model m){ - - String username = user.getUsername(); - User existingUsername = userRepository.findByUsername(username); - User existingEmail = userRepository.findByEmail(user.getEmail()); - -*//* - if(existingUsername != null){ - - validation.rejectValue("username", "user.username", "Duplicated username " + username); - - } - - if(existingEmail != null){ - - validation.rejectValue("email", "user.email", "Duplicated email " + user.getEmail()); - - } - - *//* - - if (validation.hasErrors()) { - m.addAttribute("errors", validation); - m.addAttribute("user", user); - return "users/create"; - } - - user.setPassword(passwordEncoder.encode(user.getPassword())); - - // Custom validation if the username is taken - - User newUser = UserRepository.save(user); - - UserRole ur = new UserRole(); - ur.setRole("ROLE_USER"); - ur.setUserId(newUser.getId()); - userRoles.save(ur); - - // Programmatic login after registering a user - UserService.authenticate(user); - - m.addAttribute("user", user); - return "redirect:/"; - - }*/ - +// @PostMapping("/users/create") +// public String saveUser(@Valid User user, Errors validation, Model m){ +// +// String username = user.getUsername(); +// User existingUsername = userRepository.findByUsername(username); +// User existingEmail = userRepository.findByEmail(user.getEmail()); +// +//// if(existingUsername != null){ +//// +//// validation.re("username", "user.username", "Duplicated username " + username); +//// +//// } +//// +//// if(existingEmail != null){ +//// +//// validation.rejectValue("email", "user.email", "Duplicated email " + user.getEmail()); +//// +//// } +// +// if (validation.hasErrors()) { +// m.addAttribute("errors", validation); +// m.addAttribute("user", user); +// return "users/create"; +// } +// +// user.setPassword(passwordEncoder.encode(user.getPassword())); +// +// // Custom validation if the username is taken +// +// User newUser = userRepository.save(user); +// +// UserRole ur = new UserRole(); +// ur.setRole("ROLE_USER"); +// ur.setUserId(newUser.getId()); +// userRoles.save(ur); +// +// // Programmatic login after registering a user +// userService.authenticate(user); +// +// m.addAttribute("user", user); +// return "redirect:/"; +// +// } @GetMapping("/users/profile") public String showProfile(Model viewModel){ diff --git a/src/main/java/com/edimitri/cohortcalendar/models/Holiday.java b/src/main/java/com/edimitri/cohortcalendar/models/Holiday.java index e5bf6af..7a3df18 100644 --- a/src/main/java/com/edimitri/cohortcalendar/models/Holiday.java +++ b/src/main/java/com/edimitri/cohortcalendar/models/Holiday.java @@ -4,7 +4,6 @@ import javax.persistence.*; import java.time.LocalDate; -import java.util.Date; @Entity @Table(name = "holidays") @@ -14,17 +13,17 @@ public class Holiday { private Long id; @Column(nullable=false) - private String name; + private String holidayName; @Column(nullable=false, unique=true) @DateTimeFormat(pattern = "yyyy-MM-dd") - private LocalDate date; + private LocalDate holidayDate; public Holiday(){} - public Holiday(String name, LocalDate date) { - this.name = name; - this.date = date; + public Holiday(String holidayName, LocalDate holidayDate) { + this.holidayName = holidayName; + this.holidayDate = holidayDate; } public Long getId() { @@ -35,20 +34,20 @@ public void setId(Long id) { this.id = id; } - public String getName() { - return name; + public String getHolidayName() { + return holidayName; } - public void setName(String name) { - this.name= name; + public void setHolidayName(String name) { + this.holidayName = name; } - public LocalDate getDate() { - return date; + public LocalDate getHolidayDate() { + return holidayDate; } - public void setDate(LocalDate date) { - this.date = date; + public void setHolidayDate(LocalDate date) { + this.holidayDate = date; } } diff --git a/src/main/java/com/edimitri/cohortcalendar/repositories/CohortRepository.java b/src/main/java/com/edimitri/cohortcalendar/repositories/CohortRepository.java index f296165..357c8b5 100644 --- a/src/main/java/com/edimitri/cohortcalendar/repositories/CohortRepository.java +++ b/src/main/java/com/edimitri/cohortcalendar/repositories/CohortRepository.java @@ -4,17 +4,20 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; import java.util.List; -public interface CohortRepository extends JpaRepository { +@Repository +public interface CohortRepository extends JpaRepository { Cohort findByName(String name); + Cohort findByCampusAndProgramType(String campus, String programType); - ListfindByProgramType(String programType); + List findByProgramType(String programType); List findByCampus(String campus); List findAll(); -} +} \ No newline at end of file diff --git a/src/main/java/com/edimitri/cohortcalendar/repositories/HolidayRepository.java b/src/main/java/com/edimitri/cohortcalendar/repositories/HolidayRepository.java index 7364e9e..5a59c40 100644 --- a/src/main/java/com/edimitri/cohortcalendar/repositories/HolidayRepository.java +++ b/src/main/java/com/edimitri/cohortcalendar/repositories/HolidayRepository.java @@ -2,10 +2,11 @@ import com.edimitri.cohortcalendar.models.Holiday; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; import java.time.LocalDate; +@Repository public interface HolidayRepository extends JpaRepository { - Holiday findFirstByDate(LocalDate date); - //see Defining Query Methods lesson in curriculum -} + Holiday findFirstByHolidayDate(LocalDate date); +} \ No newline at end of file diff --git a/src/main/java/com/edimitri/cohortcalendar/repositories/Roles.java b/src/main/java/com/edimitri/cohortcalendar/repositories/Roles.java index 7e6e103..728148f 100644 --- a/src/main/java/com/edimitri/cohortcalendar/repositories/Roles.java +++ b/src/main/java/com/edimitri/cohortcalendar/repositories/Roles.java @@ -3,9 +3,11 @@ import com.edimitri.cohortcalendar.models.UserRole; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; import java.util.List; +@Repository public interface Roles extends CrudRepository { @Query("select ur.role from UserRole ur, User u where u.username=?1 and ur.userId = u.id") List ofUserWith(String username); diff --git a/src/main/java/com/edimitri/cohortcalendar/repositories/UserRepository.java b/src/main/java/com/edimitri/cohortcalendar/repositories/UserRepository.java index f91a543..98e240a 100644 --- a/src/main/java/com/edimitri/cohortcalendar/repositories/UserRepository.java +++ b/src/main/java/com/edimitri/cohortcalendar/repositories/UserRepository.java @@ -2,7 +2,9 @@ import com.edimitri.cohortcalendar.models.User; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; +@Repository public interface UserRepository extends JpaRepository { // User findByEmail(String email); User findByUsername(String username); diff --git a/src/main/java/com/edimitri/cohortcalendar/services/CohortCalendarServiceImpl.java b/src/main/java/com/edimitri/cohortcalendar/services/CohortCalendarServiceImpl.java index 7cfb0c5..2c0f92f 100644 --- a/src/main/java/com/edimitri/cohortcalendar/services/CohortCalendarServiceImpl.java +++ b/src/main/java/com/edimitri/cohortcalendar/services/CohortCalendarServiceImpl.java @@ -3,6 +3,7 @@ import com.edimitri.cohortcalendar.models.CohortDay; import com.edimitri.cohortcalendar.models.Holiday; import com.edimitri.cohortcalendar.repositories.HolidayRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.DayOfWeek; @@ -12,11 +13,9 @@ @Service public class CohortCalendarServiceImpl implements CohortCalendarService{ - private final HolidayRepository holidayRepository; - public CohortCalendarServiceImpl(HolidayRepository holidayRepository){ - this.holidayRepository=holidayRepository; - } + @Autowired + private HolidayRepository holidayRepository; @Override public List getCalendar(LocalDate startDate, double contactHours){ @@ -26,7 +25,7 @@ public List getCalendar(LocalDate startDate, double contactHours){ LocalDate currentDate=startDate; double totalHours=0; while (totalHours getCalendar(LocalDate startDate, double contactHours){ return results; } - - public Holiday getHolidayByDate(LocalDate date) { - return holidayRepository.findFirstByDate(date); - } - public static double getHoursOfDayofWeek(DayOfWeek dayOfWeek) { double dayHours; switch (dayOfWeek) { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index b20b6e5..cb6723e 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,7 +1,5 @@ -spring.datasource.url=jdbc:mysql://localhost/cohort_calendar_db?createDatabaseIfNotExist=true&useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false -spring.jpa.properties.hibernate.jdbc.time_zone=UTC +spring.datasource.url=jdbc:mysql://localhost/cohort_calendar_db?createDatabaseIfNotExist=true&useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=codeup spring.jpa.hibernate.ddl-auto=update -spring.jpa.show-sql=true -user.timezone=UTC \ No newline at end of file +spring.jpa.show-sql=true \ No newline at end of file diff --git a/src/main/resources/templates/holidays/add.html b/src/main/resources/templates/holidays/add.html index 668414c..509fbcc 100644 --- a/src/main/resources/templates/holidays/add.html +++ b/src/main/resources/templates/holidays/add.html @@ -13,12 +13,12 @@

Add Holidays

- +
- +
diff --git a/src/main/resources/templates/holidays/edit.html b/src/main/resources/templates/holidays/edit.html index 2b8b6de..0007ca6 100644 --- a/src/main/resources/templates/holidays/edit.html +++ b/src/main/resources/templates/holidays/edit.html @@ -11,12 +11,12 @@

Edit Holidays

- +
- +
diff --git a/src/main/resources/templates/holidays/holidays.html b/src/main/resources/templates/holidays/holidays.html index d2c7eb5..1250e7c 100644 --- a/src/main/resources/templates/holidays/holidays.html +++ b/src/main/resources/templates/holidays/holidays.html @@ -26,8 +26,8 @@

No holidays yet!

- - + + Edit Delete diff --git a/src/seeder-data/campuses.sql b/src/seeder-data/campuses.sql index a71d3fa..64bd02f 100644 --- a/src/seeder-data/campuses.sql +++ b/src/seeder-data/campuses.sql @@ -1,4 +1,7 @@ use cohort_calendar_db; INSERT INTO campuses(campus_name) -VALUES ('SAT','DAL','HOU','AUS'); \ No newline at end of file +VALUES ('SAT'), + ('DAL'), + ('AUS'), + ('HOU'); \ No newline at end of file diff --git a/src/seeder-data/users.sql b/src/seeder-data/users.sql index 80f6087..cf09492 100644 --- a/src/seeder-data/users.sql +++ b/src/seeder-data/users.sql @@ -1,7 +1,9 @@ use cohort_calendar_db; -INSERT INTO users(email, first_name, is_admin, last_name, password) -VALUES ('dimitri@codeup.com', 'Dimitri', true, 'Antoniou', 'codeup'), - ('liz@codeup.com', 'Liz', true, 'Maya', 'codeup'), - ('jason@codeup.com', 'Jason', true, 'Straughan', 'codeup'), - ('katie@codeup.com', 'Katie', false, 'Facemire', 'codeup'); +-- passwords = pass +INSERT INTO users(email, first_name, is_admin, last_name, password, username) +VALUES ('dimitri@codeup.com', 'Dimitri', true, 'Antoniou', '$2a$10$3Ffh4PsLPljCXNKhhpqpEezCp92GjDIT3oVJghWvbqPF5hW3oBXw.', 'dimitri'), + ('liz@codeup.com', 'Liz', true, 'Maya', '$2a$10$3Ffh4PsLPljCXNKhhpqpEezCp92GjDIT3oVJghWvbqPF5hW3oBXw.', 'liz'), + ('jason@codeup.com', 'Jason', true, 'Straughan', '$2a$10$3Ffh4PsLPljCXNKhhpqpEezCp92GjDIT3oVJghWvbqPF5hW3oBXw.', 'jason'), + ('katie@codeup.com', 'Katie', false, 'Facemire', '$2a$10$3Ffh4PsLPljCXNKhhpqpEezCp92GjDIT3oVJghWvbqPF5hW3oBXw.', 'katie'), + ('fernando@codeup.com', 'fer', true, 'Mendoza', '$2a$10$3Ffh4PsLPljCXNKhhpqpEezCp92GjDIT3oVJghWvbqPF5hW3oBXw.', 'fer');