def add_rule(request): """ Adds a rule for killing of animals. """ result_builder = ResultBuilder() post_data = request.POST maximum_hours = post_data.get('maximum_hours', None) maximum_kills = post_data.get('maximum_kills', None) if not (maximum_kills and maximum_hours): return result_builder.set_fail().set_message( "Necessary parameters missing").get_json_response() if get_or_none(Rule, maximum_kills=maximum_kills, maximum_hours=maximum_hours): return result_builder.set_fail().set_message( "Same Rule already exists").get_json_response() rule_created = Setters().set_rule(maximum_kills=maximum_kills, maximum_hours=maximum_hours) if rule_created: result = {} result['id'] = rule_created.id return result_builder.set_success(). \ set_message("Rule created"). \ set_results(result).get_json_response() return result_builder.set_fail().set_message( "Cannot create rule").get_json_response()
def register_dragon(request): """ Registers a dragon """ result_builder = ResultBuilder() post_data = request.POST dragon_name = post_data.get('dragon_name', None) if not dragon_name: return result_builder.set_fail().set_message( "Name of the dragon not provided").get_json_response() if get_or_none(Dragon, name=dragon_name): return result_builder.set_fail().set_message( "A dragon by this name already exists").get_json_response() dragon_created = Setters().set_dragon(dragon_name=dragon_name) if dragon_created: result = {} result['id'] = dragon_created.id return result_builder.set_success(). \ set_message("Dragon Registered"). \ set_results(result).get_json_response() return result_builder.set_fail().set_message( "Cannot Register Dragon").get_json_response()
def get_rule_by_id(self): """ Gets a rule by id :return: Rule() """ return get_or_none(Rule, id=self.id, status=Rule.ACTIVE)
def update_last_timestamp(self, last_timestamp): dragon = get_or_none(Dragon, id=id) if not dragon: return None dragon.last_timestamp = last_timestamp dragon.save() return dragon
def update_killed_animals(self, animals_killed): dragon = get_or_none(Dragon, id=id) if not dragon: return None dragon.animals_killed = animals_killed dragon.save() return dragon
def get_dragon_by_id(self, id): """ Gets a dragon by id. :param id: :return: Dragon() """ if not id: return None return get_or_none(Dragon, name=id)