SportsController.java
package net.andresbustamante.yafoot.core.web.controllers;
import net.andresbustamante.yafoot.commons.exceptions.DatabaseException;
import net.andresbustamante.yafoot.commons.web.controllers.AbstractController;
import net.andresbustamante.yafoot.core.services.SportSearchService;
import net.andresbustamante.yafoot.core.web.mappers.SportMapper;
import net.andresbustamante.yafoot.web.dto.Sport;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.server.ResponseStatusException;
import java.util.List;
import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
@RestController
public class SportsController extends AbstractController implements SportsApi {
private final SportSearchService sportSearchService;
private final SportMapper sportMapper;
public SportsController(final SportSearchService sportSearchService, final SportMapper sportMapper) {
this.sportSearchService = sportSearchService;
this.sportMapper = sportMapper;
}
@Override
public ResponseEntity<List<Sport>> loadSports() {
try {
List<net.andresbustamante.yafoot.core.model.Sport> sports = sportSearchService.loadSports();
return ResponseEntity.ok(sportMapper.map(sports));
} catch (DatabaseException e) {
throw new ResponseStatusException(INTERNAL_SERVER_ERROR, translate(DATABASE_BASIC_ERROR, null));
}
}
}