/**
 * Copyright 2012-2015 Rafal Lewczuk <rafal.lewczuk@jitlogic.com>
 * <p/>
 * This is free software. You can redistribute it and/or modify it under the
 * terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 * <p/>
 * This software is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
 * <p/>
 * You should have received a copy of the GNU General Public License
 * along with this software. If not, see <http://www.gnu.org/licenses/>.
 */

package com.jitlogic.klikacz.client.api;

import com.jitlogic.klikacz.data.phantom.PhantomContent;
import com.jitlogic.klikacz.data.phantom.PhantomScenario;
import org.fusesource.restygwt.client.MethodCallback;
import org.fusesource.restygwt.client.RestService;

import javax.ws.rs.*;
import java.util.List;

public interface PhantomScenarioApi extends RestService {
    @GET
    @Path("phantom/scenario")
    void list(MethodCallback<List<PhantomScenario>> cb);

    @PUT
    @Path("phantom/scenario/{id}")
    void update(@PathParam("id") int id, PhantomScenario scenario, MethodCallback<Void> cb);

    @POST
    @Path("phantom/scenario")
    void create(PhantomScenario scenario, MethodCallback<Void> cb);

    @DELETE
    @Path("phantom/scenario/{id}")
    void delete(@PathParam("id") Integer id, MethodCallback<Void> cb);

    @POST
    @Path("phantom/scenario/import/json")
    void importJson(PhantomContent content, MethodCallback<Void> cb);
}
