package Ġcz . mart info re jt . p isk v ork y . server . routing . utils Ċ Ċ import Ġcz . mart info re jt . p isk v ork y . api . model . Error Ċ import Ġcz . mart info re jt . p isk v ork y . server . routing . exception . ApiException Ċ import Ġcz . mart info re jt . p isk v ork y . server . routing . exception . Unauthorized ApiException Ċ import Ġcz . mart info re jt . p isk v ork y . server . security . User Principal Ċ import Ġio . ktor . application .* Ċ import Ġio . ktor . auth .* Ċ import Ġio . ktor . http .* Ċ import Ġio . ktor . response .* Ċ import Ġio . ktor . util . pipeline .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠMartin ĠFore jt Ġon Ġ 2 5 . 1 2 . 2 0 2 0 . Ċ Ġ* Ġme @ mart info re jt . cz Ċ Ġ* Ċ Ġ* Ġ@ author ĠMartin ĠFore jt Ċ Ġ*/ Ċ Ċ suspend Ġfun ĠApplication Call . empty Response ( status : ĠHttpStatusCode Ġ= ĠHttpStatusCode . OK ) Ġ{ ĊĠĠĠ Ġthis . respond ( status , Ġ"") Ċ } Ċ Ċ suspend Ġfun ĠApplication Call . error Response ( cause : ĠThrowable , Ġstatus : ĠHttpStatusCode Ġ= ĠHttpStatusCode . OK ) Ġ{ ĊĠĠĠ Ġif Ġ( cause Ġis ĠApiException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġerror Response ( cause ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġerror Response ( ApiException ( status , Ġcause . message Ġ?: Ġcause . localized Message )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ suspend Ġfun ĠApplication Call . error Response ( cause : ĠApiException ) Ġ{ ĊĠĠĠ Ġthis . respond ( ĊĠĠĠĠĠĠĠ Ġmessage Ġ= ĠError ( cause . http StatusCode . value , Ġcause . message Ġ?: Ġcause . localized Message ), ĊĠĠĠĠĠĠĠ Ġstatus Ġ= Ġcause . http StatusCode ĊĠĠĠ Ġ) Ċ } Ċ Ċ val ĠPipeline Context < *, ĠApplication Call >. currentUser Ġget () Ġ= Ġcall . currentUser () Ċ Ċ fun ĠApplication Call . currentUser () Ġ= Ġprincipal < User Principal >() Ġ?: Ġthrow ĠUnauthorized ApiException ()