示例#1
0
def pending_list_show(options):
    with Session() as session:
        try:
            pending_list = get_list_by_exact_name(options.list_name, session=session)
        except NoResultFound:
            console('Could not find pending list with name {}'.format(options.list_name))
            return

        try:
            entry = get_entry_by_id(pending_list.id, int(options.entry), session=session)
        except NoResultFound:
            console('Could not find matching pending entry with ID {} in list `{}`'.format(int(options.entry),
                                                                                           options.list_name))
            return
        except ValueError:
            entry = get_entry_by_title(pending_list.id, options.entry, session=session)
            if not entry:
                console('Could not find matching pending entry with title `{}` in list `{}`'.format(options.entry,
                                                                                                    options.list_name))
                return
        header = ['Field name', 'Value']
        table_data = [header]
        for k, v in sorted(entry.entry.items()):
            table_data.append([k, str(v)])
    table = TerminalTable(options.table_type, table_data, wrap_columns=[1])
    table.table.justify_columns[0] = 'center'
    try:
        console(table.output)
    except TerminalTableError as e:
        console('ERROR: %s' % str(e))
示例#2
0
def pending_list_show(options):
    with Session() as session:
        try:
            pending_list = plugin_pending_list.get_list_by_exact_name(options.list_name, session=session)
        except NoResultFound:
            console('Could not find pending list with name {}'.format(options.list_name))
            return

        try:
            entry = plugin_pending_list.get_entry_by_id(pending_list.id, int(options.entry), session=session)
        except NoResultFound:
            console('Could not find matching pending entry with ID {} in list `{}`'.format(int(options.entry),
                                                                                           options.list_name))
            return
        except ValueError:
            entry = plugin_pending_list.get_entry_by_title(pending_list.id, options.entry, session=session)
            if not entry:
                console('Could not find matching pending entry with title `{}` in list `{}`'.format(options.entry,
                                                                                                    options.list_name))
                return
        header = ['Field name', 'Value']
        table_data = [header]
        for k, v in sorted(entry.entry.items()):
            table_data.append([k, str(v)])
    table = TerminalTable(options.table_type, table_data, wrap_columns=[1])
    table.table.justify_columns[0] = 'center'
    try:
        console(table.output)
    except TerminalTableError as e:
        console('ERROR: %s' % str(e))
示例#3
0
def pending_list_approve(options, approve=None):
    with Session() as session:
        try:
            entry_list = plugin_pending_list.get_list_by_exact_name(options.list_name)
        except NoResultFound:
            console('Could not find pending list with name `{}`'.format(options.list_name))
            return
        try:
            db_entry = plugin_pending_list.get_entry_by_id(entry_list.id, int(options.entry), session=session)
        except NoResultFound:
            console('Could not find matching entry with ID {} in list `{}`'.format(int(options.entry),
                                                                                   options.list_name))
            return
        except ValueError:
            db_entry = plugin_pending_list.get_entry_by_title(entry_list.id, options.entry, session=session)
            if not db_entry:
                console('Could not find matching entry with title `{}` in list `{}`'.format(options.entry,
                                                                                            options.list_name))
                return
        approve_text = 'approved' if approve else 'rejected'
        if (db_entry.approved is True and approve is True) or (db_entry.approved is False and approve is False):
            console('entry {} is already {}'.format(db_entry.title, approve_text))
            return
        db_entry.approved = approve
        console('Successfully marked pending entry {} as {}'.format(db_entry.title, approve_text))
示例#4
0
def pending_list_approve(options, approve=None):
    with Session() as session:
        try:
            entry_list = get_list_by_exact_name(options.list_name)
        except NoResultFound:
            console('Could not find pending list with name `{}`'.format(options.list_name))
            return
        try:
            db_entry = get_entry_by_id(entry_list.id, int(options.entry), session=session)
        except NoResultFound:
            console('Could not find matching entry with ID {} in list `{}`'.format(int(options.entry),
                                                                                   options.list_name))
            return
        except ValueError:
            db_entry = get_entry_by_title(entry_list.id, options.entry, session=session)
            if not db_entry:
                console('Could not find matching entry with title `{}` in list `{}`'.format(options.entry,
                                                                                            options.list_name))
                return
        approve_text = 'approved' if approve else 'rejected'
        if (db_entry.approved is True and approve is True) or (db_entry.approved is False and approve is False):
            console('entry {} is already {}'.format(db_entry.title, approve_text))
            return
        db_entry.approved = approve
        console('Successfully marked pending entry {} as {}'.format(db_entry.title, approve_text))
示例#5
0
    def get(self, list_id, entry_id, session=None):
        """ Get an entry by list ID and entry ID """
        try:
            entry = get_entry_by_id(list_id=list_id, entry_id=entry_id, session=session)
        except NoResultFound:
            raise NotFoundError('could not find entry with id %d in list %d' % (entry_id, list_id))

        return jsonify(entry.to_dict())
示例#6
0
 def delete(self, list_id, entry_id, session=None):
     """ Delete an entry by list ID and entry ID """
     try:
         entry = get_entry_by_id(list_id=list_id, entry_id=entry_id, session=session)
     except NoResultFound:
         raise NotFoundError('could not find entry with id %d in list %d' % (entry_id, list_id))
     log.debug('deleting movie %d', entry.id)
     session.delete(entry)
     return success_response('successfully deleted entry %d' % entry.id)
示例#7
0
    def get(self, list_id, entry_id, session=None):
        """ Get an entry by list ID and entry ID """
        try:
            entry = get_entry_by_id(list_id=list_id,
                                    entry_id=entry_id,
                                    session=session)
        except NoResultFound:
            raise NotFoundError('could not find entry with id %d in list %d' %
                                (entry_id, list_id))

        return jsonify(entry.to_dict())
示例#8
0
 def delete(self, list_id, entry_id, session=None):
     """ Delete an entry by list ID and entry ID """
     try:
         entry = get_entry_by_id(list_id=list_id,
                                 entry_id=entry_id,
                                 session=session)
     except NoResultFound:
         raise NotFoundError('could not find entry with id %d in list %d' %
                             (entry_id, list_id))
     log.debug('deleting movie %d', entry.id)
     session.delete(entry)
     return success_response('successfully deleted entry %d' % entry.id)
示例#9
0
    def put(self, list_id, entry_id, session=None):
        """Sets entry object's pending status"""
        try:
            entry = get_entry_by_id(list_id=list_id, entry_id=entry_id, session=session)
        except NoResultFound:
            raise NotFoundError('could not find entry with id %d in list %d' % (entry_id, list_id))
        data = request.json
        approved = data['operation'] == 'approve'
        operation_text = 'approved' if approved else 'pending'
        if entry.approved is approved:
            raise BadRequest('Entry with id {} is already {}'.format(entry_id, operation_text))

        entry.approved = approved
        session.commit()
        rsp = jsonify(entry.to_dict())
        rsp.status_code = 201
        return rsp
示例#10
0
    def put(self, list_id, entry_id, session=None):
        """Sets entry object's pending status"""
        try:
            entry = get_entry_by_id(list_id=list_id,
                                    entry_id=entry_id,
                                    session=session)
        except NoResultFound:
            raise NotFoundError('could not find entry with id %d in list %d' %
                                (entry_id, list_id))
        data = request.json
        approved = data['operation'] == 'approve'
        operation_text = 'approved' if approved else 'pending'
        if entry.approved is approved:
            raise BadRequest('Entry with id {} is already {}'.format(
                entry_id, operation_text))

        entry.approved = approved
        session.commit()
        rsp = jsonify(entry.to_dict())
        rsp.status_code = 201
        return rsp
示例#11
0
def pending_list_del(options):
    with Session() as session:
        try:
            entry_list = plugin_pending_list.get_list_by_exact_name(options.list_name)
        except NoResultFound:
            console('Could not find pending list with name `{}`'.format(options.list_name))
            return
        try:
            db_entry = plugin_pending_list.get_entry_by_id(entry_list.id, int(options.entry), session=session)
        except NoResultFound:
            console(
                'Could not find matching entry with ID {} in list `{}`'.format(int(options.entry),
                                                                               options.list_name))
            return
        except ValueError:
            db_entry = plugin_pending_list.get_entry_by_title(entry_list.id, options.entry, session=session)
            if not db_entry:
                console(
                    'Could not find matching entry with title `{}` in list `{}`'.format(options.entry,
                                                                                        options.list_name))
                return
        console('Removing entry `{}` from list {}'.format(db_entry.title, options.list_name))
        session.delete(db_entry)
示例#12
0
def pending_list_del(options):
    with Session() as session:
        try:
            entry_list = get_list_by_exact_name(options.list_name)
        except NoResultFound:
            console('Could not find pending list with name `{}`'.format(options.list_name))
            return
        try:
            db_entry = get_entry_by_id(entry_list.id, int(options.entry), session=session)
        except NoResultFound:
            console(
                'Could not find matching entry with ID {} in list `{}`'.format(int(options.entry),
                                                                               options.list_name))
            return
        except ValueError:
            db_entry = get_entry_by_title(entry_list.id, options.entry, session=session)
            if not db_entry:
                console(
                    'Could not find matching entry with title `{}` in list `{}`'.format(options.entry,
                                                                                        options.list_name))
                return
        console('Removing entry `{}` from list {}'.format(db_entry.title, options.list_name))
        session.delete(db_entry)