@@ -26,21 +26,23 @@ import com.icerockdev.webserver.log.JsonSecret
2626import com.icerockdev.webserver.log.LoggingConfiguration
2727import com.icerockdev.webserver.log.jsonLogger
2828import com.icerockdev.webserver.tools.receiveRequest
29- import io.ktor.application.Application
30- import io.ktor.application.ApplicationCall
31- import io.ktor.application.call
32- import io.ktor.application.install
33- import io.ktor.features.CORS
34- import io.ktor.features.CallId
35- import io.ktor.features.ContentNegotiation
36- import io.ktor.features.DefaultHeaders
37- import io.ktor.features.StatusPages
38- import io.ktor.jackson.jackson
39- import io.ktor.response.respond
40- import io.ktor.routing.get
41- import io.ktor.routing.post
42- import io.ktor.routing.put
43- import io.ktor.routing.routing
29+ import io.ktor.http.HttpStatusCode
30+ import io.ktor.serialization.jackson.jackson
31+ import io.ktor.server.application.Application
32+ import io.ktor.server.application.ApplicationCall
33+ import io.ktor.server.application.call
34+ import io.ktor.server.application.install
35+ import io.ktor.server.plugins.callid.CallId
36+ import io.ktor.server.plugins.contentnegotiation.ContentNegotiation
37+ import io.ktor.server.plugins.cors.routing.CORS
38+ import io.ktor.server.plugins.defaultheaders.DefaultHeaders
39+ import io.ktor.server.plugins.statuspages.StatusPages
40+ import io.ktor.server.response.respond
41+ import io.ktor.server.routing.Routing
42+ import io.ktor.server.routing.get
43+ import io.ktor.server.routing.post
44+ import io.ktor.server.routing.put
45+ import io.ktor.server.routing.routing
4446import org.slf4j.LoggerFactory
4547
4648fun Application.main () {
@@ -89,53 +91,57 @@ fun Application.main() {
8991 }
9092
9193 routing {
92- get( " /object " ) {
93- call.respond( TestResponse ( 200 , " some message " ))
94- }
94+ setupSampleRouting()
95+ }
96+ }
9597
96- jsonLogger {
97- get(" /" ) {
98- call.respond( " !!! " )
99- }
98+ private fun Routing. setupSampleRouting () {
99+ get(" /object " ) {
100+ call.respond( TestResponse ( HttpStatusCode . OK .value, " some message without JsonLogger plugin " ) )
101+ }
100102
101- post(" /object" ) {
102- val request = call.receiveRequest<TestRequest >()
103- if (! request.validate()) {
104- throw ValidationException (request.getErrorList())
105- }
106- call.respond(TestResponse2 (200 , request.email, request.password))
107- }
103+ jsonLogger {
104+ get(" /" ) {
105+ call.respond(" !!!" )
106+ }
108107
109- put(" /object" ) {
110- val request = call.receiveRequest<TestRequest >()
111- if (! request.validate()) {
112- throw ValidationException (request.getErrorList())
113- }
114- call.respond(TestResponse2 (200 , request.email, request.password))
108+ post(" /object" ) {
109+ val request = call.receiveRequest<TestRequest >()
110+ if (! request.validate()) {
111+ throw ValidationException (request.getErrorList())
115112 }
113+ call.respond(TestResponse2 (HttpStatusCode .OK .value, request.email, request.password))
114+ }
116115
117- get(" /custom-object" ) {
118- call.respond(CustomResponse (200 , " Custom message" , listOf (1 , 2 , 3 )))
116+ put(" /object" ) {
117+ val request = call.receiveRequest<TestRequest >()
118+ if (! request.validate()) {
119+ throw ValidationException (request.getErrorList())
119120 }
121+ call.respond(TestResponse2 (HttpStatusCode .OK .value, request.email, request.password))
122+ }
120123
121- get(" /exception " ) {
122- throw RuntimeException ( " Some exception " )
123- }
124+ get(" /custom-object " ) {
125+ call.respond( CustomResponse ( HttpStatusCode . OK .value, " Custom message " , listOf ( 1 , 2 , 3 )) )
126+ }
124127
125- get(" /handled " ) {
126- throw ServerErrorException (" Some handled exception" )
127- }
128+ get(" /exception " ) {
129+ throw UnsupportedOperationException (" Some exception" )
130+ }
128131
129- get(" /get" ) {
130- val params = call.receiveQuery<QueryValues >()
131- call.respond(object : AbstractResponse (200 , params.toString()) {})
132- }
132+ get(" /handled" ) {
133+ throw ServerErrorException (" Some handled exception" )
133134 }
134135
135- get(" /handled2" ) {
136- throw ForbiddenException (" Some handled exception" )
136+ get(" /get" ) {
137+ val params = call.receiveQuery<QueryValues >()
138+ call.respond(object : AbstractResponse (HttpStatusCode .OK .value, params.toString()) {})
137139 }
138140 }
141+
142+ get(" /handled2" ) {
143+ throw ForbiddenException (" Some handled exception" )
144+ }
139145}
140146
141147class TestRequest (@field:StrictEmail val email : String , @JsonSecret val password : String ) : Request()
0 commit comments