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.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):
|
||||
@@ -15,8 +15,11 @@ class Api_Base(BaseModel):
|
||||
log.debug(locals())
|
||||
|
||||
id: Optional[int]
|
||||
|
||||
name: Optional[str]
|
||||
|
||||
secret_key: Optional[str]
|
||||
|
||||
enable: Optional[bool]
|
||||
enable_from: Optional[datetime.datetime] = Field(
|
||||
default_factory = lambda:datetime.datetime.now,
|
||||
@@ -26,9 +29,17 @@ class Api_Base(BaseModel):
|
||||
temporary_token: str = Field(
|
||||
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
|
||||
)
|
||||
expire_on: Optional[datetime.datetime] = Field(
|
||||
default_factory=datetime.datetime.now,
|
||||
# expire_on: datetime.datetime = Field(
|
||||
# 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
|
||||
updated_on: Optional[datetime.datetime] = None
|
||||
@@ -37,6 +48,7 @@ class Api_Base(BaseModel):
|
||||
|
||||
class Config:
|
||||
underscore_attrs_are_private = True
|
||||
allow_population_by_field_name = True
|
||||
#fields = base_fields
|
||||
|
||||
#Account_Base.update_forward_refs()
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import datetime
|
||||
#from datetime import datetime, time, timedelta
|
||||
from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, Response, status
|
||||
from pydantic import BaseModel, EmailStr, Field
|
||||
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),
|
||||
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())
|
||||
|
||||
table_name_select = 'api_key'
|
||||
@@ -152,12 +151,13 @@ async def get_api_temp_token(
|
||||
else:
|
||||
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:
|
||||
log.debug(type(sql_result))
|
||||
log.debug(sql_result)
|
||||
|
||||
base_name = Api_Base
|
||||
log.debug(base_name)
|
||||
resp_data = base_name(**sql_result).dict(by_alias=True, exclude_unset=False)
|
||||
log.debug(resp_data)
|
||||
|
||||
@@ -166,15 +166,6 @@ async def get_api_temp_token(
|
||||
log.debug(sql_result)
|
||||
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)
|
||||
async def post_api_obj(
|
||||
|
||||
Reference in New Issue
Block a user