Ignore:
Timestamp:
02/04/23 21:01:13 (23 months ago)
Author:
milamihajlovska <mila.mihajlovska01@…>
Branches:
master
Children:
693f587
Parents:
a554435
Message:

home controller added mappings for add new film, event and projection

Location:
src/main/java/com/example/moviezone
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/com/example/moviezone/model/Event.java

    ra554435 r302b233  
    2727    LocalDate start_date;
    2828
     29    public Event(String theme, String duration, String repeating, LocalDate start_date) {
     30        this.theme = theme;
     31        this.duration = duration;
     32        this.repeating = repeating;
     33        this.start_date = start_date;
     34    }
    2935}
  • src/main/java/com/example/moviezone/model/Film.java

    ra554435 r302b233  
    3131    LocalDate end_date;
    3232
    33 
     33    public Film(String name, Integer duration, String actors, String genre, String age_category, String url, String director, LocalDate start_date, LocalDate end_date) {
     34        this.name = name;
     35        this.duration = duration;
     36        this.actors = actors;
     37        this.genre = genre;
     38        this.age_category = age_category;
     39        this.url = url;
     40        this.director = director;
     41        this.start_date = start_date;
     42        this.end_date = end_date;
     43    }
    3444}
  • src/main/java/com/example/moviezone/model/Projection.java

    ra554435 r302b233  
    3333    Discount discount;
    3434
     35    public Projection(LocalDate date_time_start, String type_of_technology, LocalDate date_time_end, Film film) {
     36        this.date_time_start = date_time_start;
     37        this.type_of_technology = type_of_technology;
     38        this.date_time_end = date_time_end;
     39        this.film = film;
     40    }
    3541}
  • src/main/java/com/example/moviezone/service/EventService.java

    ra554435 r302b233  
    33import com.example.moviezone.model.Event;
    44
     5import java.time.LocalDate;
    56import java.util.List;
    67
    78public interface EventService {
    89    List<Event> findAllEvents();
    9 
     10    Event save(LocalDate start_date,String theme,String duration,String repeating);
    1011}
  • src/main/java/com/example/moviezone/service/FilmService.java

    ra554435 r302b233  
    33import com.example.moviezone.model.Film;
    44
     5import java.time.LocalDate;
    56import java.util.List;
    67
    78public interface FilmService {
    89    List<Film> findAllFilms();
     10    Film save(String name, Integer duration, String actors, String genre,
     11              String age_category, String url, String director, LocalDate start_date,LocalDate end_date );
    912}
  • src/main/java/com/example/moviezone/service/Impl/EventServiceImpl.java

    ra554435 r302b233  
    66import org.springframework.stereotype.Service;
    77
     8import java.time.LocalDate;
    89import java.util.List;
    910
     
    2021        return eventRepository.findAll();
    2122    }
     23
     24    @Override
     25    public Event save(LocalDate start_date, String theme, String duration, String repeating) {
     26        return eventRepository.save(new Event(theme,duration,repeating,start_date));
     27    }
    2228}
  • src/main/java/com/example/moviezone/service/Impl/FilmServiceImpl.java

    ra554435 r302b233  
    66import org.springframework.stereotype.Service;
    77
     8import java.time.LocalDate;
    89import java.util.List;
    910
     
    2021        return filmRepository.findAll();
    2122    }
     23
     24    @Override
     25    public Film save(String name, Integer duration, String actors, String genre, String age_category, String url, String director, LocalDate start_date, LocalDate end_date) {
     26        return filmRepository.save(new Film(name,duration,actors,genre,age_category,url,director,start_date,end_date));
     27    }
    2228}
  • src/main/java/com/example/moviezone/service/Impl/ProjectionServiceImpl.java

    ra554435 r302b233  
    11package com.example.moviezone.service.Impl;
    22
     3import com.example.moviezone.model.Film;
    34import com.example.moviezone.model.Projection;
     5import com.example.moviezone.repository.FilmRepository;
    46import com.example.moviezone.repository.ProjectionRepository;
    57import com.example.moviezone.service.ProjectionService;
     
    1214public class ProjectionServiceImpl implements ProjectionService {
    1315    private final ProjectionRepository projectionRepository;
    14 
    15     public ProjectionServiceImpl(ProjectionRepository projectionRepository) {
     16    private final FilmRepository filmRepository;
     17    public ProjectionServiceImpl(ProjectionRepository projectionRepository, FilmRepository filmRepository) {
    1618        this.projectionRepository = projectionRepository;
     19        this.filmRepository = filmRepository;
    1720    }
    1821
     
    2730    }
    2831
     32    @Override
     33    public Projection save(LocalDate date_time_start, LocalDate date_time_end, String type_of_technology, Integer id_film) {
     34       Film film=filmRepository.findById(id_film).orElseThrow(RuntimeException::new);
     35        return projectionRepository.save(new Projection(date_time_start,type_of_technology,date_time_end,film));
     36    }
     37
    2938}
  • src/main/java/com/example/moviezone/service/ProjectionService.java

    ra554435 r302b233  
    11package com.example.moviezone.service;
    22
     3import com.example.moviezone.model.Film;
    34import com.example.moviezone.model.Projection;
    45
     
    910    List<Projection> findAllProjections();
    1011List<Projection> findAllAvailableProjections(LocalDate date);
    11 
     12Projection save(LocalDate date_time_start,LocalDate date_time_end, String type_of_technology, Integer id_film );
    1213}
  • src/main/java/com/example/moviezone/web/HomeController.java

    ra554435 r302b233  
    22
    33
     4import com.example.moviezone.model.Customer;
     5import com.example.moviezone.model.Film;
    46import com.example.moviezone.model.User;
    57import com.example.moviezone.model.exceptions.UserNotFoundException;
    6 import com.example.moviezone.service.EventService;
    7 import com.example.moviezone.service.FilmService;
    8 import com.example.moviezone.service.ProjectionService;
    9 import com.example.moviezone.service.UserService;
     8import com.example.moviezone.service.*;
     9import org.springframework.format.annotation.DateTimeFormat;
    1010import org.springframework.stereotype.Controller;
    1111import org.springframework.ui.Model;
     
    2626private final ProjectionService projectionService;
    2727private final EventService eventService;
     28private final TicketService ticketService;
    2829
    29     public HomeController(FilmService filmService, UserService userService, ProjectionService projectionService, EventService eventService) {
     30    public HomeController(FilmService filmService, UserService userService, ProjectionService projectionService, EventService eventService, TicketService ticketService) {
    3031        this.filmService = filmService;
    3132        this.userService = userService;
    3233        this.projectionService = projectionService;
    3334        this.eventService = eventService;
     35        this.ticketService = ticketService;
    3436    }
    3537
    36     @GetMapping
     38    @GetMapping({"/","/home"})
    3739    public String getHomePage(Model model) {
    3840        model.addAttribute("bodyContent", "home");
     
    105107        return "master-template";
    106108    }
     109    @GetMapping("/myTickets")
     110    public  String getMyTicketsPage(Model model,HttpSession session)
     111    {
     112        model.addAttribute("tickets",ticketService.findAllByCustomer((Customer) session.getAttribute("user")));
     113        model.addAttribute("bodyContent","myTickets");
     114        return "master-template";
     115    }
     116    @GetMapping("/addProjection")
     117    public  String getAddProjectionPage(Model model)
     118    {
     119        model.addAttribute("films",filmService.findAllFilms());
     120        model.addAttribute("bodyContent","addProjection");
     121        return "master-template";
     122    }
     123    @GetMapping("/addEvent")
     124    public  String getAddEventPage(Model model)
     125    {
     126        model.addAttribute("bodyContent","addEvent");
     127        return "master-template";
     128    }
     129    @GetMapping("/addFilm")
     130    public  String getAddFilmPage(Model model)
     131    {
     132        model.addAttribute("bodyContent","addFilm");
     133        return "master-template";
     134    }
     135
     136    @PostMapping("/addP")
     137    public String saveProjection(@RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date_time_start,
     138                                 @RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date_time_end,
     139                                 @RequestParam String type_of_technology,
     140                                 @RequestParam Integer id_film)
     141    {
     142        projectionService.save(date_time_start,date_time_end,type_of_technology,id_film);
     143         return "redirect:/home";
     144    }
     145    @PostMapping("/addE")
     146    public String saveEvent(@RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate start_date,
     147                                 @RequestParam String theme,
     148                                 @RequestParam String duration,
     149                            @RequestParam String repeating)
     150    {
     151        eventService.save(start_date,theme,duration,repeating);
     152        return "redirect:/home";
     153    }
     154    @PostMapping("/addF")
     155    public String saveFilm(
     156                            @RequestParam String name,
     157                            @RequestParam Integer duration,
     158                            @RequestParam String actors,
     159                           @RequestParam String genre,
     160                           @RequestParam String age_category,
     161                           @RequestParam String url,
     162                           @RequestParam String director,
     163                            @RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate start_date,
     164                            @RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate end_date
     165                           )
     166    {
     167        filmService.save(name,duration,actors,genre,age_category,url,director,start_date,end_date);
     168        return "redirect:/home";
     169    }
    107170
    108171}
Note: See TracChangeset for help on using the changeset viewer.