コード例 #1
0
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()
コード例 #2
0
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()
コード例 #3
0
    def get_rule_by_id(self):
        """
        Gets a rule by id

        :return: Rule()
        """
        return get_or_none(Rule, id=self.id, status=Rule.ACTIVE)
コード例 #4
0
 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
コード例 #5
0
 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
コード例 #6
0
    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)