package Ġcom . ban to lo me us . repository Ċ Ċ import Ġcom . ban to lo me us . date . date Format Ċ import Ġcom . ban to lo me us . dto . Challenge DTO Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġorg . springframework . stereotype . Repository Ċ import Ġjava . io . File Ċ Ċ const Ġval ĠCH ALL EN GE _ FILE Ġ= Ġ" challenge . json " Ċ Ċ @ Repository Ċ class ĠChallenge Repository ( private Ġval ĠfileName : ĠString Ġ= ĠCH ALL EN GE _ FILE ) Ġ{ ĊĠĠĠ Ġprivate Ġval ĠobjectMapper Ġ= ĠObjectMapper () ĊĊĠĠĠ Ġfun Ġsave OrUpdate Challenge Data ( challenge DTO : ĠChallenge DTO ?): ĠChallenge DTO Ġ{ ĊĠĠĠĠĠĠĠ ĠobjectMapper . writeValue ( File ( fileName ), Ġchallenge DTO ) ĊĠĠĠĠĠĠĠ Ġreturn ĠobjectMapper . readValue ( File ( fileName ), ĠChallenge DTO :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Challenge (): ĠChallenge DTO Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠobjectMapper . readValue ( File ( fileName ), ĠChallenge DTO :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChallenge DTO () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget StartTime (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdateFormat . parse ( object Mapper . readValue ( File ( fileName ), ĠChallenge DTO :: class . java ). date Started ). time ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ