package com.iailab.framework.ai.core.model.xinghuo.api;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.digest.HmacAlgorithm;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.iailab.framework.common.util.json.JsonUtils;
import lombok.Builder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.http.HttpStatusCode;
import org.springframework.http.MediaType;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.reactive.function.BodyInserters;
import org.springframework.web.reactive.function.client.ClientResponse;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.function.Predicate;
/**
* 讯飞智能 PPT 生成 API
*
* @author xiaoxin
* @see 智能 PPT 生成 API
*/
@Slf4j
public class XunFeiPptApi {
public static final String BASE_URL = "https://zwapi.xfyun.cn/api/ppt/v2";
private static final String HEADER_APP_ID = "appId";
private static final String HEADER_TIMESTAMP = "timestamp";
private static final String HEADER_SIGNATURE = "signature";
private final WebClient webClient;
private final String appId;
private final String apiSecret;
private final Predicate STATUS_PREDICATE = status -> !status.is2xxSuccessful();
private final Function