Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
# 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)