package br.gov.serpro.nfc.service;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import br.gov.serpro.nfc.model.Keynote;
import br.gov.serpro.nfc.model.User;
/**
* Acesso aos serviços de Keynotes.
*
* @author Marlon Silva Carvalho
*/
public class KeynoteService extends Service {
public static final String URL_KEYNOTES_LIST = BASE_URL + "palestras";
public static final String URL_KEYNOTES_CHECKIN = BASE_URL + "palestra/:id/checkin/:email";
public static final String URL_KEYNOTES_CHECKOUT = BASE_URL + "palestra/:id/checkin/:email";
/**
* Obter do servidor todas as palestras disponíveis.
*
* @param id
* Identificador do Evento.
* @return Lista de Palestras.
*/
public List<Keynote> list(Long id) {
List<Keynote> result = new ArrayList<Keynote>();
JSONObject jsonResponse = getResponse(URL_KEYNOTES_LIST);
if (getStatus().equals(Status.OK)) {
try {
JSONArray jsonKeynotes = jsonResponse.getJSONArray("palestras");
for (int i = 0; i < jsonKeynotes.length(); i++) {
JSONObject jsonKeynote = jsonKeynotes.getJSONObject(i);
Keynote keynote = new Keynote();
keynote.service_id = jsonKeynote.getLong("id");
keynote.speaker = jsonKeynote.getString("palestrante");
keynote.description = jsonKeynote.getString("descricao");
keynote.date = jsonKeynote.getString("data");
result.add(keynote);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
return result;
}
/**
* Realizar o Checkin de um usuário em uma palestra.
*
* @param user
* Usuário que realizará o checkin.
*/
public void checkin(Keynote keynote, User user) {
String url = URL_KEYNOTES_CHECKIN.replace(":id", keynote.getId().toString()).replace(":email", user.email);
getResponse(url);
}
/**
* Realizar o Checkout de um usuário em uma palestra.
*
* @param user
* Usuário que realizará o checkout.
*/
public void checkout(Keynote keynote, User user) {
String url = URL_KEYNOTES_CHECKIN.replace(":id", keynote.getId().toString()).replace(":email", user.email);
getResponse(url);
}
}