from typing import Optional
from olc.bean.match_wrapper import MatchWrapper
from olc.utils.empty_checker import EmptyChecker
class OlcControlResult:
def __init__(
self,
block: bool = False,
block_msg: str = "",
block_rule: Optional['MatchWrapper'] = None,
):
self.block = block
self.block_msg = block_msg
self.block_rule = block_rule
self.tokens_to_deduct = 0
def __repr__(self):
return (
f"OlcControlResult(block = {self.block}, "
f"block_mgs = {self.block_msg}, "
f"block_rule = {self.block_rule}, "
f"tokens_to_deduct = {self.tokens_to_deduct})"
)
def __str__(self):
return self.__repr__()
def set_rule_and_message(self, match_wrapper: MatchWrapper):
self.block_rule = match_wrapper
msg = match_wrapper.policy.block_msg
if EmptyChecker.is_empty_string(msg):
msg = "block by olc"
self.block_msg = msg
def set_tokens_to_deduct(self, size: int):
self.tokens_to_deduct = size