mirror of https://gitlab.com/litecord/litecord.git
schemas: add proper validation of voice_region type
This commit is contained in:
parent
2076beb5fa
commit
5a15f3caf2
|
|
@ -18,10 +18,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
import asyncio
|
||||||
from typing import Union, Dict, List
|
from typing import Union, Dict, List
|
||||||
|
|
||||||
from cerberus import Validator
|
from cerberus import Validator
|
||||||
from logbook import Logger
|
from logbook import Logger
|
||||||
|
from quart import current_app as app
|
||||||
|
|
||||||
from .errors import BadRequest
|
from .errors import BadRequest
|
||||||
from .permissions import Permissions
|
from .permissions import Permissions
|
||||||
|
|
@ -97,12 +99,9 @@ class LitecordValidator(Validator):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def _validate_type_voice_region(self, value: str) -> bool:
|
def _validate_type_voice_region(self, value: str) -> bool:
|
||||||
# TODO: call voice manager for regions instead of hardcoding
|
# NOTE: when this code is being ran, there is a small chance the
|
||||||
|
# app context injected by quart still exists
|
||||||
# I'm sure the context would be there at least in a basic level, so
|
return value.lower() in app.voice.lvsp.regions.keys()
|
||||||
# we can access the app.
|
|
||||||
return value.lower() in ('brazil', 'us-east', 'us-west',
|
|
||||||
'us-south', 'russia')
|
|
||||||
|
|
||||||
def _validate_type_verification_level(self, value: int) -> bool:
|
def _validate_type_verification_level(self, value: int) -> bool:
|
||||||
return _in_enum(VerificationLevel, value)
|
return _in_enum(VerificationLevel, value)
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ class LVSPManager:
|
||||||
self.assign = {}
|
self.assign = {}
|
||||||
|
|
||||||
# quick storage for Region dataclass instances.
|
# quick storage for Region dataclass instances.
|
||||||
self._regions = {}
|
self.regions = {}
|
||||||
|
|
||||||
self.app.sched.spawn(self._spawn())
|
self.app.sched.spawn(self._spawn())
|
||||||
|
|
||||||
|
|
@ -75,7 +75,7 @@ class LVSPManager:
|
||||||
|
|
||||||
for region in regions:
|
for region in regions:
|
||||||
# store it locally for region() function
|
# store it locally for region() function
|
||||||
self._regions[region.id] = region
|
self.regions[region.id] = region
|
||||||
|
|
||||||
self.app.loop.create_task(
|
self.app.loop.create_task(
|
||||||
self._spawn_region(region)
|
self._spawn_region(region)
|
||||||
|
|
@ -161,5 +161,5 @@ class LVSPManager:
|
||||||
self.assign[key] = hostname
|
self.assign[key] = hostname
|
||||||
|
|
||||||
def region(self, region_id: str) -> Optional[Region]:
|
def region(self, region_id: str) -> Optional[Region]:
|
||||||
"""Get a :class:`Region` instance:wq:wq"""
|
"""Get a :class:`Region` instance"""
|
||||||
return self._regions.get(region_id)
|
return self.regions.get(region_id)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue