package cloud.honeydue.controller import cloud.honeydue.model.Chore import cloud.honeydue.repository.ChoreRepository import cloud.honeydue.repository.UserRepository import io.jsonwebtoken.Jwts import org.slf4j.LoggerFactory import org.springframework.beans.factory.annotation.Autowired import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.* @RestController @RequestMapping("/api/v1", produces = ["application/json"]) @CrossOrigin(origins = ["*"]) class ChoreController(@Autowired val userRepository: UserRepository, @Autowired val choreRepository: ChoreRepository) { var logger = LoggerFactory.getLogger(ChoreController::class.java) var signingKey = "NHi+orxnVHNclk17zy5oFc0znVXkUh3BOQwMEbP8308=".encodeToByteArray() private fun parseJwtToken(token: String) : String { var claims = Jwts.parserBuilder().setSigningKey(signingKey).build().parseClaimsJws(token) return claims.body.subject } @GetMapping("/chores") fun findChoresForNickname(@RequestHeader("Authorization") jwtToken:String): MutableSet<Chore>? { var user = userRepository.getByNickname(parseJwtToken(jwtToken)) logger.info(user.nickname) return choreRepository.findByUserId(user.id) } @PostMapping("/chores") fun addChoreByNickname(@RequestHeader("Authorization") jwtToken:String, @RequestBody chore: Chore): MutableSet<Chore>? { var user = userRepository.getByNickname(parseJwtToken(jwtToken)) logger.info(user.nickname) chore.user = user choreRepository.save(chore) return choreRepository.findByUserId(user.id) } }