package com.fdkk.bim.client; import com.dtflys.forest.annotation.*; import com.fdkk.bim.bimEntity.vo.*; import com.fdkk.bim.Interceptor.BimFaceInterceptor; import com.fdkk.bim.bimEntity.dto.OfflineDatabagDTO; import com.fdkk.bim.bimEntity.dto.ProjectDTO; import com.fdkk.bim.bimEntity.dto.TranslateDTO; import com.fdkk.bim.bimEntity.vo.*; import com.fdkk.bim.bimEntity.BimResult; import com.fdkk.bim.retryCondition.BimRetryCondition; import java.util.List; /** * @author Xiewj * @date 2022/9/21 */ @BaseRequest( baseURL = "https://api.bimface.com", interceptor = {BimFaceInterceptor.class}) @Retry(maxRetryCount = "1", maxRetryInterval = "10" ,condition = BimRetryCondition.class) public interface BimFaceClient { @Post("/oauth2/token") BimResult getToken(@Header("Authorization") String Authorization); /** * 获取文件状态 */ @Request( url = "/bdfs/data/v1/projects/{projectId}/fileItems/status?fileItemId={fileItemId}", type = "get" ) BimResult getFileStatusInfo(@Var("projectId")String projectId, @Var("fileItemId")String fileItemId); /** * 查询项目 */ @Request( url = "/bdfs/domain/v1/hubs/10000000000020001/projects?name={name}", type = "get" ) BimResult> getProjectInfo(@Var("name")String name); /** * 创建项目 */ @Request( url = "/bdfs/domain/v1/hubs/10000000000020001/projects", type = "post" ) BimResult saveProject(@JSONBody ProjectDTO projectDTO); /** * 发送File类型数据 */ @Request( url = "/bdfs/data/v1/projects/{projectId}/fileItems/sourceUrl?url={url}&parentId={parentId}&name={name}", type = "post", contentType = "application/json" ) BimResult fileItems( @Var("url")String url, @Var("parentId")String parentId, @Var("name")String name, @Var("projectId") String projectId); /** * 发送translate转换文件请求 */ @Request( url = "/translate", type = "put" ) BimResult translate(@JSONBody TranslateDTO translateDTO); /** * 获取translate转换文件的状态 */ @Request( url = "/translate?fileId={fileId}", type = "get" ) BimResult getTranslateInfo(@Var("fileId")String fileId); /** * 通过文件ID创建离线数据包 */ @Request( url = "files/{fileId}/offlineDatabag", type = "put" ) BimResult offlineDatabag(@JSONBody OfflineDatabagDTO offlineDatabagDTO, @Var("fileId")Long fileId); /** * 查询单文件的离线数据包 */ @Request( url = "files/{fileId}/offlineDatabag", type = "get" ) BimResult> getOfflineDatabagInfo(@Var("fileId")String fileId); @Request( url = "data/databag/downloadUrl", type = "get" ) BimResult offlineDatabagDownloadUrl(@Query("fileId") String fileId,@Query("type") String type); }