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