package Ġpl . m ich alk ow ol . web . errors Ċ Ċ import Ġcom . software berg . Json Mapper Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġpl . m ich alk ow ol . web . Controller Ċ import Ġspark . Spark . exception Ċ Ċ class ĠErrors Controller ( private Ġval Ġjson Mapper : ĠJson Mapper ) Ġ: ĠController Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLoggerFactory . getLogger ( Errors Controller :: class . java ) ĊĊĠĠĠ Ġoverride Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġexception ( NotFoundException :: class . java ) Ġ{ Ġex , Ġrequest , Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info ( request . url (), Ġex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . type (" application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnot Found Ġ= ĠNotFound ( ex . message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . status ( not Found . status ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body ( json Mapper . write ( not Found )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġexception ( BadRequest Exception :: class . java ) Ġ{ Ġex , Ġrequest , Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info ( request . url (), Ġex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . type (" application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbad Request Ġ= ĠBadRequest ( ex . message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . status ( bad Request . status ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body ( json Mapper . write ( bad Request )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġexception ( Exception :: class . java ) Ġ{ Ġex , Ġrequest , Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error ( request . url (), Ġex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . type (" application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinternal ServerError Ġ= ĠInternal ServerError . create ( ex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . status ( internal ServerError . status ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body ( json Mapper . write ( internal ServerError )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ