package com.mavlushechka.barbershop.controller; import com.mavlushechka.barbershop.domain.*; import com.mavlushechka.barbershop.repository.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import java.util.Base64; import java.util.Date; import java.util.List; import java.util.Map; @Controller public class HomeController { @Autowired private VisitorRepository visitorRepository; @Autowired private AppointmentRepository appointmentRepository; @Autowired private BarberRepository barberRepository; @Autowired private SlideRepository slideRepository; @Autowired private TestimonialRepository testimonialRepository; @Autowired private MessageRepository messageRepository; @GetMapping public String home(Map model) { List slides = slideRepository.findAll(); List barbers = barberRepository.findAll(); List testimonials = testimonialRepository.findAll(); for (Slide slide : slides) { slide.setEncodedPhoto(Base64.getEncoder().encodeToString(slide.getPhoto().getData())); } for (Barber barber : barbers) { barber.setEncodedPhoto(Base64.getEncoder().encodeToString(barber.getPhoto().getData())); } for (Testimonial testimonial : testimonials) { testimonial.setEncodedPhoto(Base64.getEncoder().encodeToString(testimonial.getPhoto().getData())); } model.put("slides", slides); model.put("barbers", barbers); model.put("testimonials", testimonials); visitorRepository.save(new Visitor(new Date())); return "index"; } @GetMapping("/services") public String services(Map model) { model.put("barbers", barberRepository.findAll()); return "services"; } @GetMapping("/about") public String about(Map model) { List barbers = barberRepository.findAll(); List testimonials = testimonialRepository.findAll(); for (Barber barber : barbers) { barber.setEncodedPhoto(Base64.getEncoder().encodeToString(barber.getPhoto().getData())); } for (Testimonial testimonial : testimonials) { testimonial.setEncodedPhoto(Base64.getEncoder().encodeToString(testimonial.getPhoto().getData())); } model.put("barbers", barbers); model.put("testimonials", testimonials); return "about"; } @GetMapping("/contact") public String contact(Map model) { model.put("barbers", barberRepository.findAll()); return "contact"; } @PostMapping("/save/appointment") public String saveAppointment(Appointment appointment) { appointmentRepository.save(appointment); return "redirect:/"; } @PostMapping("/save/message") public String saveAppointment(Message message) { messageRepository.save(message); return "redirect:/"; } }