Ejemplo n.º 1
0
def delete(id):
    require.logged_in()
    entity = obj_or_404(Entity.by_user_and_id(request.user, id))
    publish(entity_queue, "entity.delete", entity)
    entity.delete()
    db.session.commit()
    return jsonify({"status": "gone"}, status=410)
Ejemplo n.º 2
0
def delete(id):
    require.logged_in()
    entity = obj_or_404(Entity.by_user_and_id(request.user, id))
    publish(entity_queue, 'entity.delete', entity)
    entity.delete()
    db.session.commit()
    return jsonify({'status': 'gone'}, status=410)
Ejemplo n.º 3
0
def status():
    return jsonify({
        'logged_in': logged_in(),
        'logout_uri': url_for('.logout', _external=True),
        'twitter_uri': url_for('.twitter_login', _external=True),
        'facebook_uri': url_for('.facebook_login', _external=True),
        'user': request.user
    })
Ejemplo n.º 4
0
def handle_invalid(exc):
    body = {
        'status': 400,
        'name': 'Invalid Data',
        'description': unicode(exc),
        'errors': exc.unpack_errors()
    }
    return jsonify(body, status=400)
Ejemplo n.º 5
0
def update(id):
    require.logged_in()
    entity = obj_or_404(Entity.by_user_and_id(request.user, id))
    data = {"old": entity.to_dict()}
    entity.update(request.form)
    db.session.commit()
    data["new"] = entity
    publish(entity_queue, "entity.update", data)
    return jsonify(entity)
Ejemplo n.º 6
0
def update(id):
    require.logged_in()
    entity = obj_or_404(Entity.by_user_and_id(request.user, id))
    data = {'old': entity.to_dict()}
    entity.update(request.form)
    db.session.commit()
    data['new'] = entity
    publish(entity_queue, 'entity.update', data)
    return jsonify(entity)
Ejemplo n.º 7
0
def index(service_key):
    service = obj_or_404(Service.by_key(service_key))
    require.service.view(service)
    q = Event.all().filter_by(service=service)
    result = {'count': q.count()}
    q = q.limit(get_limit())
    q = q.offset(get_offset())
    result['results'] = q
    return jsonify(result, refs=True)
Ejemplo n.º 8
0
def submit(service_key, event_key):
    if request.json is None:
        raise BadRequest('Data must be submitted as JSON.')

    service = obj_or_404(Service.by_key(service_key))
    require.service.publish(service)

    data = {
        'body': request.json,
        'headers': dict(request.headers.items())
    }

    if arg_bool('sync'):
        urn = generate_frame(service_key, event_key, data)
        return jsonify({'status': 'ok', 'urn': urn})
    else:
        routing_key = 'inbound.%s.%s' % (service_key, event_key)
        publish(inbound_queue, routing_key, data)
        return jsonify({'status': 'queued'})
Ejemplo n.º 9
0
def handle_exceptions(exc):
    """ Re-format exceptions to JSON. """
    if hasattr(exc, 'code'):
        body = {'status': exc.code,
                'name': exc.name,
                'description': exc.get_description(request.environ)}
    else:
        body = {'description': unicode(exc)}
    return jsonify(body, status=exc.code,
                   headers=exc.get_headers(request.environ))
Ejemplo n.º 10
0
def get(urn):
    # TODO: authz checks.
    data = load_frame(urn)
    if data is None:
        raise NotFound('Frame: %s' % urn)
    headers = {
        'X-Backend-Location': frame_url(urn),
        'ETag': data['hash'],
        'Cache-Control': 'public; max-age: 8460000'
    }
    return jsonify(data, headers=headers)
Ejemplo n.º 11
0
def handle_exceptions(exc):
    """ Re-format exceptions to JSON. """
    if hasattr(exc, 'code'):
        body = {
            'status': exc.code,
            'name': exc.name,
            'description': exc.get_description(request.environ)
        }
    else:
        body = {'description': unicode(exc)}
    return jsonify(body,
                   status=exc.code,
                   headers=exc.get_headers(request.environ))
Ejemplo n.º 12
0
def query_pager(q, route, paginate=True, count=None, transform=lambda x: x, data=None, **kw):
    data = data or {}
    count = count or q.count()
    limit = get_limit()
    offset = get_offset()
    if paginate:
        results = q.offset(offset).limit(limit).all()
    else:
        results = q
    url = url_for(route, _external=True, **kw)
    data.update({
        'count': count,
        'limit': limit,
        'offset': offset,
        'previous': prev_url(url, count, offset, limit),
        'next': next_url(url, count, offset, limit),
        'results': map(transform, results)
    })
    return jsonify(data, refs=True)
Ejemplo n.º 13
0
def get(id):
    user = obj_or_404(User.by_id(id))
    #require.service.view(service)
    return jsonify(user)
Ejemplo n.º 14
0
def get(service_key, event_key):
    service = obj_or_404(Service.by_key(service_key))
    require.service.view(service)
    event = obj_or_404(service.events.filter_by(key=event_key).first())
    return jsonify(event)
Ejemplo n.º 15
0
def create():
    require.logged_in()
    entity = Entity.create(request.form, request.user)
    db.session.commit()
    publish(entity_queue, "entity.create", entity)
    return jsonify(entity)
Ejemplo n.º 16
0
def category_index():
    categories = Category.all()
    return jsonify({
        'results': categories,
        'count': len(categories)
    })
Ejemplo n.º 17
0
def category_get(key):
    category = obj_or_404(Category.by_key(key))
    return jsonify(category)
Ejemplo n.º 18
0
def get(id):
    require.logged_in()
    entity = obj_or_404(Entity.by_user_and_id(request.user, id))
    return jsonify(entity)
Ejemplo n.º 19
0
def category_get(key):
    category = obj_or_404(Category.by_key(key))
    return jsonify(category)
Ejemplo n.º 20
0
def category_index():
    categories = Category.all()
    return jsonify({"results": categories, "count": len(categories)})
Ejemplo n.º 21
0
def profile_get():
    require.logged_in()
    data = request.user.to_dict()
    data['api_key'] = request.user.api_key
    data['email'] = request.user.email
    return jsonify(data)
Ejemplo n.º 22
0
def handle_invalid(exc):
    body = {'status': 400,
            'name': 'Invalid Data',
            'description': unicode(exc),
            'errors': exc.unpack_errors()}
    return jsonify(body, status=400)
Ejemplo n.º 23
0
def get(key):
    service = obj_or_404(Service.by_key(key))
    require.service.view(service)
    return jsonify(service)
Ejemplo n.º 24
0
def get(id):
    require.logged_in()
    entity = obj_or_404(Entity.by_user_and_id(request.user, id))
    return jsonify(entity)
Ejemplo n.º 25
0
def create():
    require.logged_in()
    entity = Entity.create(request.form, request.user)
    db.session.commit()
    publish(entity_queue, 'entity.create', entity)
    return jsonify(entity)