Project

General

Profile

Download (3.54 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9

    
10
package eu.etaxonomy.cdm.remote.controller;
11

    
12
import java.io.IOException;
13
import java.util.UUID;
14

    
15
import javax.servlet.http.HttpServletRequest;
16
import javax.servlet.http.HttpServletResponse;
17

    
18
import org.apache.log4j.Logger;
19
import org.springframework.beans.factory.annotation.Autowired;
20
import org.springframework.stereotype.Controller;
21
import org.springframework.web.bind.annotation.PathVariable;
22
import org.springframework.web.bind.annotation.RequestMapping;
23
import org.springframework.web.bind.annotation.RequestMethod;
24
import org.springframework.web.bind.annotation.RequestParam;
25

    
26
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
27
import eu.etaxonomy.cdm.api.service.pager.Pager;
28
import eu.etaxonomy.cdm.compare.taxon.TaxonNodeSortMode;
29
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
30
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
31
import eu.etaxonomy.cdm.remote.controller.util.PagerParameters;
32
import io.swagger.annotations.Api;
33

    
34
/**
35
 * @author a.kohlbecker
36
 * @since Jun 13, 2016
37
 */
38
@Controller
39
@Api("taxonNode")
40
@RequestMapping(value = {"/taxonNode/{uuid}"})
41
public class TaxonNodeController extends AbstractController<TaxonNode, ITaxonNodeService> {
42

    
43
    public static final Logger logger = Logger.getLogger(TaxonNodeController.class);
44

    
45
    @Override
46
    @Autowired
47
    public void setService(ITaxonNodeService service) {
48
        this.service = service;
49
    }
50

    
51
    @RequestMapping(
52
            value = {"parent"},
53
            method = RequestMethod.GET)
54
    public TaxonNodeDto doGetParent(
55
            @PathVariable("uuid") UUID uuid,
56
            HttpServletRequest request,
57
            HttpServletResponse response
58
            ) {
59

    
60
        logger.info("doGetParent() " + requestPathAndQuery(request));
61
        return service.parentDto(uuid);
62
    }
63

    
64
    @RequestMapping(
65
            method = RequestMethod.GET)
66
    public TaxonNodeDto doGet(
67
            @PathVariable("uuid") UUID uuid,
68
            HttpServletRequest request,
69
            HttpServletResponse response
70
            ) throws IOException {
71

    
72
        logger.info("doGet() " + requestPathAndQuery(request));
73
        TaxonNodeDto dto = service.dto(uuid);
74
        if(dto == null){
75
            HttpStatusMessage.UUID_NOT_FOUND.send(response);
76
        }
77
        return dto;
78
    }
79

    
80
    @RequestMapping(
81
            value = {"childNodes"},
82
            method = RequestMethod.GET)
83
    public Pager<TaxonNodeDto> doPageChildNodes(
84
            @PathVariable("uuid") UUID uuid,
85
            @RequestParam(value = "pageIndex", required = false) Integer pageIndex,
86
            @RequestParam(value = "pageSize", required = false) Integer pageSize,
87
            @RequestParam(value="sortMode", defaultValue = ClassificationController.DEFAULT_TAXONNODEDTO_SORT_MODE) TaxonNodeSortMode sortMode,
88
            @RequestParam(value="doSynonyms", defaultValue = "false") Boolean doSynonyms,
89
            HttpServletResponse response
90
            ) throws IOException {
91

    
92
        boolean includeUnpublished = NO_UNPUBLISHED;  //for now we do not allow any remote service to publish unpublished data
93

    
94
        PagerParameters pagerParameters = new PagerParameters(pageSize, pageIndex);
95
        pagerParameters.normalizeAndValidate(response);
96

    
97
        return service.pageChildNodesDTOs(uuid, false, includeUnpublished, doSynonyms, sortMode, pagerParameters.getPageSize(), pagerParameters.getPageIndex());
98
    }
99
}
(60-60/76)