package cn.timer.api.utils.baidu;

import cn.timer.api.dto.baidu.BaiduTicResumeDto;
import com.google.gson.Gson;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author wuqingjun
 * @email 284718418@qq.com
 * @date 2022/3/29
 */
@Component
public class BaiduTicUtil {

    @Value("${config-8timer.baidu-tic.appid}")
    private String appid;

    @Value("${config-8timer.baidu-tic.secret}")
    private String secret;
    /**
     * 获取百度token
     * @return
     */
    public String getBaiduAccessToken(){
        StringBuffer url = new StringBuffer("https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=");
        url = url.append(appid).append("&client_secret=").append(secret);
        ResponseEntity<String> response = new RestTemplate().exchange(url.toString(), HttpMethod.GET, null, String.class);

        return new Gson().fromJson(response.getBody(), HashMap.class).get("access_token").toString();
    }

    public ResponseEntity<String> getResumeByCvParser(BaiduTicResumeDto baiduTicResumeDto){
        String url = "https://aip.baidubce.com/rpc/2.0/recruitment/v1/cvparser?access_token="+getBaiduAccessToken();
        Map<String, Object> param = new HashMap<>();
        param.put("resume", baiduTicResumeDto);
        MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
        List<String> list = new ArrayList<>();
        list.add("Content-Type");
        list.add("application/json");
        headers.put("header", list);
        HttpEntity requestEntity = new HttpEntity(param, headers);
        return new RestTemplate().exchange(url, HttpMethod.POST,requestEntity, String.class);
    }

}