Example #1
0
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)
Example #2
0
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)