22
33import re
44from abc import abstractmethod , ABCMeta
5+ from datetime import datetime
56
67from fastapi import APIRouter
8+ from pydantic import constr
79
8- from datetime import datetime
9- from auth_backend .base import Base , Token
10+ from auth_backend .base import Base
1011
1112
12- class Session (Token ):
13+ class Session (Base ):
14+ token : constr (min_length = 1 )
1315 expires : datetime
1416 id : int
1517 user_id : int
@@ -22,25 +24,26 @@ class AuthMethodMeta(metaclass=ABCMeta):
2224 router : APIRouter
2325 prefix : str
2426 tags : list [str ] = []
27+ fields : list [str ] = []
2528
2629 @classmethod
2730 def get_name (cls ) -> str :
2831 return re .sub (r"(?<!^)(?=[A-Z])" , "_" , cls .__name__ ).lower ()
2932
3033 def __init__ (self ):
3134 self .router = APIRouter ()
32- self .router .add_api_route ("/registration" , self .register , methods = ["POST" ])
33- self .router .add_api_route ("/login" , self .login , methods = ["POST" ], response_model = Session )
35+ self .router .add_api_route ("/registration" , self ._register , methods = ["POST" ])
36+ self .router .add_api_route ("/login" , self ._login , methods = ["POST" ], response_model = Session )
3437
3538 def __init_subclass__ (cls , ** kwargs ):
3639 AUTH_METHODS [cls .__name__ ] = cls
3740
3841 @staticmethod
3942 @abstractmethod
40- async def register (** kwargs ) -> object :
43+ async def _register (** kwargs ) -> object :
4144 raise NotImplementedError ()
4245
4346 @staticmethod
4447 @abstractmethod
45- async def login (** kwargs ) -> Session :
48+ async def _login (** kwargs ) -> Session :
4649 raise NotImplementedError ()
0 commit comments