def entry_list_add(options): with Session() as session: try: entry_list = plugin_entry_list.get_list_by_exact_name(options.list_name, session=session) except NoResultFound: console('Could not find entry list with name `{}`, creating'.format(options.list_name)) entry_list = plugin_entry_list.EntryListList(name=options.list_name) session.add(entry_list) session.merge(entry_list) session.commit() title = options.entry_title entry = {'title': options.entry_title, 'url': options.url} db_entry = plugin_entry_list.get_entry_by_title(list_id=entry_list.id, title=title, session=session) if db_entry: console("Entry with the title `{}` already exist with list `{}`. Will replace identifiers if given".format( title, entry_list.name)) output = 'Successfully updated entry `{}` to entry list `{}` '.format(title, entry_list.name) else: console("Adding entry with title `{}` to list `{}`".format(title, entry_list.name)) db_entry = plugin_entry_list.EntryListEntry(entry=entry, entry_list_id=entry_list.id) session.add(db_entry) output = 'Successfully added entry `{}` to entry list `{}` '.format(title, entry_list.name) if options.attributes: console('Adding attributes to entry `{}`'.format(title)) for identifier in options.attributes: for k, v in identifier.items(): entry[k] = v db_entry.entry = entry console(output)
def post(self, list_id, session=None): """ Create a new entry object""" try: list = el.get_list_by_id(list_id=list_id, session=session) except NoResultFound: return { 'status': 'error', 'message': 'list_id %d does not exist' % list_id }, 404 data = request.json title = data.get('title') entry_object = el.get_entry_by_title(list_id=list_id, title=title, session=session) if entry_object: return { 'status': 'error', 'message': "entry with title '%s' already exists" % title }, 500 entry_object = el.EntryListEntry(entry=data, entry_list_id=list_id) session.add(entry_object) session.commit() response = jsonify({'entry': entry_object.to_dict()}) response.status_code = 201 return response
def post(self, list_id, session=None): """ Create a new entry object""" try: el.get_list_by_id(list_id=list_id, session=session) except NoResultFound: raise NotFoundError('list_id %d does not exist' % list_id) data = request.json title = data.get('title') entry_object = el.get_entry_by_title(list_id=list_id, title=title, session=session) if entry_object: raise Conflict('entry with title \'%s\' already exists' % title) entry_object = el.EntryListEntry(entry=data, entry_list_id=list_id) session.add(entry_object) session.commit() response = jsonify(entry_object.to_dict()) response.status_code = 201 return response