UserController.java

package no.ntnu.idatt2105.l4.demo.web;

import no.ntnu.idatt2105.l4.demo.model.User;
import no.ntnu.idatt2105.l4.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * Endpoints for functionality pertaining to users
 */
@RequestMapping("/user")
public class UserController {

    @Autowired
    UserService userSevice;

    @ResponseBody
    @RequestMapping("")
    public List<User> getAllUsers() {
        return userSevice.getAllUsers();
    }

    @ResponseBody
    @RequestMapping("/{id}")
    public User getUser(@PathVariable("id") Integer id) {
        return userSevice.getUser(id);
    }

    @ResponseBody
    @RequestMapping(value = "", method = RequestMethod.POST)
    public Map<String, Object> createUser(@RequestParam(value = "userid") Integer userid,
                                          @RequestParam(value = "username") String username) {
        Map<String, Object> map = new LinkedHashMap<>();
        userSevice.createUser(userid, username);
        map.put("result", "added");
        return map;
    }

    @ResponseBody
    @RequestMapping(value = "", method = RequestMethod.PUT)
    public Map<String, Object> updateUser(@RequestParam(value = "userid") Integer userid,
                                          @RequestParam(value = "username") String username) {
        Map<String, Object> map = new LinkedHashMap<>();
        userSevice.updateUser(userid, username);
        map.put("result", "updated");
        return map;
    }

    @ResponseBody
    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
    public Map<String, Object> deleteUser(
            @PathVariable("id") Integer userid) {
        Map<String, Object> map = new LinkedHashMap<>();
        userSevice.deleteUser(userid);
        map.put("result", "deleted");
        return map;
    }
}