~ken-vandine/friends/persist_changes

« back to all changes in this revision

Viewing changes to friends/utils/base.py

  • Committer: Tarmac
  • Author(s): Robert Bruce Park
  • Date: 2013-04-03 02:48:51 UTC
  • mfrom: (174.1.4 model-cleanup)
  • Revision ID: tarmac-20130403024851-5apc5mnes5x2wo57
Thread replies properly, and fix up likes/unlikes to modify model data upon success.

Approved by PS Jenkins bot, Ken VanDine.

Show diffs side-by-side

added added

removed removed

Lines of Context:
503
503
            message = None
504
504
        raise FriendsError(message or str(error))
505
505
 
 
506
    def _calculate_row_cell(self, message_id, column_name):
 
507
        """Find x,y coords in the model based on message_id and column_name."""
 
508
        row_id = _seen_ids.get(message_id)
 
509
        col_idx = COLUMN_INDICES.get(column_name)
 
510
        if None in (row_id, col_idx):
 
511
            raise FriendsError('Cell could not be found.')
 
512
        return row_id, col_idx
 
513
 
506
514
    def _fetch_cell(self, message_id, column_name):
507
515
        """Find a column value associated with a specific message_id."""
508
 
        row_id = _seen_ids.get(message_id)
509
 
        col_idx = COLUMN_INDICES.get(column_name)
510
 
        if None not in (row_id, col_idx):
511
 
            row = Model.get_row(row_id)
512
 
            return row[col_idx]
513
 
        else:
514
 
            raise FriendsError('Value could not be found.')
 
516
        row_id, col_idx = self._calculate_row_cell(message_id, column_name)
 
517
        return Model.get_row(row_id)[col_idx]
 
518
 
 
519
    def _set_cell(self, message_id, column_name, value):
 
520
        """Set a column value associated with a specific message_id."""
 
521
        row_id, col_idx = self._calculate_row_cell(message_id, column_name)
 
522
        Model.get_row(row_id)[col_idx] = value
 
523
 
 
524
    def _inc_cell(self, message_id, column_name):
 
525
        """Increment a column value associated with a specific message_id."""
 
526
        row_id, col_idx = self._calculate_row_cell(message_id, column_name)
 
527
        Model.get_row(row_id)[col_idx] += 1
 
528
 
 
529
    def _dec_cell(self, message_id, column_name):
 
530
        """Decrement a column value associated with a specific message_id."""
 
531
        row_id, col_idx = self._calculate_row_cell(message_id, column_name)
 
532
        Model.get_row(row_id)[col_idx] -= 1
515
533
 
516
534
    def _new_book_client(self, source):
517
535
        client = EBook.BookClient.new(source)