Source code for trellopy.backend

import pymongo


[docs]class Operator(object): """ This is the database operator. Currently only supports MongoDB. """
[docs] def __init__(self): """ Make a connection to the database """ self._client = pymongo.MongoClient('mongodb://localhost:27017') self._db = self._client.potatodb self.boards = self._db.boards self.members = self._db.members self.boards.create_index('name', unique=True) self.members.create_index('name', unique=True)
[docs] def save_board(self, board_dict): """ Save the board to the database """ self.boards.insert(board_dict)
[docs] def get_board(self, board_name): """ Get a board from the database """ spec = {'name': board_name} try: return self.boards.find_one(spec) except Exception, e: print "Could not find board with name", board_name return False
[docs] def update_board(self, board_data, board_name=None): """ Update the board in the database """ spec = {} if board_name: spec['name'] = board_name else: spec['name'] = board_data['name'] self.boards.update(spec, board_data)
[docs] def gimme_everything(self): """ Fetch every board in the database """ return self.boards.find()
[docs] def gimme_everybody(self): """ Fetch every member in the database """ return self.members.find()
[docs] def new_member(self, member_dict): """ Add a member to the database """ self.members.insert(member_dict)
[docs] def update_member(self, member_data, member_name=None): """ Update a member in database """ spec = {} if member_name: spec['name'] = member_name else: spec['name'] = member_data['name'] self.members.update(spec, member_data)
[docs] def get_member(self, member_name): """ Get a member from the database """ spec = {'name': member_name} try: return self.members.find_one(spec) except Exception, e: print "Could not find member with name", member_name return False