@@ -277,50 +277,65 @@ <h2 id="_create_swapi_pojo"><a class="anchor" href="#_create_swapi_pojo"></a>Cre
277277< div class ="content ">
278278< pre class ="highlightjs highlight "> < code class ="language-java hljs " data-lang ="java "> package com.redhat.developers;
279279
280- import java.util.List;
280+ public class Swapi {
281281
282- import com.fasterxml.jackson.annotation.JsonProperty;
282+ private String title;
283+ private int episode_id;
284+ private String opening_crawl;
285+ private String director;
286+ private String producer;
283287
284- public class Swapi {
285288
286- private List<Results> results;
289+ public Swapi() {
290+ }
287291
288- public Swapi(@JsonProperty("results") List<Results> results) {
289- this.results = results;
292+ public Swapi(String title, int episode_id, String opening_crawl, String director, String producer) {
293+ this.title = title;
294+ this.episode_id = episode_id;
295+ this.opening_crawl = opening_crawl;
296+ this.director = director;
297+ this.producer = producer;
290298 }
291299
292- public List<Results> getResults() {
293- return results;
300+
301+ public String getTitle() {
302+ return title;
294303 }
295304
296- public static class Results {
297- private int episodeId;
298- private String producer;
299- private String director;
300- private String opening_crawl;
301-
302- public Results(int episodeId, String producer, String director, String opening_crawl) {
303- this.episodeId = episodeId;
304- this.producer = producer;
305- this.director = director;
306- this.opening_crawl = opening_crawl;
307- }
305+ public void setTitle(String title) {
306+ this.title = title;
307+ }
308308
309- public int getEpisodeId () {
310- return episodeId ;
311- }
309+ public int getEpisode_id () {
310+ return episode_id ;
311+ }
312312
313- public String getProducer( ) {
314- return producer ;
315- }
313+ public void setEpisode_id(int episode_id ) {
314+ this.episode_id = episode_id ;
315+ }
316316
317- public String getDirector () {
318- return director ;
319- }
317+ public String getOpening_crawl () {
318+ return opening_crawl ;
319+ }
320320
321- public String getOpening_crawl() {
322- return opening_crawl;
323- }
321+ public void setOpening_crawl(String opening_crawl) {
322+ this.opening_crawl = opening_crawl;
323+ }
324+
325+ public String getDirector() {
326+ return director;
327+ }
328+
329+ public void setDirector(String director) {
330+ this.director = director;
331+ }
332+
333+ public String getProducer() {
334+ return producer;
335+ }
336+
337+ public void setProducer(String producer) {
338+ this.producer = producer;
324339 }
325340}</ code > </ pre >
326341</ div >
@@ -337,24 +352,21 @@ <h3 id="_create_swapiservice"><a class="anchor" href="#_create_swapiservice"></a
337352< div class ="content ">
338353< pre class ="highlightjs highlight "> < code class ="language-java hljs " data-lang ="java "> package com.redhat.developers;
339354
340- import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
341355
342356import jakarta.ws.rs.GET;
343357import jakarta.ws.rs.Path;
358+ import jakarta.ws.rs.PathParam;
344359import jakarta.ws.rs.Produces;
345- import jakarta.ws.rs.QueryParam;
346360import jakarta.ws.rs.core.MediaType;
361+ import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
347362
348- import com.redhat.developers.Swapi.Results;
349-
350- @Path("/api")
351363@RegisterRestClient
352364public interface SwapiService {
365+
353366 @GET
354- @Path("/films")
355367 @Produces(MediaType.APPLICATION_JSON)
356- Swapi getMovieByTitle(@QueryParam("search") String title);
357-
368+ @Path("/films/{id}")
369+ public Swapi getFilmById(@PathParam("id") String id);
358370}</ code > </ pre >
359371</ div >
360372</ div >
@@ -369,7 +381,7 @@ <h2 id="_configure_rest_client_properties"><a class="anchor" href="#_configure_r
369381</ div >
370382< div class ="listingblock console-input ">
371383< div class ="content ">
372- < pre class ="highlightjs highlight "> < code class ="language-properties hljs " data-lang ="properties "> quarkus.rest-client."com.redhat.developers.SwapiService".url=https://swapi.dev </ code > </ pre >
384+ < pre class ="highlightjs highlight "> < code class ="language-properties hljs " data-lang ="properties "> quarkus.rest-client."com.redhat.developers.SwapiService".url=https://swapi.info/api </ code > </ pre >
373385</ div >
374386</ div >
375387</ div >
@@ -388,64 +400,86 @@ <h2 id="_create_moviedto"><a class="anchor" href="#_create_moviedto"></a>Create
388400< pre class ="highlightjs highlight "> < code class ="language-java hljs " data-lang ="java "> package com.redhat.developers;
389401
390402import java.sql.Date;
391- import java.util.List;
392-
393- import com.redhat.developers.Swapi.Results;
394403
395404public class MovieDTO {
405+
396406 private String title;
397407 private Date releaseDate;
398- private int episodeId;
399- private String producer;
400- private String director;
408+ private int episode_id;
401409 private String opening_crawl;
410+ private String director;
411+ private String producer;
402412
403- private MovieDTO(String title, Date releaseDate, int episodeId, String producer, String director, String opening_crawl) {
413+ public MovieDTO() {
414+ }
415+
416+ private MovieDTO(String title, Date releaseDate, int episode_id, String opening_crawl, String director, String producer) {
404417 this.title = title;
405418 this.releaseDate = releaseDate;
406- this.episodeId = episodeId;
407- this.producer = producer;
408- this.director = director;
419+ this.episode_id = episode_id;
409420 this.opening_crawl = opening_crawl;
421+ this.director = director;
422+ this.producer = producer;
410423 }
411424
412- public static MovieDTO of(Movie movie, Swapi swapi){
413- List<Results> results = swapi.getResults();
414- Results result = results.get(0);
415-
425+ public static MovieDTO of(Movie movie, Swapi swapi) {
416426 return new MovieDTO(
417- movie.title,
418- movie.releaseDate,
419- result.getEpisodeId (),
420- result.getProducer (),
421- result .getDirector(),
422- result.getOpening_crawl ()
427+ movie.title,
428+ movie.releaseDate,
429+ swapi.getEpisode_id (),
430+ swapi.getOpening_crawl (),
431+ swapi .getDirector(),
432+ swapi.getProducer ()
423433 );
424434 }
425435
426436 public String getTitle() {
427437 return title;
428438 }
429439
440+ public void setTitle(String title) {
441+ this.title = title;
442+ }
443+
430444 public Date getReleaseDate() {
431445 return releaseDate;
432446 }
433447
434- public int getEpisodeId( ) {
435- return episodeId ;
448+ public void setReleaseDate(Date releaseDate ) {
449+ this.releaseDate = releaseDate ;
436450 }
437451
438- public String getProducer () {
439- return producer ;
452+ public int getEpisode_id () {
453+ return episode_id ;
440454 }
441455
442- public String getDirector( ) {
443- return director ;
456+ public void setEpisode_id(int episode_id ) {
457+ this.episode_id = episode_id ;
444458 }
445459
446460 public String getOpening_crawl() {
447461 return opening_crawl;
448462 }
463+
464+ public void setOpening_crawl(String opening_crawl) {
465+ this.opening_crawl = opening_crawl;
466+ }
467+
468+ public String getDirector() {
469+ return director;
470+ }
471+
472+ public void setDirector(String director) {
473+ this.director = director;
474+ }
475+
476+ public String getProducer() {
477+ return producer;
478+ }
479+
480+ public void setProducer(String producer) {
481+ this.producer = producer;
482+ }
449483}</ code > </ pre >
450484</ div >
451485</ div >
@@ -464,41 +498,35 @@ <h2 id="_change_movieresource_to_use_swapiservice"><a class="anchor" href="#_cha
464498< div class ="content ">
465499< pre class ="highlightjs highlight "> < code class ="language-java hljs " data-lang ="java "> package com.redhat.developers;
466500
467- import java.util.List;
468- import java.util.stream.Collectors;
469-
470- import org.eclipse.microprofile.rest.client.inject.RestClient;
471-
472- import jakarta.inject.Inject;
473501import jakarta.transaction.Transactional;
474- import jakarta.ws.rs.Consumes;
475- import jakarta.ws.rs.GET;
476- import jakarta.ws.rs.POST;
477- import jakarta.ws.rs.Path;
478- import jakarta.ws.rs.Produces;
479- import jakarta.ws.rs.QueryParam;
502+ import jakarta.ws.rs.*;
480503import jakarta.ws.rs.core.MediaType;
481504import jakarta.ws.rs.core.Response;
482- import jakarta.ws.rs.core.Response.Status ;
505+ import org.eclipse.microprofile.rest.client.inject.RestClient ;
483506
484- @Path("/movie")
507+ import java.util.List;
508+ import java.util.stream.Collectors;
509+
510+ @Path("movie")
511+ @Produces(MediaType.APPLICATION_JSON)
485512public class MovieResource {
486513
487514 @RestClient
488- @Inject
489515 SwapiService swapiService;
490516
491517 @GET
492- @Produces(MediaType.APPLICATION_JSON)
493- public List<MovieDTO> movies(@QueryParam("year") String year) {
518+ public List<MovieDTO> getMovie(@QueryParam("year") String year) {
519+
494520 if (year != null) {
495- return Movie.findByYear(Integer.parseInt(year)).stream()
496- .map(movie -> MovieDTO.of(movie, swapiService.getMovieByTitle(movie.title)))
497- .collect(Collectors.toList());
521+ return Movie.<Movie>findByYear(Integer.parseInt(year)).stream()
522+ .map(movie -> MovieDTO.of(movie, swapiService.getFilmById(String.valueOf(movie.id))))
523+ .collect(Collectors.toList());
524+ } else{
525+ return Movie.<Movie>listAll().stream()
526+ .map(movie -> MovieDTO.of(movie, swapiService.getFilmById(String.valueOf(movie.id))))
527+ .collect(Collectors.toList());
498528 }
499- return Movie.<Movie>listAll().stream()
500- .map(movie -> MovieDTO.of(movie, swapiService.getMovieByTitle(movie.title)))
501- .collect(Collectors.toList());
529+
502530 }
503531
504532 @Transactional
@@ -508,7 +536,7 @@ <h2 id="_change_movieresource_to_use_swapiservice"><a class="anchor" href="#_cha
508536 public Response newMovie(Movie movie) {
509537 movie.id = null;
510538 movie.persist();
511- return Response.status(Status.CREATED).entity(movie).build();
539+ return Response.status(Response. Status.CREATED).entity(movie).build();
512540 }
513541}</ code > </ pre >
514542</ div >
0 commit comments