Work on API tokens
This commit is contained in:
@@ -7,7 +7,7 @@ from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationEr
|
|||||||
from app.db_sql import redis_lookup_id_random
|
from app.db_sql import redis_lookup_id_random
|
||||||
from app.lib_general import *
|
from app.lib_general import *
|
||||||
|
|
||||||
from .common_field_schema import base_fields, default_num_bytes
|
from app.models.common_field_schema import base_fields, default_num_bytes
|
||||||
|
|
||||||
|
|
||||||
class Api_Base(BaseModel):
|
class Api_Base(BaseModel):
|
||||||
@@ -15,8 +15,11 @@ class Api_Base(BaseModel):
|
|||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
id: Optional[int]
|
id: Optional[int]
|
||||||
|
|
||||||
name: Optional[str]
|
name: Optional[str]
|
||||||
|
|
||||||
secret_key: Optional[str]
|
secret_key: Optional[str]
|
||||||
|
|
||||||
enable: Optional[bool]
|
enable: Optional[bool]
|
||||||
enable_from: Optional[datetime.datetime] = Field(
|
enable_from: Optional[datetime.datetime] = Field(
|
||||||
default_factory = lambda:datetime.datetime.now,
|
default_factory = lambda:datetime.datetime.now,
|
||||||
@@ -26,9 +29,17 @@ class Api_Base(BaseModel):
|
|||||||
temporary_token: str = Field(
|
temporary_token: str = Field(
|
||||||
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
||||||
)
|
)
|
||||||
expire_on: Optional[datetime.datetime] = Field(
|
# expire_on: datetime.datetime = Field(
|
||||||
default_factory=datetime.datetime.now,
|
# default_factory=datetime.datetime.now,
|
||||||
|
# )
|
||||||
|
expire_on: datetime.datetime = Field(
|
||||||
|
default_factory = lambda:datetime.datetime.now() + datetime.timedelta(seconds=120),
|
||||||
)
|
)
|
||||||
|
# expire_on: Optional[datetime.datetime] = Field(
|
||||||
|
# default_factory = lambda:datetime.datetime.now,
|
||||||
|
# )
|
||||||
|
|
||||||
|
# expire_on: Optional[datetime.datetime] # = datetime.datetime.now
|
||||||
|
|
||||||
created_on: Optional[datetime.datetime] = None
|
created_on: Optional[datetime.datetime] = None
|
||||||
updated_on: Optional[datetime.datetime] = None
|
updated_on: Optional[datetime.datetime] = None
|
||||||
@@ -37,6 +48,7 @@ class Api_Base(BaseModel):
|
|||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
underscore_attrs_are_private = True
|
underscore_attrs_are_private = True
|
||||||
|
allow_population_by_field_name = True
|
||||||
#fields = base_fields
|
#fields = base_fields
|
||||||
|
|
||||||
#Account_Base.update_forward_refs()
|
#Account_Base.update_forward_refs()
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import datetime
|
import datetime
|
||||||
#from datetime import datetime, time, timedelta
|
|
||||||
from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, Response, status
|
from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, Response, status
|
||||||
from pydantic import BaseModel, EmailStr, Field
|
from pydantic import BaseModel, EmailStr, Field
|
||||||
from typing import Dict, List, Optional, Set, Union
|
from typing import Dict, List, Optional, Set, Union
|
||||||
@@ -139,7 +138,7 @@ async def get_api_temp_token(
|
|||||||
x_aether_api_token_expire_on: Optional[str] = Header(None),
|
x_aether_api_token_expire_on: Optional[str] = Header(None),
|
||||||
response: Response = Response,
|
response: Response = Response,
|
||||||
):
|
):
|
||||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
table_name_select = 'api_key'
|
table_name_select = 'api_key'
|
||||||
@@ -152,12 +151,13 @@ async def get_api_temp_token(
|
|||||||
else:
|
else:
|
||||||
return mk_resp(data=False, status_code=400, response=response) # Bad Request
|
return mk_resp(data=False, status_code=400, response=response) # Bad Request
|
||||||
|
|
||||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
if sql_result:
|
if sql_result:
|
||||||
log.debug(type(sql_result))
|
log.debug(type(sql_result))
|
||||||
log.debug(sql_result)
|
log.debug(sql_result)
|
||||||
|
|
||||||
base_name = Api_Base
|
base_name = Api_Base
|
||||||
|
log.debug(base_name)
|
||||||
resp_data = base_name(**sql_result).dict(by_alias=True, exclude_unset=False)
|
resp_data = base_name(**sql_result).dict(by_alias=True, exclude_unset=False)
|
||||||
log.debug(resp_data)
|
log.debug(resp_data)
|
||||||
|
|
||||||
@@ -166,15 +166,6 @@ async def get_api_temp_token(
|
|||||||
log.debug(sql_result)
|
log.debug(sql_result)
|
||||||
return mk_resp(data=False, status_code=404, response=response)
|
return mk_resp(data=False, status_code=404, response=response)
|
||||||
|
|
||||||
#obj_type = 'api'
|
|
||||||
#result = get_obj_template(
|
|
||||||
#obj_type=obj_type,
|
|
||||||
#obj_id=obj_id,
|
|
||||||
#by_alias=True,
|
|
||||||
#exclude_unset=True,
|
|
||||||
#)
|
|
||||||
#return result
|
|
||||||
|
|
||||||
|
|
||||||
@router.post('', response_model=Resp_Body_Base)
|
@router.post('', response_model=Resp_Body_Base)
|
||||||
async def post_api_obj(
|
async def post_api_obj(
|
||||||
|
|||||||
Reference in New Issue
Block a user