blob: c881cb92fcbe1865db419424855d3de6edb2e70d [file] [log] [blame]
margarethabdde7f42023-02-10 08:24:03 +01001package de.ids_mannheim.korap.web.controller;
2
3import java.util.List;
4
5import javax.ws.rs.Consumes;
6import javax.ws.rs.FormParam;
7import javax.ws.rs.POST;
8import javax.ws.rs.Path;
9import javax.ws.rs.Produces;
10import javax.ws.rs.core.MediaType;
11
12import org.springframework.beans.factory.annotation.Autowired;
13import org.springframework.stereotype.Controller;
14
15import de.ids_mannheim.korap.constant.UserGroupStatus;
16import de.ids_mannheim.korap.dto.UserGroupDto;
17import de.ids_mannheim.korap.exceptions.KustvaktException;
18import de.ids_mannheim.korap.service.UserGroupService;
19import de.ids_mannheim.korap.web.KustvaktResponseHandler;
20import de.ids_mannheim.korap.web.filter.APIVersionFilter;
21import de.ids_mannheim.korap.web.filter.AdminFilter;
22import de.ids_mannheim.korap.web.utils.ResourceFilters;
23
24@Controller
25@Path("{version}/group/admin")
26@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
27@ResourceFilters({ APIVersionFilter.class, AdminFilter.class })
28public class UserGroupAdminController {
29
30 @Autowired
31 private KustvaktResponseHandler kustvaktResponseHandler;
32 @Autowired
33 private UserGroupService service;
34
35 /**
36 * Lists user-groups for system-admin purposes. If username is
37 * specified, lists user-groups of the given user, otherwise list
38 * user-groups of all users. If status specified, list only
39 * user-groups with the given status, otherwise list user-groups
40 * regardless of their status.
41 *
42 * @param securityContext
43 * @param username
44 * a username
45 * @param status
46 * {@link UserGroupStatus}
47 * @return a list of user-groups
48 */
49 @POST
50 @Path("list")
51 @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
52 public List<UserGroupDto> listUserGroupBySystemAdmin (
53 @FormParam("username") String username,
54 @FormParam("status") UserGroupStatus status) {
55 try {
56 return service.retrieveUserGroupByStatus(username,
57 status);
58 }
59 catch (KustvaktException e) {
60 throw kustvaktResponseHandler.throwit(e);
61 }
62 }
63
64}