package com.zuehlke.camp2014.schild.siegfried;
import java.util.Date;
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;
import com.zuehlke.camp2014.iot.core.ComponentFactory;
import com.zuehlke.camp2014.iot.core.store.KafkaMessageWriter;
import com.zuehlke.camp2014.iot.model.Identifier;
import com.zuehlke.camp2014.iot.model.internal.Telemetry;
import com.zuehlke.camp2014.schild.siegfried.domain.Move;
import com.zuehlke.camp2014.schild.siegfried.logic.MoveLogic;
@Path("/moves")
public class MoveService {
// TODO: Temporary hard-coded logic, will be moved to spark processing via kafka
private final MoveLogic logic = new MoveLogic();
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Move put(Move move) {
// TODO: Send to queue
System.out.println("TODO: Send move to kafka: "+move.toString());
/*
KafkaMessageWriter writer = new ComponentFactory("id").newMessageInboxWriter(true);
Identifier identifier = new Identifier("schild", "TODO");
Telemetry msg = new Telemetry(new Date(), identifier, null, null);
writer.save(identifier, msg);
*/
Siegfried.messageListenerDoorplate.processMove(move);
return move;
}
}