package org.rakam.automation; import org.rakam.server.http.HttpService; import org.rakam.server.http.annotations.Api; import org.rakam.server.http.annotations.ApiOperation; import org.rakam.server.http.annotations.ApiParam; import org.rakam.server.http.annotations.Authorization; import org.rakam.server.http.annotations.JsonRequest; import org.rakam.server.http.annotations.BodyParam; import org.rakam.util.SuccessMessage; import javax.inject.Inject; import javax.inject.Named; import javax.ws.rs.GET; import javax.ws.rs.Path; import java.util.List; @Path("/automation") @Api(value = "/automation", nickname = "automation", description = "Automation module", tags = "automation") public class AutomationHttpService extends HttpService { private final UserAutomationService service; @Inject public AutomationHttpService(UserAutomationService service) { this.service = service; } @ApiOperation(value = "Add scenario", authorizations = @Authorization(value = "master_key") ) @JsonRequest @Path("/add") public SuccessMessage addRule(@Named("project") String project, @BodyParam AutomationRule rule) { service.add(project, rule); return SuccessMessage.success(); } @ApiOperation(value = "Remove rule", authorizations = @Authorization(value = "master_key") ) @JsonRequest @Path("/remove") public SuccessMessage removeRule(@Named("project") String project, @ApiParam("id") int id) { service.remove(project, id); return SuccessMessage.success(); } @ApiOperation(value = "Deactivate rule", authorizations = @Authorization(value = "master_key") ) @JsonRequest @Path("/deactivate") public SuccessMessage deactivateRule(@Named("project") String project, @ApiParam("id") int id) { service.deactivate(project, id); return SuccessMessage.success(); } @ApiOperation(value = "Activate rule", authorizations = @Authorization(value = "master_key") ) @JsonRequest @Path("/activate") public SuccessMessage activateRule(@Named("project") String project, @ApiParam("id") int id) { service.activate(project, id); return SuccessMessage.success(); } @ApiOperation(value = "List scenarios", authorizations = @Authorization(value = "read_key") ) @GET @Path("/list") public List<AutomationRule> listRules(@Named("project") String project) { return service.list(project); } }