package carpool.resources.userResource;
import java.util.ArrayList;
import org.json.JSONArray;
import org.restlet.data.Status;
import org.restlet.ext.json.JsonRepresentation;
import org.restlet.representation.Representation;
import org.restlet.representation.StringRepresentation;
import org.restlet.resource.Get;
import carpool.configurations.CarpoolConfig;
import carpool.dbservice.LocationDaoService;
import carpool.dbservice.MessageDaoService;
import carpool.dbservice.UserDaoService;
import carpool.exception.PseudoException;
import carpool.exception.auth.AccountAuthenticationException;
import carpool.factory.JSONFactory;
import carpool.model.Message;
import carpool.model.User;
import carpool.model.representation.SearchRepresentation;
import carpool.model.representation.UserSearchRepresentation;
import carpool.resources.PseudoResource;
public class UserSearchUserResource extends PseudoResource{
@Get
public Representation searchForUsers(){
JSONArray response = new JSONArray();
try {
String srStr = this.getQueryVal("userSearchRepresentation");
int userId = Integer.parseInt(this.getQueryVal("userId"));
boolean login = false;
try{
this.validateAuthentication(userId);
login = true;
}
catch (AccountAuthenticationException e){
login = false;
}
if (srStr != null){
UserSearchRepresentation userSearchRepresentation = new UserSearchRepresentation(srStr);
ArrayList<User> searchResult = new ArrayList<User>();
searchResult = UserDaoService.searchForUser(userSearchRepresentation, login, userId);
response = JSONFactory.toJSON(searchResult);
}
} catch (PseudoException e){
this.addCORSHeader();
return this.doPseudoException(e);
} catch (Exception e){
return this.doException(e);
}
Representation result = new JsonRepresentation(response);
this.addCORSHeader();
return result;
}
}