refactor: FSM resolve_state become public, removed redundant elif

This commit is contained in:
Oleg A 2021-03-25 15:16:03 +03:00
parent 2d49907e74
commit 45405f979c

View file

@ -283,19 +283,22 @@ class FSMContext:
return FSMContextProxy(self)
@staticmethod
def _resolve_state(value):
def resolve_state(value):
from .filters.state import State
if value is None:
return
elif isinstance(value, str):
if isinstance(value, str):
return value
elif isinstance(value, State):
if isinstance(value, State):
return value.state
return str(value)
async def get_state(self, default: typing.Optional[str] = None) -> typing.Optional[str]:
return await self.storage.get_state(chat=self.chat, user=self.user, default=self._resolve_state(default))
return await self.storage.get_state(chat=self.chat, user=self.user, default=self.resolve_state(default))
async def get_data(self, default: typing.Optional[str] = None) -> typing.Dict:
return await self.storage.get_data(chat=self.chat, user=self.user, default=default)
@ -304,7 +307,7 @@ class FSMContext:
await self.storage.update_data(chat=self.chat, user=self.user, data=data, **kwargs)
async def set_state(self, state: typing.Optional[typing.AnyStr] = None):
await self.storage.set_state(chat=self.chat, user=self.user, state=self._resolve_state(state))
await self.storage.set_state(chat=self.chat, user=self.user, state=self.resolve_state(state))
async def set_data(self, data: typing.Dict = None):
await self.storage.set_data(chat=self.chat, user=self.user, data=data)