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)
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)
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)
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)
def match(frame, pattern, entity_ids): matches = [] for k, v in itervalues(frame.get('data'), 'data'): rem = pattern.search(unicode(v)) if rem is None: continue for entity_id in entity_ids: if not Match.exists(frame['urn'], entity_id): field = k.split('.', 1).pop() match = Match.create(frame['urn'], field, entity_id) log.info("match: %s", match) matches.append(match) routing_key = 'indexing.%s.%s' % (frame['service'], frame['event']) publish(indexing_queue, routing_key, frame) return matches
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'})
def generate_frame(service_key, event_key, data): service = Service.by_key(service_key) if service is None: raise NotFound('No such service: %s' % service_key) event = Event.by_key(service, event_key) if event is None: raise NotFound('No such event: %s' % event_key) frame = { 'service': service_key, 'event': event_key, 'data': data.get('body') } headers = data.get('headers') frame.update({ 'source_url': parse_url(headers.get('X-Source-Location')), 'details_url': parse_url(headers.get('X-Details-Location')), 'hash': data_hash(frame), 'action_at': parse_datetime(headers.get('X-Action-Time')), 'submitted_at': datetime.utcnow() }) if not frame['action_at']: frame['action_at'] = frame['submitted_at'] else: frame['action_at'] = min(frame['action_at'], frame['submitted_at']) frame['urn'] = Frame.to_urn(frame) if Frame.by_hash(frame['hash']) is not None: raise BadRequest('Duplicate content, hash: %(hash)s' % frame) Frame.create(service, event, frame) store_frame(frame) db.session.commit() log.info("created: %(urn)s (%(hash)s)", frame) routing_key = 'matching.%s.%s' % (service_key, event_key) publish(matching_queue, routing_key, frame) routing_key = 'indexing.%s.%s' % (service_key, event_key) publish(indexing_queue, routing_key, frame) return frame['urn']
def create(): require.logged_in() entity = Entity.create(request.form, request.user) db.session.commit() publish(entity_queue, "entity.create", entity) return jsonify(entity)
def create(): require.logged_in() entity = Entity.create(request.form, request.user) db.session.commit() publish(entity_queue, 'entity.create', entity) return jsonify(entity)