package org.springblade.openapi.wps.api;

import org.springblade.openapi.wps.pojo.dto.Api4WpsFileInfoDTO;
import org.springblade.openapi.wps.pojo.vo.Api4WpsFileInfoVO;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.multipart.MultipartFile;

/**
 *  给wps回调的api
 * @author bfhuange
 * @date 2024/10/30
 */
public interface IApi4Wps {
    String API_PREFIX = "/openApi/wps";
    String VERSION = "/v1";
    String FILE_INFO = API_PREFIX + VERSION + "/3rd/file/info";
    String FILE_SAVE = API_PREFIX + VERSION + "/3rd/file/save";

    /**
     * wps回调查询文件信息
     *
     * @param fileId 文件id，必填
     * @param token  非必填
     * @param param  在获取预览链接时按需求传入的所有自定义参数
     * @return
     */
    @GetMapping(FILE_INFO)
    Api4WpsFileInfoVO getFileInfo(@RequestHeader("X-Weboffice-File-Id") String fileId,
                                     @RequestHeader(value = "X-Wps-Weboffice-Token", required = false) String token,
                                     @SpringQueryMap Api4WpsFileInfoDTO param);

    /**
     * wps回调-上传文件新版本
     *
     * @param fileId 文件id，必填
     * @param token  非必填
     * @param param  在获取预览链接时按需求传入的所有自定义参数
     * @return
     */
    @PostMapping(FILE_SAVE)
    Api4WpsFileInfoVO getFileSave(@RequestHeader("X-Weboffice-File-Id") String fileId,
                              @RequestHeader(value = "X-Weboffice-Save-Type") String saveType,
                              @RequestHeader(value = "X-Wps-Weboffice-Token", required = false) String token,
                              @RequestPart("file") MultipartFile file,
                              @SpringQueryMap Api4WpsFileInfoDTO param);
}
