package com.sjriley.zappit.models;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import android.content.Context;
import android.location.Location;
import android.util.Log;
import com.google.gson.Gson;
import com.sjriley.zappit.vo.CodeCheckRequest;
import com.sjriley.zappit.vo.CodeCheckResponse;
public class CodeCheckModel extends BaseModel
{
private static final String TAG = CodeCheckModel.class.getSimpleName();
public CodeCheckModel(Context context){
super(context);
}
public CodeCheckResponse checkCode(String userid, String barcode) {
HttpPost request = new HttpPost("http://zappit.co/service/codecheck");
List<NameValuePair> nvp = new ArrayList<NameValuePair>();
Location location = getLocation();
CodeCheckRequest params = new CodeCheckRequest("Hw2za8Hn", userid, barcode, location.getLatitude(),location.getLongitude());
Gson gson = new Gson();
nvp.add(new BasicNameValuePair("info", gson.toJson(params)));
nvp.add(new BasicNameValuePair("submit", "send"));
CodeCheckResponse result = new CodeCheckResponse();
try
{
request.setEntity(new UrlEncodedFormEntity(nvp, HTTP.UTF_8));
HttpResponse response = httpClient.execute(request);
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
result = gson.fromJson(reader, CodeCheckResponse.class);
}
catch (UnsupportedEncodingException e)
{
result.setStatus(-10);
result.setMessage("Could not encode parameters");
e.printStackTrace();
} catch (ClientProtocolException e)
{
result.setStatus(-10);
result.setMessage("Could not connect to server");
e.printStackTrace();
} catch (IOException e)
{
result.setStatus(-10);
result.setMessage("Could not read response");
e.printStackTrace();
}
catch (Exception e)
{
result.setMessage("Unknown exception");
e.printStackTrace();
}
return result;
}
}