package org.nextprot.api.user.controller; import org.jsondoc.core.annotation.Api; import org.jsondoc.core.annotation.ApiAuthBasic; import org.jsondoc.core.annotation.ApiMethod; import org.jsondoc.core.pojo.ApiVerb; import org.nextprot.api.user.domain.User; import org.nextprot.api.user.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import java.util.Arrays; import java.util.List; /** * Controller for operating (CRUD) on user applications * * @author Daniel Teixeira */ @Controller @PreAuthorize("hasRole('ROLE_USER')") @Api(name = "User", description = "Method to manipulate users.", group="User") @ApiAuthBasic(roles={"ROLE_USER","ROLE_ADMIN"}) public class UserController { @Autowired private UserService userService; /* @ApiMethod(path = "/users", verb = ApiVerb.GET, description = "Gets all applications for a logged user", produces = {MediaType.APPLICATION_JSON_VALUE}, consumes = { MediaType.APPLICATION_JSON_VALUE}) @RequestMapping(value = "/users", method = { RequestMethod.GET }) @ResponseBody @PreAuthorize("hasRole('ROLE_USER')") public List<User> getApplications() { //return userService.getUserList(); User user = new User(); user.setId(23); user.setUsername("okkdoedko"); return Arrays.asList(user); }*/ /*@ApiMethod(path = "/user/applications", verb = ApiVerb.POST, description = "Creates a user application for the current logged user", produces = {MediaType.APPLICATION_JSON_VALUE}, consumes = { MediaType.APPLICATION_JSON_VALUE}) @RequestMapping(value = "/user/applications", method = { RequestMethod.POST }) @ResponseBody public UserApplication createApplication(@RequestBody @ApiBodyObject UserApplication userApplication) { userApplication.setOwnerId(NPSecurityContext.getCurrentUserId()); return userService.createUserApplication(userApplication); } @ApiMethod(path = "/user/applications/{id}", verb = ApiVerb.GET, description = "Gets the application of the current user", produces = {MediaType.APPLICATION_JSON_VALUE}, consumes = { MediaType.APPLICATION_JSON_VALUE}) @RequestMapping(value = "/user/applications/{id}", method = { RequestMethod.GET }) @ResponseBody public UserApplication getApplication(@PathVariable @ApiParam(name = "id", description = "The User application id", paramType=ApiParamType.PATH) Long id) { UserApplication userApp = userService.getUserApplication(id); NPSecurityContext.checkUserAuthorization(userApp); return userApp; } @ApiMethod(path = "/user/applications/{id}", verb = ApiVerb.DELETE, description = "Deletes an application", produces = {MediaType.APPLICATION_JSON_VALUE}, consumes = { MediaType.APPLICATION_JSON_VALUE}) @RequestMapping(value = "/user/applications/{id}", method = { RequestMethod.DELETE }) public void deleteApplication(@PathVariable @ApiParam(name = "id", description = "The User application id", paramType=ApiParamType.PATH) Long id) { UserApplication userApp = userService.getUserApplication(id); NPSecurityContext.checkUserAuthorization(userApp); userService.deleteApplication(id); }*/ }