Beispiel #1
0
def callPostTweet():
    redis_conn = Redis()
    q = Queue(connection=redis_conn)
    request.body = request.form
    if request.headers['content-type'] == 'application/json':
        request.body = get_json_multidict(request)
    username =  request.body.get('username')
    text = request.body.get('text')
    postTweets_job = q.enqueue(postTweet, args=(username, text,))
    q_hashtags = Queue('hashtags', connection=redis_conn)
    q_hashtags.enqueue(hashtagAnalysis)
    return jsonify({}), 202, {'Location': url_for('postTweet', job_id=postTweets_job.get_id())}
Beispiel #2
0
    def _api_authentication():
        """ Attempt API authentication on a per-request basis."""
        secure_app_access = app.config.get('SECURE_APP_ACCESS', False)
        if not secure_app_access:
            grant_access_with_api_key(secure_app_access)

        # Handle forms
        request.body = request.form
        if (request.method == 'POST'
                and request.headers.get('Content-Type') == 'application/json'
                and request.data):
            try:
                request.body = get_json_multidict(request)
            except TypeError:
                abort(400)
Beispiel #3
0
 def _api_authentication():
     """ Attempt API authentication on a per-request basis."""
     apikey = request.args.get('api_key', None)
     from flask import _request_ctx_stack
     if 'Authorization' in request.headers:
         apikey = request.headers.get('Authorization')
     if apikey:
         user = user_repo.get_by(api_key=apikey)
         if user:
             _request_ctx_stack.top.user = user
     # Handle forms
     request.body = request.form
     if (request.method == 'POST' and
             request.headers['Content-Type'] == 'application/json'):
         request.body = get_json_multidict(request)
Beispiel #4
0
 def _api_authentication():
     """ Attempt API authentication on a per-request basis."""
     apikey = request.args.get('api_key', None)
     from flask import _request_ctx_stack
     if 'Authorization' in request.headers:
         apikey = request.headers.get('Authorization')
     if apikey:
         user = user_repo.get_by(api_key=apikey)
         if user:
             _request_ctx_stack.top.user = user
     # Handle forms
     request.body = request.form
     if (request.method == 'POST' and
             request.headers.get('Content-Type') == 'application/json' and
             request.data):
         try:
             request.body = get_json_multidict(request)
         except TypeError:
             abort(400)
Beispiel #5
0
def trade():
    form = TradeForm(request.form)
    if request.method == 'POST':
        json_data = get_json_multidict(request)
        # Ignore CRSF as it was not in the spec, ideally should be true
        form = TradeForm(json_data, csrf_enabled=False)
        if form.validate():
            if current_user.is_authenticated():
                user = current_user.get_id()
            else:
                user = json_data['userId']
            time = datetime.strptime(json_data['timePlaced'], '%d-%b-%y %H:%M:%S')
            trade = Trade(user, json_data['currencyFrom'], json_data['currencyTo'], json_data['amountSell'], json_data['amountBuy'], json_data['rate'], time, json_data['originatingCountry'])
            db.session.add(trade)
            # TODO: Handle integrity constraint here, sqlite doesn't enforce fk
            db.session.commit()
            return "Trade %s was a success." % trade
        else:
            # Data failed to validate
            abort(422)
    else:
        trades = Trade.query.all()
        return render_template('trade.html', form=form, trades=trades)
Beispiel #6
0
    def process_request(self):
        #Extracting the information from the request object
        self.request.body = self.request.form
        if self.request.headers['content-type'] == 'application/json':
            self.request.body = get_json_multidict(self.request)
        body = self.request.body

        # Formatting it as a dictionary
        request_dict = {key: body[key] for key in body}
        dict_payload_uni = self.get_payload(request_dict)
        dict_payload = self.convert_dict_string(dict_payload_uni)
        rest_git = Github(os.environ['oauth_token'])
        print dict_payload
        #logging.info(dict_payload)

        if (self.method == PR_COMMENT):
            print "inside PR_COMMENT"
            self.respond_to_PR_comment(dict_payload, rest_git)
        elif (self.method == PR):
            print "inside PR"
            self.respond_to_PR(rest_git, dict_payload)
        elif (self.method == COMMIT_COMMENT):
            print "inside commit comment"
            self.respond_to_commit_comment(rest_git, dict_payload)
Beispiel #7
0
def resolve_request_body():
    """Before every request, resolve `request.body` from either `request.form` or `request.get_json()`"""
    request.body = request.form
    if request.headers.get('content-type') == 'application/json':
        request.body = get_json_multidict(request)
Beispiel #8
0
def get_data(request):
    return get_json_multidict(request) if request.is_json else request.form