from simile.static.simile.exhibit.extensions.curate.files.admin.exhibit import ExhibitError from simile.static.simile.exhibit.extensions.curate.files.admin import exhibit def dismiss(database, submissions, message): sub_id = message['sub_id'] if not sub_id: raise ExhibitError('must provide an id to dismiss') filtered_subs = [s for s in submissions if s['sub_id'] != sub_id] if len(submissions) is len(filtered_subs): raise ExhibitError("id %s is not a valid submission" % (sub_id)) # exhibit.save_submissions(filtered_subs) return { 'status': 'ok', 'result': filtered_subs } def admin_handler(database, submissions, message): command = message['command'] if command == 'dismiss': return dismiss(database, submissions, message) elif command == 'approve': raise ExhibitError('unimplemented') else: raise ExhibitError("can't' recognize command %s" % (command)) exhibit.execute_handler(admin_handler)
import uuid from simile.static.simile.exhibit.extensions.curate.files.admin.exhibit import ExhibitError from simile.static.simile.exhibit.extensions.curate.files.admin import exhibit valid_edit_types = ['added', 'modified'] def validate_message(msg): edits = msg['edits'] if not edits: raise ExhibitError('no edits were given') for i, edit in enumerate(edits): label = edit['label'] if not label: raise ExhibitError('edit #%s has no label' % (i+1)) t = edit['type'] if not t or t not in valid_edit_types: raise ExhibitError("invalid edit type '%s' for %s" % (t, label)) def submission_handler(database, submissions, message): message['sub_id'] = str(uuid.uuid4()).replace('-', '') validate_message(message) submissions.append(message) exhibit.save_submissions(submissions) return { 'status': 'ok' } exhibit.execute_handler(submission_handler)