package com.ciandt.techgallery.service.endpoint;
import java.util.List;
import com.ciandt.techgallery.Constants;
import com.ciandt.techgallery.service.TechnologyRecommendationService;
import com.ciandt.techgallery.service.impl.TechnologyRecommendationServiceImpl;
import com.ciandt.techgallery.service.model.Response;
import com.google.api.server.spi.config.Api;
import com.google.api.server.spi.config.ApiMethod;
import com.google.api.server.spi.config.AuthLevel;
import com.google.api.server.spi.config.ApiReference;
import com.google.api.server.spi.config.Named;
import com.google.api.server.spi.response.BadRequestException;
import com.google.api.server.spi.response.InternalServerErrorException;
import com.google.api.server.spi.response.NotFoundException;
import com.google.appengine.api.oauth.OAuthRequestException;
import com.google.appengine.api.users.User;
@ApiReference(TechGalleryApiDefinition.class)
public class TechnologyRecommendationEndpoint {
private TechnologyRecommendationService service = TechnologyRecommendationServiceImpl.getInstance();
@ApiMethod(name = "getTechnologyRecommendations", path = "technology-recommendations", httpMethod = "get")
public List<Response> getRecommendations(@Named("id") String technologyId, User user)
throws InternalServerErrorException, BadRequestException, NotFoundException, OAuthRequestException {
return service.getRecommendations(technologyId, user);
}
@ApiMethod(name = "getRecommendationsUp", path = "technology-recommendations_up", httpMethod = "get")
public List<Response> getRecommendationsUp(@Named("id") String technologyId, User user)
throws InternalServerErrorException, BadRequestException, NotFoundException, OAuthRequestException {
return service.getRecommendationsUpByTechnologyAndUser(technologyId, user);
}
@ApiMethod(name = "getRecommendationsDown", path = "technology-recommendations_down", httpMethod = "get")
public List<Response> getRecommendationsDown(@Named("id") String technologyId, User user)
throws InternalServerErrorException, BadRequestException, NotFoundException, OAuthRequestException {
return service.getRecommendationsDownByTechnologyAndUser(technologyId, user);
}
@ApiMethod(name = "deleteRecommendById", path = "technology-delete-recommendation", httpMethod = "get")
public Response deleteRecommendById(@Named("recommendId") Long recommendId, User user)
throws BadRequestException, NotFoundException, InternalServerErrorException {
return service.deleteRecommendById(recommendId, user);
}
}