UserRestController.java 2.07 KB
package fr.plil.sio.web.mvc;

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.RequestParam;

@RestController
public class UserRestController {

    @Resource
    private UserService userService;

    @RequestMapping(value = "/api/users/", method = RequestMethod.GET)
    public List<User> listUsers() {
        return userService.findAll();
    }

    @RequestMapping(value="/api/connectedUser/",method=RequestMethod.GET)
    public User connectedUser() {
        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        User usr = (User)authentication.getPrincipal();       
        return usr;
    }
    
    @RequestMapping(value = "/api/users/{username}/", method = RequestMethod.GET)
    public User listUsers(@PathVariable String username) {
        return userService.findByUsername(username);
    }

    @RequestMapping(value = "/api/debts/", method = RequestMethod.GET)
    public List<Dette> listDettes() {        
        return userService.findDettes();
    }

    @RequestMapping(value = "/api/creances/", method = RequestMethod.GET)
    public List<Dette> listCreances(){
        return userService.findCreances();
    }
    
    @RequestMapping(value = "/api/addDette/", method = RequestMethod.POST)
    public Dette addDette(@RequestParam(value="username",required=false) String username,@RequestParam(value="sommeDette",required=false) String sommeDette) {
        return userService.addDette(username,sommeDette);
    }
    
    @RequestMapping(value="/api/deleteDette/{id}",method=RequestMethod.DELETE)
    public String deleteDette(@PathVariable("id") String id){
        return userService.deleteDette(id);
    }
    

}