package com.plannaplan.controllers; import java.util.Map; import java.util.Optional; import com.plannaplan.App; import com.plannaplan.entities.Assignment; import com.plannaplan.entities.Exchange; import com.plannaplan.entities.Groups; import com.plannaplan.entities.User; import com.plannaplan.repositories.ExchangeRepository; import com.plannaplan.services.AssignmentService; import com.plannaplan.services.ExchangeService; import com.plannaplan.services.GroupService; import com.plannaplan.services.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @RestController @CrossOrigin @RequestMapping("/api/" + App.API_VERSION + "/exchanges") @Api(tags = { "Exchange" }, value = "Exchange", description = "Endpoint to exchange with accepted assignments.") public class ExchangeController { @Autowired private UserService userService; @Autowired private GroupService groupService; @Autowired private AssignmentService assignmentService; @Autowired private ExchangeService exchangeService; @PostMapping("/exchange") @ApiOperation(value = "Return all courses") public ResponseEntity createExchange(@RequestBody Map exchangeRequest){ final Long userId = exchangeRequest.get("user"); final Long assignmentId = exchangeRequest.get("assignment"); final Long groupId = exchangeRequest.get("group"); if(userId == null || assignmentId == null|| groupId == null ){ return new ResponseEntity<>("Some of values are missing", HttpStatus.BAD_REQUEST); } final Optional user = this.userService.getById(userId); final Optional assignment = this.assignmentService.getById(assignmentId); final Optional group = this.groupService.getGroupById(groupId); if(user.isEmpty() || assignment.isEmpty() || group.isEmpty()){ return new ResponseEntity<>("Some of provided value does not exist.", HttpStatus.BAD_REQUEST); } this.exchangeService.save(new Exchange(user.get(), assignment.get(), group.get())); //System.out.println("KUPA"); return null; } }