-Write the functions which have the code throw new UnsupportedOperationException("TODO"); in the MovieServiceApp project - Use exception handling for exceptions - You have to configure database just create a database written in properties files - Be careful about the password of you database management system - You can do that homework just with a friend - Two people.ara allowed for a group - All of the projects uploaded separately - If you make your project with friend, write the name of your friend for the upload Good luck package tr.edu.altinbas.app.service.rest.movie; import org.springframework.boot.SpringApplication; import org.springframework. boot.autoconfigure.SpringB ootApplication; QSpringBootApplication public class App \{ public static void main(String[] args) { SpringApplication.run(App.class, args); \} package tr.edu.altinbas.app.service.rest.movie; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context. SpringBo otTest; eSpringBootTest class AppTests \{ (DTest void contextLoads() \{ \} package tr.edu.altinbas.app.service.rest.movie.dto; import java.time.LocalDate; public class DirectorDetailDTo \{ private String m_fullName; private LocalDate m_birthDate; public String getFullName() \{ return m_fullName; \} public void setFullName(String fullName) \{ m_fullName = fullName; \} public LocalDate getBirthDate() \{ return m_birthDate; \} public void setBirthDate(LocalDate birthDate) \{ m_birthDate = birthDate; \#\#\# Reference Documentation For further reference, please consider the following sections: * [Official Apache Maven documentation](https:// maven.apache.org/guides/index.html) * [Spring Boot Maven Plugin Reference Guide](https:// docs.spring.io/spring-boot/docs/2.6.4/maven-plugin/ reference/html/) * [Create an OCI image](https://docs.spring.io/spring-boot/ docs/2.6.4/maven-plugin/reference/html/\#build-image) package tr.edu.altinbas.app.service.rest.movie.data.re pository; import tr.edu.altinbas.app.service.rest.movie.data.en tity.Director; import tr.edu.altinbas.app.service.rest.movie.data.en tity.DirectorDetail; import org.csystem.util.data.repository.ICrudReposito ry; public interface IDirectorRepositoryJDBC extends ICrudRepository>{ Iterable findAllDetail(); Iterable findDetailByMovieId(long movieId); \} package tr.edu.altinbas.app.service.rest.movie.data.re pository; import tr.edu.altinbas.app.service.rest.movie.data.en tity.Movie; import org.springframework.data.repository.CrudReposi tory; import org.springframework.stereotype.Repository; QRepository public interface IMovieRepository extends CrudRepository{ \{ tr.edu.altinbas.app.service.rest.movie.data.re pository; import tr.edu.altinbas.app.service.rest.movie.data.en tity.Movie; import org.csystem.util.data.repository. ICrudReposito ry; import java.time.LocalDate; public interface IMovieRepositoryJDBC extends ICrudRepository \{ Iterable findByMonth(int month); Iterable findByYear(int year); Iterable findByMonthAndYear(int month, int year); Iterable findByDateBetween(LocalDate begin, LocalDate end); Iterable findByYearBetween(int begin, int end); Iterable findByDirectorId(long directorId); package tr.edu.altinbas.app.service.rest.movie.data.re pository; import tr.edu.altinbas.app.service.rest.movie.data.en tity.Movie; import org.springframework.jdbc.core.namedparam.BeanP ropertySqlParameterSource; import org.springframework.jdbc.core.namedparam.Named ParameterJdbcTemplate; import org.springframework.jdbc.support.GeneratedKeyH older; import org.springframework.stereotype.Repository; import java.math.BigDecimal; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Types; import java.time.LocalDate; import java.util.Arraylist; import java.util.HashMap; import java.util.List; import java.util.Optional; eRepository public class MovieRepositoryJDBC implements IMovieRepositoryJDBC \{ private static final String CoUNT_SQL = private static final String package tr.edu.altinbas.app.service.rest.movie.dto; import java.util.List; public class MoviesDTO \{ private List m_movies; public List getMovies() { return m_movies; \} public void setMovies(List movies) \( \left\{\begin{array}{l}\text { m_movies = movies; }\end{array} ight. \) \} Aadak REST servsler yaznz: + /api/movie/movies/count: Ka tane movie olduu bilgisini getiren servis + /api/movie/movies/find/sdate/month? m=3: m parametresi ile verilen ay ierisinde vizyona girmi tm movie'leri getiren servis + /api/movie/movies/find/sdate/year?y=2020: y parametresi ile verilen yl ierisinde vizyona girmi tm movie'leri getiren servis + /api/movie/movies/find/sdate/my?month=3\&year=2020: m parametresi ile verilen ay ve y parametresi ile verilen yl ierisinde vizyona girmi tm movie'leri getiren servis + /api/movie/movies/find/sdate/year/between? begin =2020 \&end =2022 : Verilen iki tane yl bilgisi arasndaki tm movie'leri, + /api/movie/movies/find/director?id=1: id'si parametre olarak verilen ynetmenin tm filmlerini getiren servis + /api/director/directors/find/movie?id=1: id'si parametre olarak verilen filmin tm ynetmenlerini getiren servis getiren servis Aklama: - Yukardaki servisler tek bir controller ierisinde yazlacaktr - Tm servisler aadaki formatta yant verecektir \{ "movies": [ \{ "name": "Face Off", "sceneDate":"1996-05-12" "cost": "1000000.67" \} , \{ "name": "Face Off", "sceneDate":"1996-05-12