1 package net.pterodactylus.rhynodge.filters
3 import com.fasterxml.jackson.core.JsonParseException
4 import com.fasterxml.jackson.databind.ObjectMapper
5 import net.pterodactylus.rhynodge.Filter
6 import net.pterodactylus.rhynodge.State
7 import net.pterodactylus.rhynodge.states.FailedState
8 import net.pterodactylus.rhynodge.states.HttpState
9 import net.pterodactylus.rhynodge.states.JsonState
11 class JsonFilter : Filter {
13 override fun filter(state: State): State {
14 if (state is FailedState) {
17 val httpState = state as? HttpState ?: throw IllegalArgumentException("state must be HttpState")
19 objectMapper.readTree(httpState.rawResult())
20 } catch (jsonParseException: JsonParseException) {
21 return FailedState(jsonParseException)
23 return JsonState(jsonNode)
28 private val objectMapper = ObjectMapper()