package cn.seecoder.fdroidrepository.Controller; import cn.seecoder.fdroidrepository.DataObject.User; import cn.seecoder.fdroidrepository.Service.ServiceImpl.USER_STATUS; import cn.seecoder.fdroidrepository.Service.UserService; import cn.seecoder.fdroidrepository.utils.Result; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api/users") public class UserController { @Autowired private UserService userService; @PostMapping("/register") public ResponseEntity register(@RequestBody User user) { if (!userService.isUsernameUnique(user.getUsername())) { return new ResponseEntity<>("Username is already taken", HttpStatus.BAD_REQUEST); } userService.save(user); return new ResponseEntity<>("User registered successfully", HttpStatus.OK); } @GetMapping("/activation/{userId}/{code}") private Result activate(@PathVariable int userId,@PathVariable String code){ USER_STATUS result=userService.activate(userId,code); if(result==USER_STATUS.START_ACTIVATE){ return new Result<>("200","activate success"); }else if(result==USER_STATUS.REPEAT_ACTIVATE){ return new Result<>("409","repeat activation"); } return new Result<>("400","activate failed!"); } @PostMapping("/login") public ResponseEntity login(@RequestBody User user) { User existingUser = userService.findByUsername(user.getUsername()); if (existingUser == null || !existingUser.getPassword().equals(user.getPassword())) { return new ResponseEntity<>("Invalid username or password", HttpStatus.UNAUTHORIZED); } return new ResponseEntity<>("Login successful", HttpStatus.OK); } }