feat(测试计划): 补充接口分享密码校验接口
--story=1016179 --user=宋昌昌 【接口测试】接口文档 https://www.tapd.cn/55049933/s/1589978
This commit is contained in:
parent
387e1ef46e
commit
2bc3c7161b
|
@ -4,6 +4,7 @@ import com.github.pagehelper.Page;
|
|||
import com.github.pagehelper.PageHelper;
|
||||
import io.metersphere.api.domain.ApiDocShare;
|
||||
import io.metersphere.api.dto.definition.ApiDocShareDTO;
|
||||
import io.metersphere.api.dto.definition.request.ApiDocShareCheckRequest;
|
||||
import io.metersphere.api.dto.definition.request.ApiDocShareEditRequest;
|
||||
import io.metersphere.api.dto.definition.request.ApiDocSharePageRequest;
|
||||
import io.metersphere.api.service.definition.ApiDocShareLogService;
|
||||
|
@ -78,4 +79,9 @@ public class ApiDocShareController {
|
|||
apiDocShareService.delete(id);
|
||||
}
|
||||
|
||||
@PostMapping("/check")
|
||||
@Operation(summary = "接口测试-接口管理-校验分享密码")
|
||||
public Boolean delete(@Validated @RequestBody ApiDocShareCheckRequest request) {
|
||||
return apiDocShareService.check(request);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
package io.metersphere.api.dto.definition.request;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author song-cc-rock
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class ApiDocShareCheckRequest implements Serializable {
|
||||
|
||||
@Schema(description = "分享ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String docShareId;
|
||||
@Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String password;
|
||||
}
|
|
@ -10,6 +10,10 @@ import lombok.Data;
|
|||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author song-cc-rock
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class ApiDocShareEditRequest implements Serializable {
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package io.metersphere.api.service.definition;
|
|||
|
||||
import io.metersphere.api.domain.ApiDocShare;
|
||||
import io.metersphere.api.dto.definition.ApiDocShareDTO;
|
||||
import io.metersphere.api.dto.definition.request.ApiDocShareCheckRequest;
|
||||
import io.metersphere.api.dto.definition.request.ApiDocShareEditRequest;
|
||||
import io.metersphere.api.dto.definition.request.ApiDocSharePageRequest;
|
||||
import io.metersphere.api.mapper.ApiDocShareMapper;
|
||||
|
@ -19,6 +20,10 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author song-cc-rock
|
||||
*/
|
||||
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class ApiDocShareService {
|
||||
|
@ -32,11 +37,22 @@ public class ApiDocShareService {
|
|||
|
||||
public static final String RANGE_ALL = "ALL";
|
||||
|
||||
/**
|
||||
* 分页获取分享列表
|
||||
* @param request 分页请求参数
|
||||
* @return 分享列表
|
||||
*/
|
||||
public List<ApiDocShareDTO> list(ApiDocSharePageRequest request) {
|
||||
List<ApiDocShareDTO> list = extApiDocShareMapper.list(request);
|
||||
return buildApiShareExtra(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建分享
|
||||
* @param request 请求参数
|
||||
* @param currentUser 当前用户
|
||||
* @return 分享
|
||||
*/
|
||||
public ApiDocShare create(ApiDocShareEditRequest request, String currentUser) {
|
||||
ApiDocShare docShare = new ApiDocShare();
|
||||
BeanUtils.copyBean(docShare, request);
|
||||
|
@ -47,6 +63,11 @@ public class ApiDocShareService {
|
|||
return docShare;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新分享
|
||||
* @param request 请求参数
|
||||
* @return 分享
|
||||
*/
|
||||
public ApiDocShare update(ApiDocShareEditRequest request) {
|
||||
checkExit(request.getId());
|
||||
ApiDocShare docShare = new ApiDocShare();
|
||||
|
@ -55,11 +76,29 @@ public class ApiDocShareService {
|
|||
return docShare;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除分享
|
||||
* @param id 分享ID
|
||||
*/
|
||||
public void delete(String id) {
|
||||
checkExit(id);
|
||||
apiDocShareMapper.deleteByPrimaryKey(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查分享密码
|
||||
* @param request 校验请求参数
|
||||
* @return 是否正确
|
||||
*/
|
||||
public Boolean check(ApiDocShareCheckRequest request) {
|
||||
checkExit(request.getDocShareId());
|
||||
ApiDocShare docShare = apiDocShareMapper.selectByPrimaryKey(request.getDocShareId());
|
||||
if (StringUtils.isBlank(docShare.getPassword())) {
|
||||
return true;
|
||||
}
|
||||
return StringUtils.equals(docShare.getPassword(), request.getPassword());
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建分享额外信息
|
||||
* @param docShares 分享列表
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
package io.metersphere.api.controller;
|
||||
|
||||
import io.metersphere.api.domain.ApiDocShare;
|
||||
import io.metersphere.api.dto.definition.request.ApiDocShareCheckRequest;
|
||||
import io.metersphere.api.dto.definition.request.ApiDocShareEditRequest;
|
||||
import io.metersphere.api.dto.definition.request.ApiDocSharePageRequest;
|
||||
import io.metersphere.sdk.util.JSON;
|
||||
import io.metersphere.system.base.BaseTest;
|
||||
import io.metersphere.system.controller.handler.ResultHolder;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.junit.jupiter.api.MethodOrderer;
|
||||
import org.junit.jupiter.api.Order;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
@ -28,6 +30,7 @@ public class ApiDocShareControllerTests extends BaseTest {
|
|||
private final static String UPDATE = BASE_PATH + "update";
|
||||
private final static String DELETE = BASE_PATH + "delete/";
|
||||
private final static String PAGE = BASE_PATH + "page";
|
||||
private final static String CHECK = BASE_PATH + "check";
|
||||
|
||||
@Order(1)
|
||||
@Test
|
||||
|
@ -37,18 +40,26 @@ public class ApiDocShareControllerTests extends BaseTest {
|
|||
request.setProjectId(DEFAULT_PROJECT_ID);
|
||||
request.setApiRange("ALL");
|
||||
request.setIsPublic(false);
|
||||
request.setPassword("123456");
|
||||
request.setAllowExport(false);
|
||||
MvcResult mvcResult = this.requestPostWithOk(ADD, request).andReturn();
|
||||
String returnData = mvcResult.getResponse().getContentAsString(StandardCharsets.UTF_8);
|
||||
ResultHolder resultHolder = JSON.parseObject(returnData, ResultHolder.class);
|
||||
ApiDocShare docShare = JSON.parseObject(JSON.toJSONString(resultHolder.getData()), ApiDocShare.class);
|
||||
// check pwd
|
||||
ApiDocShareCheckRequest checkRequest = new ApiDocShareCheckRequest();
|
||||
checkRequest.setDocShareId(docShare.getId());
|
||||
checkRequest.setPassword("123456");
|
||||
this.requestPostWithOk(CHECK, checkRequest);
|
||||
request.setId(docShare.getId());
|
||||
request.setName("share-2");
|
||||
request.setPassword(StringUtils.EMPTY);
|
||||
request.setApiRange("MODULE");
|
||||
request.setRangeMatchVal("module-1");
|
||||
request.setInvalidTime(1);
|
||||
request.setInvalidUnit("HOUR");
|
||||
this.requestPostWithOk(UPDATE, request);
|
||||
this.requestPostWithOk(CHECK, checkRequest);
|
||||
this.requestGetWithOk(DELETE + docShare.getId());
|
||||
// 不存在的ID
|
||||
this.requestGet(DELETE + "not-exist-id").andExpect(status().is5xxServerError());
|
||||
|
|
Loading…
Reference in New Issue