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']}, '')
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