package util

import (
	"encoding/json"
	. "escalation/jiraAWS/model"
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
	"time"
)

var client *http.Client

func GetHttpClient() *http.Client {
	if client == nil {
		client = &http.Client{
			Timeout: 600 * time.Second,
		}
	}
	return client
}

// help functions to receive HTTP response.
func SendAndHandleHTTPRes[T HttpRes](req *http.Request, struct_res *T) {
	client := http.Client{
		Timeout: 600 * time.Second,
	}
	res, err := client.Do(req)
	if err != nil {
		fmt.Println(err)
	}

	defer res.Body.Close() //修改信息
	res_body, _ := ioutil.ReadAll(res.Body)

	err2 := json.Unmarshal(res_body, struct_res)
	if err2 != nil {
		log.Println("error:", err2)
		log.Println("response body:", string(res_body))
	}
}
