def _doPut(self, dataObject): # The game creation should have no arguments. if self.arg is None: raise BadRequest("An ID must be supplied in order to update a game.") if "name" in dataObject: try: GM = QRzarGameMapper() if self.arg.isdigit(): # Get the user b ID game = GM.find(self.arg) else: raise BadRequest("Games must be requested by ID") if game is None: raise NotFound("There is no game identified by the number %s" % self.arg) # check user has the priviledges if not self.user.getId() == game.getCreator().getId() and not self.user.accessLevel('super_user'): raise Forbidden("You do not have sufficient privileges to delete this game.") game.setName(dataObject["name"]) return self._response(Depth.build(game, self.depth), CODE.CREATED) except mdb.DatabaseError, e: raise ServerError("Unable to search the user database (%s)" % e.args[1])
def main(): from Networking.protocolhandler import ProtocolHandler from Common.config import TopHatConfig #setup the config TopHatConfig(path="/home/specialk/Dev/tophat/config.py") from Model.Mapper.qrzargamemapper import QRzarGameMapper from Model.Mapper.usermapper import UserMapper # get UM = UserMapper() user = UM.find(1) GM = QRzarGameMapper() game = GM.find(1) # build from Model.depth import Depth import pprint dic = Depth.build(user, 3) pprint.pprint(dic) print "" print "***********************************************" print "" dic = Depth.build(game, 3) pprint.pprint(dic)
def _doDelete(self): if self.arg is None: raise BadRequest("You must provide the ID of the game to be deleted") GM = QRzarGameMapper() # get the user if it exists try: if self.arg.isdigit(): # Get the user by ID game = GM.find(self.arg) else: raise BadRequest("Games must be requested by ID") except mdb.DatabaseError, e: raise ServerError("Unable to search the user database (%s: %s)" % e.args[0], e.args[1])
def _doGet(self): try: GM = QRzarGameMapper() if self.arg is not None: if self.arg.isdigit(): # Get the user by ID game = GM.find(self.arg) elif self.arg == "types": return self._response({}, CODE.UNIMPLEMENTED) else: raise BadRequest("Games must be requested by ID") if game is not None: return self._response(Depth.build(game, self.depth), CODE.OK) else: raise NotFound("There is no game identified by the number %s" % self.arg) else: offset = 0 games = GM.findAll(offset, offset+50) if games is None: raise NotFound("There are no games on this system.") gameslist = [] for game in games: gameslist.append(Depth.build(game, self.depth)) gamedict = {"games":gameslist, "pagination_offset":offset, "max_perpage": 50} return self._response(gamedict, CODE.OK) except mdb.DatabaseError, e: raise ServerError("Unable to search the game database (%s: %s)" % e.args[0], e.args[1])