This repository has been archived on 2022-07-05. You can view files and clone it, but cannot push or open issues/pull-requests.
steleks_backend/events/src/main/java/ba/steleks/controller/EventTeamController.java

61 lines
2.4 KiB
Java

package ba.steleks.controller;
import ba.steleks.error.exception.ExternalServiceException;
import ba.steleks.model.Event;
import ba.steleks.model.EventTeam;
import ba.steleks.repository.EventTeamJpaRepository;
import ba.steleks.repository.EventsJpaRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.data.rest.webmvc.RepositoryRestController;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
import java.net.URI;
/**
* Created by admin on 15/04/2017.
*/
@RepositoryRestController
public class EventTeamController {
private EventTeamJpaRepository repository;
private RestTemplate restTemplate;
@Autowired
public EventTeamController(RestTemplateBuilder restTemplateBuilder, EventTeamJpaRepository repository) {
this.restTemplate = restTemplateBuilder.build();
this.repository = repository;
}
@RequestMapping(path = "/eventTeams", method = RequestMethod.POST)
public ResponseEntity<?> add(@RequestBody EventTeam eventTeam) throws ExternalServiceException {
String oviTimoviNeki = "http://localhost:9010/teams/{id}";
try {
String response = restTemplate.getForObject(oviTimoviNeki, String.class, eventTeam.getTeamId());
EventTeam result = repository.save(eventTeam);
URI location = ServletUriComponentsBuilder
.fromCurrentRequest().path("/{id}")
.buildAndExpand(result.getId()).toUri();
return ResponseEntity.created(location).body(result);
} catch (Exception ex) {
if (ex instanceof HttpClientErrorException && ((HttpClientErrorException) ex).getStatusCode() == HttpStatus.NOT_FOUND) {
throw new HttpClientErrorException(HttpStatus.BAD_REQUEST);
} else {
throw new ExternalServiceException();
}
}
}
}