##### Coverage Report - com.ctrip.apollo.adminservice.controller.ClusterController

Classes in this File | Line Coverage | Branch Coverage | Complexity
ClusterController |
18% | 4/22
16% | 1/6
| 2.0;2

1 |  |
     package com.ctrip.apollo.adminservice.controller;
2 |  |
3 |  |
     import java.util.List;
4 |  |
5 |  |
     import org.springframework.beans.factory.annotation.Autowired;
6 |  |
     import org.springframework.security.core.userdetails.UserDetails;
7 |  |
     import org.springframework.web.bind.annotation.PathVariable;
8 |  |
     import org.springframework.web.bind.annotation.RequestBody;
9 |  |
     import org.springframework.web.bind.annotation.RequestMapping;
10 |  |
     import org.springframework.web.bind.annotation.RequestMethod;
11 |  |
     import org.springframework.web.bind.annotation.RestController;
12 |  |
13 |  |
     import com.ctrip.apollo.biz.entity.Cluster;
14 |  |
     import com.ctrip.apollo.biz.service.ClusterService;
15 |  |
     import com.ctrip.apollo.common.auth.ActiveUser;
16 |  |
     import com.ctrip.apollo.common.utils.BeanUtils;
17 |  |
     import com.ctrip.apollo.core.dto.ClusterDTO;
18 |  |
     import com.ctrip.apollo.core.exception.NotFoundException;
19 |  |
20 |  |
     @RestController
21 | 1 |
     public class ClusterController {
22 |  |
23 |  |
       @Autowired
24 |  |
       private ClusterService clusterService;
25 |  |
26 |  |
       @RequestMapping(path = "/apps/{appId}/clusters", method = RequestMethod.POST)
27 |  |
       public ClusterDTO createOrUpdate(@PathVariable("appId") String appId, @RequestBody ClusterDTO dto,
28 |  |
           @ActiveUser UserDetails user) {
29 | 0 |
         Cluster entity = BeanUtils.transfrom(Cluster.class, dto);
30 | 0 |
         Cluster managedEntity = clusterService.findOne(appId, entity.getName());
31 | 0 |
         if (managedEntity != null) {
32 | 0 |
           managedEntity.setDataChangeLastModifiedBy(user.getUsername());
33 | 0 |
           BeanUtils.copyEntityProperties(entity, managedEntity);
34 | 0 |
           entity = clusterService.update(managedEntity);
35 |  |
         } else {
36 | 0 |
           entity.setDataChangeCreatedBy(user.getUsername());
37 | 0 |
           entity = clusterService.save(entity);
38 |  |
         }
39 |  |
40 | 0 |
         dto = BeanUtils.transfrom(ClusterDTO.class, entity);
41 | 0 |
         return dto;
42 |  |
       }
43 |  |
44 |  |
       @RequestMapping(path = "/apps/{appId}/clusters/{clusterName}", method = RequestMethod.DELETE)
45 |  |
       public void delete(@PathVariable("appId") String appId,
46 |  |
           @PathVariable("clusterName") String clusterName, @ActiveUser UserDetails user) {
47 | 0 |
         Cluster entity = clusterService.findOne(appId, clusterName);
48 | 0 |
         if (entity == null)
49 | 0 |
           throw new NotFoundException("cluster not found for clusterName " + clusterName);
50 | 0 |
         clusterService.delete(entity.getId(), user.getUsername());
51 | 0 |
       }
52 |  |
53 |  |
       @RequestMapping("/apps/{appId}/clusters")
54 |  |
       public List<ClusterDTO> find(@PathVariable("appId") String appId) {
55 | 0 |
         List<Cluster> clusters = clusterService.findClusters(appId);
56 | 0 |
         return BeanUtils.batchTransform(ClusterDTO.class, clusters);
57 |  |
       }
58 |  |
59 |  |
       @RequestMapping("/apps/{appId}/clusters/{clusterName}")
60 |  |
       public ClusterDTO get(@PathVariable("appId") String appId,
61 |  |
           @PathVariable("clusterName") String clusterName) {
62 | 4 |
         Cluster cluster = clusterService.findOne(appId, clusterName);
63 | 4 |
         if (cluster == null) throw new NotFoundException("cluster not found for name " + clusterName);
64 | 4 |
         return BeanUtils.transfrom(ClusterDTO.class, cluster);
65 |  |
       }
66 |  |
67 |  |
       @RequestMapping("/apps/{appId}/cluster/{clusterName}/unique")
68 |  |
       public boolean isAppIdUnique(@PathVariable("appId") String appId,
69 |  |
           @PathVariable("clusterName") String clusterName) {
70 | 0 |
         return clusterService.isClusterNameUnique(appId, clusterName);
71 |  |
       }
72 |  |
     }