this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

:recycle: provider parsing data

+17 -16
+17 -16
src/integrations/provider.gleam
··· 59 59 Ok(response.body) 60 60 } 61 61 62 + fn parse_healthcheck_respose(body: String) -> Result(HealthcheckResponse, json.DecodeError) { 63 + let parser = { 64 + use failing <- decode.field("failing", decode.bool) 65 + use min_response_time <- decode.field("minResponseTime", decode.int) 66 + 67 + decode.success(HealthcheckResponse( 68 + failing: failing, 69 + min_response_time: min_response_time, 70 + )) 71 + } 72 + 73 + json.parse(body, parser) 74 + } 75 + 62 76 pub fn health_check( 63 77 provider: ProviderConfig, 64 78 ) -> Result(HealthcheckResponse, httpc.HttpError) { 65 79 let assert Ok(request) = 66 80 request.to(provider.url <> "/payments/service-health") 67 81 68 - case health_check_req(request) { 69 - Error(e) -> Error(e) 70 - Ok(body) -> { 71 - let parser = { 72 - use failing <- decode.field("failing", decode.bool) 73 - use min_response_time <- decode.field("minResponseTime", decode.int) 82 + use body <- result.try(health_check_req(request)) 74 83 75 - decode.success(HealthcheckResponse( 76 - failing: failing, 77 - min_response_time: min_response_time, 78 - )) 79 - } 80 - 81 - let assert Ok(data) = json.parse(body, parser) 82 - Ok(data) 83 - } 84 - } 84 + let assert Ok(data) = parse_healthcheck_respose(body) 85 + Ok(data) 85 86 }