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))
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))
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))
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))
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())
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)
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
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
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)
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)