def createPrediction(self, token, region, predictionType, date): username = jwt.decode(token, 'secret', algorithms='HS256').get('username') claims = jwt.decode(token, 'secret', algorithms='HS256').get('claim') currentDate = jwt.decode(token, 'secret', algorithms='HS256').get('dateIssued') region = region.upper() predictionType = predictionType.upper() if constantsclass.WEB_SERVICE in claims: validator = jishinValidator.Input_Validator() try: # validates user input before passing it into query builder validator.validate_date(currentDate, date) validator.validate_region(region) validator.validate_prediction_type(predictionType) # Retrieve correct collection from db to make computation query = queryBuilder.queryBuilder() collection = query.retrieveCollection(region, predictionType) try: # computation computationHandler = ComputationClass() results = str( computationHandler.computationalCalculations( collection, predictionType, date)) # rabbitMq messageQueue = ceRabbitMqPushMessage.messageQueue() messageQueue.sendMessage(username, results, date, region, predictionType) except Exception as e: jishinLogging.logger.error('Computation %s' % e) return True except ValidationErrors.InputError as ve: jishinLogging.logger.error('Validation Error %s' % ve) for e in validator.errors: jishinLogging.logger.error(e) print ve.msg return False except Exception as e: jishinLogging.logger.error('Error Creating Prediction %s' % e) else: return False
def createPrediction(self, token, region, predictionType, date): username = jwt.decode(token, 'secret', algorithms='HS256').get('username') claims = jwt.decode(token, 'secret', algorithms='HS256').get('claim') currentDate = jwt.decode(token, 'secret', algorithms='HS256').get('dateIssued') region = region.upper() predictionType = predictionType.upper() if constantsclass.WEB_SERVICE in claims: validator = jishinValidator.Input_Validator() try: # validates user input before passing it into query builder validator.validate_date(currentDate, date) validator.validate_region(region) validator.validate_prediction_type(predictionType) # Retrieve correct collection from db to make computation query = queryBuilder.queryBuilder() collection = query.retrieveCollection(region, predictionType) try: # computation computationHandler = ComputationClass() results = str(computationHandler.computationalCalculations(collection, predictionType, date)) # rabbitMq messageQueue = ceRabbitMqPushMessage.messageQueue() messageQueue.sendMessage(username, results, date, region, predictionType) except Exception as e: jishinLogging.logger.error('Computation %s' % e) return True except ValidationErrors.InputError as ve: jishinLogging.logger.error('Validation Error %s' % ve) for e in validator.errors: jishinLogging.logger.error(e) print ve.msg return False except Exception as e: jishinLogging.logger.error('Error Creating Prediction %s' %e) else: return False
# Author: Owen Murphy # Edited: 11/18/15 # Course: IST 440w # Instructor: Professor Oakes import sys sys.path.append('..') from messageQueuing import ceRabbitMqPushMessage from messageQueuing import clientRabbitMqPickupMessage import unittest from pika.exceptions import * from Errors import ValidationErrors import datetime testQueue = ceRabbitMqPushMessage.messageQueue() testReceive = clientRabbitMqPickupMessage.messageReceive() username = "******" results = 'It Works' nonexistQueue = 'bob' date = str(datetime.datetime.now().date() + datetime.timedelta(days=3)) region = 'US' predicitonType = 'WEEKLY' class messageQueue_tests(unittest.TestCase): def test_message_send_receive_ok(self): send = results received = results sendResponse = testQueue.sendMessage(username, results, date, region, predicitonType) receiveResponse = testReceive.getMessage(username)