package com.qmth.ops.api.controller.admin; import com.qmth.boot.api.annotation.Aac; import com.qmth.boot.api.annotation.BOOL; import com.qmth.ops.api.constants.OpsApiConstants; import com.qmth.ops.api.dto.CodeNameBean; import com.qmth.ops.api.security.AdminSession; import com.qmth.ops.biz.domain.Env; import com.qmth.ops.biz.domain.EnvType; import com.qmth.ops.biz.domain.Role; import com.qmth.ops.biz.service.AppService; import com.qmth.ops.biz.service.EnvService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.Arrays; import java.util.List; @RestController @RequestMapping(OpsApiConstants.ADMIN_URI_PREFIX + "/env") public class EnvController { @Resource private AppService appService; @Resource private EnvService envService; @RequestMapping("/types") @Aac(auth = BOOL.FALSE) public Object types() { return Arrays.stream(EnvType.values()).map(item -> new CodeNameBean(item.getCode(), item.getName())).toArray(); } @PostMapping("/insert") public Env insert(@RequestAttribute AdminSession accessEntity, Env env) { accessEntity.validateRole(Role.ADMIN, Role.OPS); return envService.insert(env); } @PostMapping("/update") public Env update(@RequestAttribute AdminSession accessEntity, Env env) { accessEntity.validateRole(Role.ADMIN, Role.OPS); return envService.update(env); } @PostMapping("/list") public List list(@RequestAttribute AdminSession accessEntity, Long appId) { accessEntity.validateApp(appService.getById(appId)); return envService.list(appId); } }