Commit b9d62a20 authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Added logic for generic search functionality

parent 18d45bca
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -24,7 +24,7 @@ public class GroupsTabResponseBuilder {
    private GroupsService groupsService;
    private GroupsService groupsService;


    @Autowired
    @Autowired
    private GroupsTreeBuilder groupsTreeBuilder;
    private GroupsTreeBuilder groupsListBuilder;


    public GroupsTabResponse getGroupsTab(GroupsRequest request) {
    public GroupsTabResponse getGroupsTab(GroupsRequest request) {


@@ -37,7 +37,7 @@ public class GroupsTabResponseBuilder {
        Permission currentNodePermissions = permissionsService.getUserPermissionForGroup(group, session.getUserId());
        Permission currentNodePermissions = permissionsService.getUserPermissionForGroup(group, session.getUserId());
        response.setPermission(currentNodePermissions);
        response.setPermission(currentNodePermissions);


        response.setGroupsPanel(groupsTreeBuilder.listSubGroups(group, request, session.getUserId()));
        response.setGroupsPanel(groupsListBuilder.listSubGroups(group, request, session.getUserId()));


        return response;
        return response;
    }
    }
+39 −0
Original line number Original line Diff line number Diff line
package it.inaf.ia2.gms.controller;

import it.inaf.ia2.gms.authn.SessionData;
import it.inaf.ia2.gms.model.response.PaginatedData;
import it.inaf.ia2.gms.model.response.SearchResponseItem;
import it.inaf.ia2.gms.model.response.UserSearchResponse;
import it.inaf.ia2.gms.service.SearchService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class SearchController {

    @Autowired
    private SessionData sessionData;

    @Autowired
    private SearchService searchService;

    @GetMapping(value = "/search", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public ResponseEntity<PaginatedData<SearchResponseItem>> getSearchResults(@RequestParam("query") String query,
            @RequestParam("page") int page, @RequestParam("pageSize") int pageSize) {

        PaginatedData<SearchResponseItem> response = searchService.search(query, sessionData.getUserId(), page, pageSize);
        return ResponseEntity.ok(response);
    }

    @GetMapping(value = "/search/user/{userId}", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public ResponseEntity<UserSearchResponse> getSearchResultUser(@PathVariable("userId") String userId) {

        UserSearchResponse response = searchService.getUserSearchResult(sessionData.getUserId(), userId);
        return ResponseEntity.ok(response);
    }
}
+32 −0
Original line number Original line Diff line number Diff line
package it.inaf.ia2.gms.model.response;

public class SearchResponseItem {

    private SearchResponseType type;
    private String label;
    private String id;

    public SearchResponseType getType() {
        return type;
    }

    public void setType(SearchResponseType type) {
        this.type = type;
    }

    public String getLabel() {
        return label;
    }

    public void setLabel(String label) {
        this.label = label;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}
+7 −0
Original line number Original line Diff line number Diff line
package it.inaf.ia2.gms.model.response;

public enum SearchResponseType {

    GROUP,
    USER
}
+27 −0
Original line number Original line Diff line number Diff line
package it.inaf.ia2.gms.model.response;

import it.inaf.ia2.gms.persistence.model.GroupEntity;
import it.inaf.ia2.gms.persistence.model.PermissionEntity;
import java.util.List;

public class UserSearchResponse {

    private List<GroupEntity> groups;
    private List<PermissionEntity> permissions;

    public List<GroupEntity> getGroups() {
        return groups;
    }

    public void setGroups(List<GroupEntity> groups) {
        this.groups = groups;
    }

    public List<PermissionEntity> getPermissions() {
        return permissions;
    }

    public void setPermissions(List<PermissionEntity> permissions) {
        this.permissions = permissions;
    }
}
Loading