package Ġnh k . service Ċ Ċ import Ġcom . fasterxml . jackson . core . type . Type Reference Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . fasterxml . jackson . databind . Property Naming Str ategies Ċ import Ġcom . fasterxml . jackson . datatype . js r 3 1 0 . Java Time Module Ċ import Ġcom . fasterxml . jackson . datatype . js r 3 1 0 . de ser . LocalDateTime Deserializer Ċ import Ġnh k . Constants Ċ import Ġnh k . dto . Top News Dto Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Request Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . format . DateTime Formatter Ċ Ċ @ Service Ċ class ĠNews Fetcher Ġ{ ĊĠĠĠ Ġfun Ġget Top News (): ĠList < Top News Dto > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġok HttpClient Ġ= ĠOk HttpClient () ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. url ( Constants . TOP _ NE WS _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġok HttpClient . new Call ( request ). execute () ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġresponse . body ?. string () ĊĊĠĠĠĠĠĠĠ Ġjson ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjava Time Module Ġ= ĠJava Time Module () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocal DateTime Deserializer Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime Deserializer ( DateTime Formatter . of Pattern ( Constants . N HK _ NE WS _ E ASY _ DATE _ FORMAT )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Time Module . add Deserializer ( LocalDateTime :: class . java , Ġlocal DateTime Deserializer ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠobjectMapper Ġ= ĠObjectMapper () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠobjectMapper . property Naming Strategy Ġ= ĠProperty Naming Str ategies . S NA KE _ CASE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠobjectMapper . register Module ( java Time Module ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠobjectMapper . readValue ( it , Ġobject Ġ: ĠType Reference < List < Top News Dto >>() Ġ{}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġempty List () ĊĠĠĠ Ġ} Ċ }