package com.pingcap.community.blogserver.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

@Configuration
public class RestHttpClientConfiguration {

  // Set the timeout for sending Webhook event，avoid waiting for a long time to cause queue congestion.
  private static final int HTTP_CONNECT_TIMEOUT = 5000;
  private static final int HTTP_READ_TIMEOUT = 5000;

  @Bean
  public RestTemplate restTemplate() {
    return new RestTemplate(getClientHttpRequestFactory());
  }

  public static ClientHttpRequestFactory getClientHttpRequestFactory() {
    HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory();
    clientHttpRequestFactory.setConnectTimeout(HTTP_CONNECT_TIMEOUT);
    clientHttpRequestFactory.setReadTimeout(HTTP_READ_TIMEOUT);
    return clientHttpRequestFactory;
  }

}
