def searchByLine(self, line): print("Searching by line..."); bus = AndroclickObjectFactory.getAndroclickObject(AndroclickObjectFactory.BUS); bus.setLine(line); niceResponse = self._serveRequest(bus); responseMessage = AndroclickObjectFactory.getAndroclickObject(AndroclickObjectFactory.RESPONSE); try: infos = niceResponse.getStopList(); responseMessage.setStatus(Response.STATUS_OK); responseMessage.setDescription(Response.STATUS_OK_DESC); stopList = list(); for stop in infos: stopObject = AndroclickObjectFactory.getAndroclickObject(AndroclickObjectFactory.STOP); stopObject.setObjectPropertiesFromAnmString(stop); stopList.append(stopObject.toString()); responseMessage.setObjectsArray(stopList); except: responseMessage.clean(); responseMessage.setStatus(Response.STATUS_ERROR); responseMessage.setDescription(niceResponse.getInfoPalina()[0]); return responseMessage.toString();
def _dispachRequest(self, jsonData): print jsonData; response_headers = [('Content-Type', 'application/json')]; request = jsonData.split("="); print request; try: if request[0]=="stop_request": validatedRequest = AndroclickObjectFactory.getAndroclickObject(AndroclickObjectFactory.STOP); validatedRequest.setObjectProperties(request[1]); response = AndroclickController().searchByStop(validatedRequest.getNumber()); elif request[0]=="line_request": validatedRequest = AndroclickObjectFactory.getAndroclickObject(AndroclickObjectFactory.BUS); validatedRequest.setObjectProperties(request[1]); response = AndroclickController().searchByLine(validatedRequest.getLine()); elif request[0]=="location_request": validatedRequest = AndroclickObjectFactory.getAndroclickObject(AndroclickObjectFactory.STOP); validatedRequest.setObjectProperties(request[1]); response = AndroclickController().searchByLocation(validatedRequest.getCounty(), validatedRequest.getStreet()); else: responseObject = AndroclickObjectFactory.getAndroclickObject(AndroclickObjectFactory.RESPONSE); responseObject.setStatus(Response.STATUS_ERROR); responseObject.setDescription("Bad request!"); response = responseObject.toString(); except ValidationException: responseObject = AndroclickObjectFactory.getAndroclickObject(AndroclickObjectFactory.RESPONSE); responseObject.setStatus(Response.STATUS_ERROR); responseObject.setDescription("Bad JSON request"); response = responseObject.toString(); return response, response_headers;
def searchByStop(self, number): print("Searching by stop..."); stop = AndroclickObjectFactory.getAndroclickObject(AndroclickObjectFactory.STOP); stop.setNumber(number); niceResponse = self._serveRequest(stop); infos = niceResponse.getInfoPalina(); responseMessage = AndroclickObjectFactory.getAndroclickObject(AndroclickObjectFactory.RESPONSE); if len(infos)>1: responseMessage.setStatus(Response.STATUS_OK); responseMessage.setDescription(Response.STATUS_OK_DESC); responseMessage.setAdditionalInfos(infos[0:2]); busList = list(); for bus in infos[2:]: busObject = AndroclickObjectFactory.getAndroclickObject(AndroclickObjectFactory.BUS); busObject.setObjectPropertiesFromAnmString(bus); busList.append(busObject.toString()); responseMessage.setObjectsArray(busList); else: responseMessage.setStatus(Response.STATUS_ERROR); responseMessage.setDescription(infos[0]); return responseMessage.toString();
def searchByLine(self, line): print("Searching by line...") bus = AndroclickObjectFactory.getAndroclickObject( AndroclickObjectFactory.BUS) bus.setLine(line) niceResponse = self._serveRequest(bus) responseMessage = AndroclickObjectFactory.getAndroclickObject( AndroclickObjectFactory.RESPONSE) try: infos = niceResponse.getStopList() responseMessage.setStatus(Response.STATUS_OK) responseMessage.setDescription(Response.STATUS_OK_DESC) stopList = list() for stop in infos: stopObject = AndroclickObjectFactory.getAndroclickObject( AndroclickObjectFactory.STOP) stopObject.setObjectPropertiesFromAnmString(stop) stopList.append(stopObject.toString()) responseMessage.setObjectsArray(stopList) except: responseMessage.clean() responseMessage.setStatus(Response.STATUS_ERROR) responseMessage.setDescription(niceResponse.getInfoPalina()[0]) return responseMessage.toString()
def searchByLocation(self, county, street): print("Searching by location...") stop = AndroclickObjectFactory.getAndroclickObject( AndroclickObjectFactory.STOP) stop.setCounty(county) stop.setStreet(street) niceResponse = self._serveRequest(stop) responseMessage = AndroclickObjectFactory.getAndroclickObject( AndroclickObjectFactory.RESPONSE) try: infos = niceResponse.getStopList() responseMessage.setStatus(Response.STATUS_OK) responseMessage.setDescription(Response.STATUS_OK_DESC) stopList = list() for stop in infos: stopObject = AndroclickObjectFactory.getAndroclickObject( AndroclickObjectFactory.STOP) stopObject.setObjectPropertiesFromAnmString(stop) stopList.append(stopObject.toString()) responseMessage.setObjectsArray(stopList) except: responseMessage.clean() responseMessage.setStatus(Response.STATUS_ERROR) responseMessage.setDescription(niceResponse.getInfoPalina()[0]) return responseMessage.toString()
def searchByStop(self, number): print("Searching by stop...") stop = AndroclickObjectFactory.getAndroclickObject( AndroclickObjectFactory.STOP) stop.setNumber(number) niceResponse = self._serveRequest(stop) infos = niceResponse.getInfoPalina() responseMessage = AndroclickObjectFactory.getAndroclickObject( AndroclickObjectFactory.RESPONSE) if len(infos) > 1: responseMessage.setStatus(Response.STATUS_OK) responseMessage.setDescription(Response.STATUS_OK_DESC) responseMessage.setAdditionalInfos(infos[0:2]) busList = list() for bus in infos[2:]: busObject = AndroclickObjectFactory.getAndroclickObject( AndroclickObjectFactory.BUS) busObject.setObjectPropertiesFromAnmString(bus) busList.append(busObject.toString()) responseMessage.setObjectsArray(busList) else: responseMessage.setStatus(Response.STATUS_ERROR) responseMessage.setDescription(infos[0]) return responseMessage.toString()
def _dispachRequest(self, jsonData): print jsonData response_headers = [('Content-Type', 'application/json')] request = jsonData.split("=") print request try: if request[0] == "stop_request": validatedRequest = AndroclickObjectFactory.getAndroclickObject( AndroclickObjectFactory.STOP) validatedRequest.setObjectProperties(request[1]) response = AndroclickController().searchByStop( validatedRequest.getNumber()) elif request[0] == "line_request": validatedRequest = AndroclickObjectFactory.getAndroclickObject( AndroclickObjectFactory.BUS) validatedRequest.setObjectProperties(request[1]) response = AndroclickController().searchByLine( validatedRequest.getLine()) elif request[0] == "location_request": validatedRequest = AndroclickObjectFactory.getAndroclickObject( AndroclickObjectFactory.STOP) validatedRequest.setObjectProperties(request[1]) response = AndroclickController().searchByLocation( validatedRequest.getCounty(), validatedRequest.getStreet()) else: responseObject = AndroclickObjectFactory.getAndroclickObject( AndroclickObjectFactory.RESPONSE) responseObject.setStatus(Response.STATUS_ERROR) responseObject.setDescription("Bad request!") response = responseObject.toString() except ValidationException: responseObject = AndroclickObjectFactory.getAndroclickObject( AndroclickObjectFactory.RESPONSE) responseObject.setStatus(Response.STATUS_ERROR) responseObject.setDescription("Bad JSON request") response = responseObject.toString() return response, response_headers
def _sendRequest(self, requestData=None, currentCookie=None): connection = urllib2.build_opener(); connection.addheaders = [(USER_AGENT_KEY, USER_AGENT_VALUE)]; if currentCookie != None: connection.addheaders.extend([(COOKIE_KEY, currentCookie)]); try: response = connection.open(SERVER_URL, requestData); except urllib2.HTTPError as httpException: raise AnmException("ANMProvider.py - Remote server error: " + str(httpException.code));# + " " + httpException.reason); except Exception as generalException: raise AnmException("ANMProvider.py - Local error: " + str(generalException.reason)); connection.close(); return response; if __name__ == "__main__": bus = AndroclickObjectFactory.getAndroclickObject(AndroclickObjectFactory.BUS); bus.setLine('r2'); requestedObject = ANMProvider().androclickFlow(bus); print(requestedObject); stop = AndroclickObjectFactory.getAndroclickObject(AndroclickObjectFactory.STOP); stop.setNumber('3352'); requestedObject = ANMProvider().androclickFlow(stop); print(requestedObject);
if currentCookie != None: connection.addheaders.extend([(COOKIE_KEY, currentCookie)]) try: response = connection.open(SERVER_URL, requestData) except urllib2.HTTPError as httpException: raise AnmException("ANMProvider.py - Remote server error: " + str(httpException.code)) # + " " + httpException.reason); except Exception as generalException: raise AnmException("ANMProvider.py - Local error: " + str(generalException.reason)) connection.close() return response if __name__ == "__main__": bus = AndroclickObjectFactory.getAndroclickObject( AndroclickObjectFactory.BUS) bus.setLine('r2') requestedObject = ANMProvider().androclickFlow(bus) print(requestedObject) stop = AndroclickObjectFactory.getAndroclickObject( AndroclickObjectFactory.STOP) stop.setNumber('3352') requestedObject = ANMProvider().androclickFlow(stop) print(requestedObject)