/** * Copyright 2014 Flipkart Internet Pvt. Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.flipkart.foxtrot.server.resources; import com.flipkart.foxtrot.common.ActionRequest; import com.flipkart.foxtrot.common.ActionResponse; import com.flipkart.foxtrot.core.common.AsyncDataToken; import com.flipkart.foxtrot.core.exception.FoxtrotException; import com.flipkart.foxtrot.core.querystore.QueryExecutor; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; /** * User: Santanu Sinha (santanu.sinha@flipkart.com) * Date: 27/03/14 * Time: 2:05 AM */ @Path("/v1/analytics") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public class AnalyticsResource { private final QueryExecutor queryExecutor; public AnalyticsResource(QueryExecutor queryExecutor) { this.queryExecutor = queryExecutor; } @POST public ActionResponse runSync(final ActionRequest request) throws FoxtrotException { return queryExecutor.execute(request); } @POST @Path("/async") public AsyncDataToken runSyncAsync(final ActionRequest request) throws FoxtrotException { return queryExecutor.executeAsync(request); } @POST @Path("/validate") public void validateQuery(final ActionRequest request) throws FoxtrotException { queryExecutor.validate(request); } }