Newer
Older
package com.mif13.authServer.controllers;
import com.mif13.authServer.dao.UsersDao;
import com.mif13.authServer.model.User;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
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.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("users")
public class UserRestController {
private final UsersDao usersRepo;
@Autowired
public UserRestController(UsersDao usersRepo) {
this.usersRepo = usersRepo;
}
@GetMapping(value = "/{id}", produces = "application/json")
public ResponseEntity<User> getUser(@PathVariable String id) {
ResponseEntity<User> response;
Optional<User> optionalUser = usersRepo.get(id);
if (optionalUser.isPresent()) {
User user = optionalUser.get();
response = new ResponseEntity<>(user, HttpStatus.OK);
}
else {
response = new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
return response;
}
@PostMapping
public ResponseEntity<Void> createUser(@RequestParam("login") String login, @RequestParam("password") String password) {
ResponseEntity<Void> response;
Optional<User> optionalUser = usersRepo.get(login);
if (optionalUser.isEmpty()) {
User user = new User(login, password);
usersRepo.save(user);
response = new ResponseEntity<>(HttpStatus.CREATED);
}
else {
response = new ResponseEntity<>(HttpStatus.FORBIDDEN);
}
return response;
}