Ejemplo n.º 1
0
def main():
    try:
        ns = NamespaceManager().get_namespace('card-app')
    except exceptions.NotFound:
        ns = NamespaceManager().create_namespace('card-app', creator)

    try:
        ns.get_collection('placements')
    except exceptions.NotFound:
        ns.create_collection('placements', creator, permissions={
            'anon-*': Permissions.CREATE
        })

    try:
        collection = ns.get_collection('cards')
    except exceptions.NotFound:
        collection = ns.create_collection('cards', creator, permissions={'*': Permissions.READ})

    with open(cards_loc) as cards:
        for card in json.load(cards)['cards']:
            try:
                entry = collection.read(card['id'])
                assert entry.data['content'] == card['content']
            except AssertionError:
                collection.update(card['id'], {'content': card['content']}, '')
            except exceptions.NotFound:
                collection.create(card['id'], {'content': card['content']}, '')
Ejemplo n.º 2
0
def main():
    try:
        ns = NamespaceManager().get_namespace('SHARE')
    except exceptions.NotFound:
        ns = NamespaceManager().create_namespace('SHARE', creator)

    try:
        ns.get_collection('curations')
    except exceptions.NotFound:
        ns.create_collection('curations', creator, permissions={
            '*': Permissions.READ,
            'tracked-SHARE|users-*': Permissions.CREATE
        })

    try:
        ns.get_collection('normalized')
    except exceptions.NotFound:
        ns.create_collection('normalized', creator, permissions={
            '*': Permissions.READ
        })

    try:
        ns.get_collection('authors')
    except exceptions.NotFound:
        ns.create_collection('authors', creator, permissions={
            '*': Permissions.READ
        })

    try:
        collection = ns.get_collection('users')
    except exceptions.NotFound:
        collection = ns.create_collection('users', creator, permissions={
            'tracked-SHARE|users-chris': Permissions.ADMIN
        }, schema={'type': 'jsonschema', 'schema': {
            'id': '/',
            'type': 'object',
            'properties': {
                'username': {
                    'id': 'username',
                    'type': 'string',
                    'pattern': '^\w{1,64}$'
                },
                'password': {
                    'id': 'password',
                    'type': 'string',
                    'pattern': '^\$2b\$1[0-3]\$\S{53}$'
                }
            },
            'required': ['username', 'password']
        }})

    try:
        collection.create('chris', {
            'username': '******',
            'password': '******'
        }, 'tracked-SHARE|users-chris')
    except exceptions.KeyExists:
        pass