コード例 #1
0
ファイル: players.py プロジェクト: waynet/TopHat-Platform
	def _doPut(self, dataObject):

		if  "id" and ("name" or "photo") in dataObject:
			try:

				PM = PlayerMapper()

				if dataObject["id"] is not None and dataObject["id"].isdigit():
					# Get the user by ID
					player = PM.find(dataObject["id"])

					if player is None:
						raise NotFound("The specified player type does not exist.")
				else:
					raise BadRequest("Argument provided for this player type is invalid.")

				if player.getUser() is self.user or self.user.accessLevel('super_user'):
					if "name" in dataObject:
						player.setName(dataObject["name"])

					if "photo" in dataObject:
						player.setPhoto(dataObject["photo"])

					PM.update(player)

				return self._response(player.dict(3), CODE.CREATED)
				
			except mdb.DatabaseError, e:
				raise ServerError("Unable to search the user database (%s)" % e.args[1])
コード例 #2
0
ファイル: players.py プロジェクト: waynet/TopHat-Platform
	def _doPost(self, dataObject):

		if "name" and "game" and "photo" in dataObject:
			try:
				GM = GameMapper()

				if dataObject["game"] is not None and str(dataObject["game"]).isdigit():
					# Get the user by ID
					game = GM.find(str(dataObject["game"]))

					if game is None:
						raise NotFound("The specified player type does not exist.")
				else:
					raise BadRequest("Argument provided for this player type is invalid.")

				print "GAME GOOD "+str(game)
				PM = PlayerMapper()

				player = Player()

				player.setName(dataObject["name"])
				player.setGame(game)
				player.setPhoto(dataObject["photo"])
				player.setUser(self.user)

				PM.insert(player)
				print "PLAYER GOOD "+str(player)

				return self._response(player.dict(3), CODE.CREATED)
				
			except mdb.DatabaseError, e:
				raise ServerError("Unable to search the user database (%s)" % e.args[1])
コード例 #3
0
ファイル: game.py プロジェクト: Specialkbyte/TopHat-Platform
	def getPlayers(self):
		# check have we gotten the list already
		if self._players is None:
			from Model.Mapper.playermapper import PlayerMapper
			PM = PlayerMapper()
			self._players = PM.getPlayersInGame(self)

		return self._players
コード例 #4
0
    def getPlayers(self):
        # check have we gotten the list already
        if self._players is None:
            from Model.Mapper.playermapper import PlayerMapper
            PM = PlayerMapper()
            self._players = PM.getPlayersInGame(self)

        return self._players
コード例 #5
0
ファイル: game.py プロジェクト: EoinF/TopHat-Platform
	def getPlayersInGame(self, depth=0):
		PM = PlayerMapper()
		players = PM.getPlayersInGame(self)

		playerslist = []
		
		if depth > 0 and players is not None: # only get if not excessive
			for player in players:
				playerslist.append(player.dict(depth-1))

		return playerslist
コード例 #6
0
ファイル: players.py プロジェクト: waynet/TopHat-Platform
	def _doDelete(self):
		if self.arg is None:
			raise BadRequest("You must provide the ID of the player to be deleted")
		
		PM = PlayerMapper()

		# get the user if it exists
		try:
			if self.arg.isdigit():
				# Get the user by ID
				player = PM.find(self.arg)
			else:
				raise BadRequest("Players 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])
コード例 #7
0
	def _doPost(self, dataObject):

		if "killer" and "victim" and "time" in dataObject:
			try:
				KM = KillMapper()
				GM = GameMapper()
				PM = PlayerMapper()

				if dataObject["killer"] is not None and dataObject["victim"] is not None:

					if "id" in dataObject["killer"] and "id" in dataObject["victim"]:
						# Get the user by ID
						killer = PM.find(dataObject["killer"]["id"])

						victim = PM.find(dataObject["victim"]["id"])

						try:
							proptime = parseDateTime(dataObject["time"])
						except:
							raise BadRequest("""Invalid Time object sent, acceptable formats: 	Acceptable formats are: "YYYY-MM-DD HH:MM:SS.ssssss+HH:MM",
							"YYYY-MM-DD HH:MM:SS.ssssss",
							"YYYY-MM-DD HH:MM:SS+HH:MM",
							"YYYY-MM-DD HH:MM:SS" """)

						if killer is None or victim is None:
							raise NotFound("Either the victim or the killer were invalid player objects")
					else:
						raise BadRequest("Arguments provided for this kill are invalid.")

				else:
					raise BadRequest("Arguments provided for this kill are invalid.")

				kill = Kill()

				kill.setKiller(killer)
				kill.setVictim(victim)
				kill.setVerified(False)

				kill.setTime(proptime)

				KM.insert(kill)

				return self._response(kill.dict(3), CODE.CREATED)
				
			except mdb.DatabaseError, e:
				raise ServerError("Unable to search the user database (%s)" % e.args[1])
コード例 #8
0
ファイル: mappertest2.py プロジェクト: waynet/TopHat-Platform
def main():
	from Common.config import TopHatConfig

	#setup the config
	kwargs = {"path":"/home/specialk/Dev/tophat/config.py"}
	TopHatConfig(**kwargs)

	# do the other stuff
	from Model.Mapper.gamemapper import GameMapper
	from Model.Mapper.usermapper import UserMapper
	from Model.Mapper.killmapper import KillMapper
	from Model.Mapper.playermapper import PlayerMapper
	from Model.Mapper.apitokenmapper import ApitokenMapper
	from Model.Mapper.objectwatcher import ObjectWatcher

	# Get All the current Users from the database
	UM = UserMapper()
	users = UM.findAll()
	for usr in users:
		print usr

	KM = KillMapper()
	kills = KM.findAll()

	for kill_ in kills:
		print kill_

	PM = PlayerMapper()
	players = PM.findAll()

	for player_ in players:
		print player_

	GM = GameMapper()
	games = GM.findAll()
	for game_ in games:
		print game_

	ATM = ApitokenMapper()
	tokens = ATM.findAll()
	for token in tokens:
		print token

	usr1 = UM.find(1)
コード例 #9
0
ファイル: players.py プロジェクト: waynet/TopHat-Platform
	def _doGet(self):
		try:
			
			PM = PlayerMapper()
			
			if self.arg is not None:
				if self.arg.isdigit():
					# Get the user by ID
					player = PM.find(self.arg)
				else:
					raise BadRequest("Players must be requested by ID")

				if player is not None:
					return self._response(player.dict(), CODE.OK)
				else:
					raise NotFound("This player does not exist")
			
			else:

				offset = 0
				players = PM.findAll(offset, offset+50)

				if players is None:
					raise NotFound("There are no players on this system.")

				playerslist = []

				for player in players:
					playerslist.append(player.dict())

				playerslist = {"players":playerslist, "pagination_offset":offset, "max_perpage": 50}

				return self._response(playerslist, CODE.OK)

		except mdb.DatabaseError, e:
				raise ServerError("Unable to search the player database (%s: %s)" % e.args[0], e.args[1])