Project

General

Profile

1
package eu.dnetlib.uoaadmintools.controllers;
2

    
3
import eu.dnetlib.uoaadmintools.dao.CommunityDAO;
4
import eu.dnetlib.uoaadmintools.dao.PageDAO;
5
import eu.dnetlib.uoaadmintools.entities.Community;
6
import eu.dnetlib.uoaadmintools.entities.Page;
7
import eu.dnetlib.uoaadmintools.entities.PageHelpContent;
8
import eu.dnetlib.uoaadmintools.dao.PageHelpContentDAO;
9
import eu.dnetlib.uoaadmintools.entities.PageHelpContentResponse;
10

    
11
import org.apache.log4j.Logger;
12
import org.springframework.web.bind.annotation.CrossOrigin;
13
import org.springframework.web.bind.annotation.RequestMapping;
14
import org.springframework.web.bind.annotation.RequestMethod;
15
import org.springframework.web.bind.annotation.RequestBody;
16
import org.springframework.web.bind.annotation.PathVariable;
17
import org.springframework.beans.factory.annotation.Autowired;
18
import org.springframework.web.bind.annotation.RequestParam;
19
import org.springframework.web.bind.annotation.RestController;
20

    
21
import java.util.ArrayList;
22
import java.util.List;
23

    
24
@RestController
25
@CrossOrigin(origins = "*")
26
public class PageHelpContentController {
27
    private final Logger log = Logger.getLogger(this.getClass());
28

    
29
    @Autowired
30
    private PageHelpContentDAO pageHelpContentDAO;
31

    
32
    @Autowired
33
    private PageDAO pageDAO;
34

    
35
    @Autowired
36
    private CommunityDAO communityDAO;
37

    
38
    @RequestMapping(value = "/pagehelpcontent", method = RequestMethod.GET)
39
    public List<PageHelpContentResponse> getPageHelpContents(@RequestParam(required=false) String community,
40
                                                             @RequestParam(required=false) String page,
41
                                                             @RequestParam(required=false) String position,
42
                                                             @RequestParam(required=false) String active,
43
                                                             @RequestParam(required=false) String before) {
44
        List<PageHelpContent> pageHelpContents = null;
45

    
46
        Community _community = null;
47
        if(community != null) {
48
            _community = communityDAO.findByPid(community);
49
        }
50
        //pageHelpContents = pageHelpContentDAO.findByCommunityAndPlacementAndIsActiveAndisPriorToOrderByOrderAsc(community, position, Boolean.parseBoolean(active), Boolean.parseBoolean(before));
51

    
52
        if(community != null && position != null && active != null && before != null) {
53
            pageHelpContents = pageHelpContentDAO.findByCommunityAndPlacementAndIsActiveAndIsPriorToOrderByOrderAsc(_community.getId(), position, Boolean.parseBoolean(active), Boolean.parseBoolean(before));
54
        } else if(community != null && position != null && active != null) {
55
            pageHelpContents = pageHelpContentDAO.findByCommunityAndPlacementAndIsActiveOrderByOrderAsc(_community.getId(), position, Boolean.parseBoolean(active));
56
        } else if(community != null && position != null && before != null) {
57
            pageHelpContents = pageHelpContentDAO.findByCommunityAndPlacementAndIsPriorToOrderByOrderAsc(_community.getId(), position, Boolean.parseBoolean(before));
58
        } else if(community != null && active != null && before != null) {
59
            pageHelpContents = pageHelpContentDAO.findByCommunityAndIsActiveAndIsPriorToOrderByPlacementAscOrderAsc(_community.getId(), Boolean.parseBoolean(active), Boolean.parseBoolean(before));
60
        } else if(position != null && active != null && before != null) {
61
            pageHelpContents = pageHelpContentDAO.findByPlacementAndIsActiveAndIsPriorToOrderByOrderAsc(position, Boolean.parseBoolean(active), Boolean.parseBoolean(before));
62
        } else if(community != null && position != null ) {
63
            pageHelpContents = pageHelpContentDAO.findByCommunityAndPlacementOrderByOrderAsc(_community.getId(), position);
64
        } else if(community != null && active != null ) {
65
            pageHelpContents = pageHelpContentDAO.findByCommunityAndIsActiveOrderByPlacementAscOrderAsc(_community.getId(), Boolean.parseBoolean(active));
66
        } else if(community != null && before != null) {
67
            pageHelpContents = pageHelpContentDAO.findByCommunityAndIsPriorToOrderByPlacementAscOrderAsc(_community.getId(), Boolean.parseBoolean(before));
68
        } else if(position != null && active != null) {
69
            pageHelpContents = pageHelpContentDAO.findByPlacementAndIsActiveOrderByOrderAsc(position, Boolean.parseBoolean(active));
70
        } else if(position != null && before != null) {
71
            pageHelpContents = pageHelpContentDAO.findByPlacementAndIsPriorToOrderByOrderAsc(position,  Boolean.parseBoolean(before));
72
        } else if(active != null && before != null) {
73
            pageHelpContents = pageHelpContentDAO.findByIsActiveAndIsPriorToOrderByPlacementAscOrderAsc(Boolean.parseBoolean(active), Boolean.parseBoolean(before));
74
        } else if(community != null) {
75
            pageHelpContents = pageHelpContentDAO.findByCommunityOrderByPlacementAscOrderAsc(_community.getId());
76
        } else if(position != null) {
77
            pageHelpContents = pageHelpContentDAO.findByPlacementOrderByOrderAsc(position);
78
        } else if(active != null) {
79
            pageHelpContents = pageHelpContentDAO.findByIsActiveOrderByPlacementAscOrderAsc(Boolean.parseBoolean(active));
80
        } else if(before != null) {
81
            pageHelpContents = pageHelpContentDAO.findByIsPriorToOrderByPlacementAscOrderAsc(Boolean.parseBoolean(before));
82
        } else {
83
            pageHelpContents = pageHelpContentDAO.findAllByOrderByPlacementAscOrderAsc();
84
        }
85

    
86
        List<PageHelpContentResponse> pageHelpContentResponses = new ArrayList<>();
87
        for (PageHelpContent pageHelpContent : pageHelpContents) {
88
            Page _page = pageDAO.findById(pageHelpContent.getPage());
89
            if(page == null || page.equals(_page.getRoute())) {
90
                PageHelpContentResponse pageHelpContentResponse = new PageHelpContentResponse(pageHelpContent);
91

    
92
                pageHelpContentResponse.setPage(_page);
93
                pageHelpContentResponse.setCommunity(communityDAO.findById(pageHelpContent.getCommunity()));
94
                pageHelpContentResponses.add(pageHelpContentResponse);
95
            }
96
        }
97
        return pageHelpContentResponses;
98
    }
99
/*
100
    @RequestMapping(value = "/pagehelpcontent/community/{id}", method = RequestMethod.GET)
101
    public List<PageHelpContentResponse> getCommunityPageHelpContents(@PathVariable(value = "id") String communityId) {
102
        List<PageHelpContent> pageHelpContents =  pageHelpContentDAO.findByCommunity(communityId);
103
        List<PageHelpContentResponse> pageHelpContentResponses = new ArrayList<>();
104
        for (PageHelpContent pageHelpContent : pageHelpContents) {
105
            PageHelpContentResponse pageHelpContentResponse = new PageHelpContentResponse(pageHelpContent);
106
            pageHelpContentResponse.setPage(pageDAO.findById(pageHelpContent.getPage()));
107
            pageHelpContentResponse.setCommunity(communityDAO.findById(pageHelpContent.getCommunity()));
108
            pageHelpContentResponses.add(pageHelpContentResponse);
109
        }
110
        return pageHelpContentResponses;
111
    }
112
*/
113
    @RequestMapping(value = "/pagehelpcontent", method = RequestMethod.DELETE)
114
    public void deleteAllPageHelpContents() {
115
        pageHelpContentDAO.deleteAll();
116
    }
117

    
118
    @RequestMapping(value = "/pagehelpcontent/save", method = RequestMethod.POST)
119
    public PageHelpContent insertPageHelpContent(@RequestBody PageHelpContent pageHelpContent) {
120
        String communityId = communityDAO.findByPid(pageHelpContent.getCommunity()).getId();
121
        pageHelpContent.setCommunity(communityId);
122
        return pageHelpContentDAO.save(pageHelpContent);
123
    }
124

    
125
    @RequestMapping(value = "/pagehelpcontent/update", method = RequestMethod.POST)
126
    public PageHelpContent updatePageHelpContent(@RequestBody PageHelpContent pageHelpContent) {
127
        return pageHelpContentDAO.save(pageHelpContent);
128
    }
129

    
130
    @RequestMapping(value = "/pagehelpcontent/{id}", method = RequestMethod.GET)
131
    public PageHelpContent getPageHelpContent(@PathVariable(value = "id") String id) {
132
        return pageHelpContentDAO.findById(id);
133
    }
134

    
135
    @RequestMapping(value = "/pagehelpcontent/toggle", method = RequestMethod.POST)
136
    public List<String> togglePageHelpContent(@RequestBody List<String> pageHelpContents, @RequestParam String status) throws Exception {
137
        for (String id: pageHelpContents) {
138
            log.debug("Id of pageHelpContent: "+id);
139
            PageHelpContent pageHelpContent = pageHelpContentDAO.findById(id);
140
            pageHelpContent.setIsActive(Boolean.parseBoolean(status));
141
            pageHelpContentDAO.save(pageHelpContent);
142
        }
143
        return pageHelpContents;
144
    }
145

    
146
    @RequestMapping(value = "/pagehelpcontent/{id}", method = RequestMethod.DELETE)
147
    public void deletePageHelpContent(@PathVariable(value = "id") String id) {
148
        pageHelpContentDAO.delete(id);
149
    }
150

    
151
    @RequestMapping(value = "/pagehelpcontent/delete", method = RequestMethod.POST)
152
    public Boolean deletePageHelpContents(@RequestBody List<String> pageHelpContents) throws Exception {
153
        for (String id: pageHelpContents) {
154
            pageHelpContentDAO.delete(id);
155
        }
156
        return true;
157
    }
158

    
159

    
160
}
161

    
162

    
(7-7/10)