package com.teamcalendar.api;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONException;
import org.json.JSONObject;
import com.teamcalendar.client.DBAdapter;
public class ParseJson {
String response;
DBAdapter mDb;
String memberId;
String teamId=null;
int numberOfUnreadMessages = 0;
private String eventId;
private long eventDate;
private String eventDetails;
private String imageURL;
HttpEntity entity;
byte[] image;
public String getTeamId() {
return teamId;
}
public String getMemberId() {
return memberId;
}
public ParseJson(DBAdapter mDb) {
super();
this.mDb = mDb;
}
public String getResponse() {
return response;
}
public void setResponse(String response) {
this.response = response;
}
public int getNumberOfUnreadMessages() {
return numberOfUnreadMessages;
}
public void fromJSONTeam(String team) {
String name;
mDb.deleteTable(DBAdapter.DATABASE_TABLE_TEAMS);
try {
JSONObject outer = new JSONObject(team);
if (outer != null) {
JSONObject outerInner = outer.getJSONObject("teams");
if (outerInner != null) {
int length = outerInner.length();
for (int i = 1; i < length; i++) {
JSONObject inner = outerInner.getJSONObject("team" + String.valueOf(i));
if (inner != null) {
memberId = inner.getString("id");
name = inner.getString("name");
imageURL=CreateJson.serverAddress+CreateJson.imagesFolder +
"team_" + name.toLowerCase().substring(4) + ".jpg";
if(getImage(imageURL)!=null){
image=getImage(imageURL);
}
mDb.insertTeam(name, memberId,image);
}
}
}
}
} catch (JSONException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void fromJSONMessage(String messages) {
String senderid = null;
String message = null;
String messageId = null;
boolean readStatus;
int read = 0;
try {
JSONObject outer = new JSONObject(messages);
mDb.deleteTable(DBAdapter.DATABASE_TABLE_MESSAGES);
JSONObject outerMember = outer.getJSONObject("messages");
if (outerMember != null) {
int length = outerMember.length();
for (int i = 1; i < length; i++) {
JSONObject innerMember = outerMember.getJSONObject("message" + String.valueOf(i));
if (innerMember != null) {
senderid = innerMember.getString("senderid");
message = innerMember.getString("messagetext");
messageId = innerMember.getString("messageid");
readStatus = innerMember.getBoolean("read");
if(readStatus) {
read = 1;
}
else {
numberOfUnreadMessages++;
}
mDb.insertMessage(senderid, message, messageId, read);
}
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
public void fromJSONMember(String member) {
String firstName;
String familyName;
String address;
String location;
String zipCode;
String phoneNumber;
String email;
String role;
mDb.deleteTable(DBAdapter.DATABASE_TABLE_CURRENTTEAMMEMBERS);
try {
JSONObject outer = new JSONObject(member);
if (outer != null) {
JSONObject outerInner = outer.getJSONObject("teammembers");
if (outerInner != null) {
int length = outerInner.length();
for (int i=1; i < length; i++) {
String teammember="teammember"+String.valueOf(i);
JSONObject inner = outerInner.getJSONObject(teammember);
if (inner != null) {
teamId = inner.getString("id");
firstName = inner.getString("firstname");
familyName = inner.getString("familyname");
address = inner.getString("address");
location = inner.getString("location");
zipCode = inner.getString("zipcode");
phoneNumber = inner.getString("phonenumber");
email = inner.getString("mailaddress");
role = inner.getString("role");
imageURL=CreateJson.serverAddress+CreateJson.imagesFolder + "VictorBjork.jpg";
try {
image=getImage(imageURL);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mDb.insertCurrentTeamMember(teamId, firstName, familyName, address, location, zipCode,
phoneNumber, email, role,image);
}
}
}
}
} catch (JSONException e) {
System.out.println("no members");;
}
}
// public void FromJsonLogin(String login){
// }
//
public void FromJsonLogin(String register){
String firstName;
String lastName;
String address;
String location;
String zipCode;
String phoneNumber;
String email;
String role;
// String image;
String eventId;
eventDate = 0;
String eventdetails = null;
mDb.deleteTable(DBAdapter.DATABASE_TABLE_MYTEAMMEMBERS);
//mDb.deleteTable(DBA)
try {
JSONObject outer = new JSONObject(register);
if (outer != null) {
//JSONObject user=outer.getJSONObject("user");
JSONObject outerInner = outer.getJSONObject("teammembers");
if (outerInner != null) {
int length = outerInner.getInt("noofteammembers");
for (int i=1; i <= length; i++) {
String teammember="teammember"+String.valueOf(i);
JSONObject inner = outerInner.getJSONObject(teammember);
if (inner != null) {
memberId = inner.getString("id");
firstName = inner.getString("firstname");
lastName = inner.getString("familyname");
address = inner.getString("address");
location = inner.getString("location");
zipCode = inner.getString("zipcode");
phoneNumber = inner.getString("phonenumber");
email = inner.getString("mailaddress");
role = inner.getString("role");
mDb.insertMyTeamMember(memberId, firstName, lastName, address, location, zipCode,
phoneNumber, email, role);
teamId=inner.getString("teamid");
}
}
JSONObject user=outer.getJSONObject("user");
if(user!=null){
memberId = user.getString("teammemberkeyid");
}
mDb.deleteTable(DBAdapter.DATABASE_TABLE_MYEVENTS);
JSONObject events=outer.getJSONObject("activities");
if(events!=null){
length=events.getInt("noofactivities");
for ( int counter=1; counter <= length; counter++) {
String event="activity"+String.valueOf(counter);
JSONObject eventObject=events.getJSONObject(event);
eventId=eventObject.getString("id");
eventDate=eventObject.getLong("date");
eventdetails=eventObject.getString("activity");
mDb.insertMyEvents(eventId,eventDate, eventdetails);
}
}
}
fromJSONMessage(register);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
public void fromJSONEvents(String events) {
mDb.deleteTable(DBAdapter.DATABASE_TABLE_CURRENTTEAMEVENTS);
try {
JSONObject outer = new JSONObject(events);
if (outer != null) {
JSONObject outerInner = outer.getJSONObject("activities");
if (outerInner != null) {
int length = outerInner.length();
for (int i = 1; i < length; i++) {
JSONObject inner = outerInner.getJSONObject("activity" + String.valueOf(i));
if (inner != null) {
eventId = inner.getString("id");
eventDate = inner.getLong("date");
eventDetails= inner.getString("activity");
mDb.insertCurrentTeamEvents(eventId, eventDate, eventDetails);
}
}
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
private byte[] getImage(String imageUrl) throws ClientProtocolException, IOException{
DefaultHttpClient mHttpClient = new DefaultHttpClient();
HttpGet mHttpGet = new HttpGet(imageUrl);
HttpResponse mHttpResponse = mHttpClient.execute(mHttpGet);
if (mHttpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
entity = mHttpResponse.getEntity();
}
if(entity!=null)
return EntityUtils.toByteArray(entity);
else
return null;
}
}
|