Commit 513baca8 authored by 陈涛's avatar 陈涛

判断节点用正则

parent f8f73509
import re
from typing import List
from motor.core import AgnosticCollection
import dependencies
from exception.api import APIError
from exception.db import ExistDataError, NotFundError
......@@ -19,6 +18,14 @@ from tools.jwt_tools import User
router = APIRouter()
def str_not_numbers(string_with_numbers: str) -> bool:
flag = True
regex_pattern = r"^\d+$"
if re.match(regex_pattern, string_with_numbers):
flag = False
return flag
@router.post('/',
response_model=BaseResponse,
summary='绑定节点',
......@@ -29,10 +36,7 @@ async def subscribe(
fund_collect: AgnosticCollection = Depends(dependencies.get_fund_collect),
beacon_service: BeaconChaService = Depends(BeaconChaService),
):
try:
int(bind_node.pub_key)
raise RequestInvalidParamsError()
except Exception as e:
assert str_not_numbers(bind_node.pub_key), RequestInvalidParamsError()
node_detail = await beacon_service.get_validator(index_or_pubkey=bind_node.pub_key)
db_data = BaseNode(**bind_node.dict(), index=node_detail.validator_index)
# 限制staking基金才可绑定节点
......@@ -76,10 +80,7 @@ async def get_node_info(
beacon_service: BeaconChaService = Depends(BeaconChaService),
fund_collect: AgnosticCollection = Depends(dependencies.get_fund_collect)
):
try:
int(pub_key)
raise RequestInvalidParamsError()
except Exception as e:
assert str_not_numbers(pub_key), RequestInvalidParamsError()
query = {'id': fund_id, 'user_id': user.id, 'fund_type': FundType.staking, f"nodes.{pub_key}": {"$exists": True}}
fund = await fund_collect.find_one(query)
assert fund, NotFundError('未绑定该节点')
......@@ -99,10 +100,7 @@ async def get_node_deposit(
beacon_service: BeaconChaService = Depends(BeaconChaService),
fund_collect: AgnosticCollection = Depends(dependencies.get_fund_collect)
):
try:
int(pub_key)
raise RequestInvalidParamsError()
except Exception as e:
assert str_not_numbers(pub_key), RequestInvalidParamsError()
query = {'id': fund_id, 'user_id': user.id, 'fund_type': FundType.staking, f"nodes.{pub_key}": {"$exists": True}}
fund = await fund_collect.find_one(query)
assert fund, NotFundError('未绑定该节点')
......@@ -123,10 +121,7 @@ async def get_node_blocks(
beacon_service: BeaconChaService = Depends(BeaconChaService),
fund_collect: AgnosticCollection = Depends(dependencies.get_fund_collect)
):
try:
int(pub_key)
raise RequestInvalidParamsError()
except Exception as e:
assert str_not_numbers(pub_key), RequestInvalidParamsError()
start = (page.page - 1) * page.page_size
query = {'id': fund_id, 'user_id': user.id, 'fund_type': FundType.staking, f"nodes.{pub_key}": {"$exists": True}}
fund = await fund_collect.find_one(query)
......@@ -150,10 +145,7 @@ async def get_node_income(
beacon_service: BeaconChaService = Depends(BeaconChaService),
fund_collect: AgnosticCollection = Depends(dependencies.get_fund_collect)
):
try:
int(pub_key)
raise RequestInvalidParamsError()
except Exception as e:
assert str_not_numbers(pub_key), RequestInvalidParamsError()
query = {'id': fund_id, 'user_id': user.id, 'fund_type': FundType.staking, f"nodes.{pub_key}": {"$exists": True}}
fund = await fund_collect.find_one(query)
assert fund, NotFundError('未绑定该节点')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment