1
1
from fastapi import FastAPI , Query
2
2
from logzero import logger as log
3
+ from starlette import status
3
4
from app_services import AssetInfoService
4
5
from app_models import AssetMgrRequest , AssetMgrResponse
6
+ from app_config import *
5
7
6
- app_v1 = FastAPI ()
8
+ app = FastAPI ()
7
9
8
10
asset_service = AssetInfoService ()
9
11
10
12
11
- @app_v1 .get ("/v1/assetmgr/{assetid}" )
12
- def get_asset_info (assetid : str = "-1" ):
13
- log .info (f"get_asset_info { assetid } " )
14
- result = asset_service .get_asset_info (assetid )
15
- return {"asset_info" : result }
13
+ @app .get (
14
+ "/v1/assetmgr/{assetid}" ,
15
+ response_model = AssetMgrResponse ,
16
+ status_code = status .HTTP_200_OK ,
17
+ )
18
+ def get_asset_info (assetid : str = DEFAULT_ALL ):
19
+ log .info (f"get_asset_info request { assetid } " )
20
+ try :
21
+ result_data = asset_service .get_asset_info (assetid )
22
+ result_status = STATUS_SUCCESS
23
+ except Exception as e :
24
+ result_data = str (e )
25
+ result_status = STATUS_FAILURE
26
+ log .info (f"get_asset_info response { assetid } " )
27
+ response = AssetMgrResponse (status = result_status , data = {"assets" : result_data })
28
+ log .debug (f"get_asset_info response { response } " )
29
+ return response
16
30
17
31
18
- @app_v1 .post ("/v1/assetmgr" )
32
+ @app .post (
33
+ "/v1/assetmgr" , response_model = AssetMgrResponse , status_code = status .HTTP_201_CREATED
34
+ )
19
35
def add_asset_info (asset_info : AssetMgrRequest ):
20
- log .info (f"add_asset_info { asset_info } " )
21
- result = asset_service .add_asset_info (asset_info )
22
- return {"asset_info" : result }
36
+ log .info (f"add_asset_info request { asset_info } " )
37
+ try :
38
+ result_data = asset_service .add_asset_info (asset_info )
39
+ result_status = STATUS_SUCCESS
40
+ except Exception as e :
41
+ result_data = str (e )
42
+ result_status = STATUS_FAILURE
43
+ response = AssetMgrResponse (status = result_status , data = {"asset" : result_data })
44
+ log .debug (f"add_asset_info response { response } " )
45
+ return response
23
46
24
47
25
- @app_v1 .put ("/v1/assetmgr/assignuser" )
48
+ @app .put (
49
+ "/v1/assetmgr/assignuser" ,
50
+ response_model = AssetMgrResponse ,
51
+ status_code = status .HTTP_201_CREATED ,
52
+ )
26
53
def assign_asset_to_user (asset_category : str = Query (...), userid : str = Query (...)):
27
- log .info (f"assign_asset_to_user { asset_category } { userid } " )
28
- result = asset_service .assign_asset_to_user (asset_category , userid )
29
- return AssetMgrResponse (status = "OK" , data = {"asset_id" : result })
54
+ log .info (f"assign_asset_to_user request { asset_category } { userid } " )
55
+ try :
56
+ result_data = asset_service .assign_asset_to_user (asset_category , userid )
57
+ result_status = STATUS_SUCCESS
58
+ except Exception as e :
59
+ result_data = str (e )
60
+ result_status = STATUS_FAILURE
61
+ response = AssetMgrResponse (status = result_status , data = {"assetid" : result_data })
62
+ log .debug (f"assign_asset_to_user response { response } " )
63
+ return response
30
64
31
65
32
- @app_v1 .put ("/v1/assetmgr/{assetid}" )
66
+ @app .put (
67
+ "/v1/assetmgr/{assetid}" ,
68
+ response_model = AssetMgrResponse ,
69
+ status_code = status .HTTP_201_CREATED ,
70
+ )
33
71
def update_asset_info (assetid : str , asset_info : AssetMgrRequest ):
34
- log .info (f"update_asset_info { asset_info } " )
35
- result = asset_service .update_asset_info (assetid , asset_info )
36
- return {"asset_info" : result }
72
+ log .info (f"update_asset_info request { asset_info } " )
73
+ try :
74
+ result_data = asset_service .update_asset_info (assetid , asset_info )
75
+ result_status = STATUS_SUCCESS
76
+ except Exception as e :
77
+ result_data = str (e )
78
+ result_status = STATUS_FAILURE
79
+ response = AssetMgrResponse (status = result_status , data = {"asset" : result_data })
80
+ log .debug (f"update_asset_info response { response } " )
81
+ return response
37
82
38
83
39
- @app_v1 .delete ("/v1/assetmgr/{assetid}" )
84
+ @app .delete (
85
+ "/v1/assetmgr/{assetid}" ,
86
+ response_model = AssetMgrResponse ,
87
+ status_code = status .HTTP_202_ACCEPTED ,
88
+ )
40
89
def del_asset_info (assetid : str ):
41
- log .info (f"del_asset_info { assetid } " )
42
- result = asset_service .del_asset_info (assetid )
43
- return {"asset_info" : result }
90
+ log .info (f"del_asset_info request { assetid } " )
91
+ try :
92
+ result_data = asset_service .del_asset_info (assetid )
93
+ result_status = STATUS_SUCCESS
94
+ except Exception as e :
95
+ result_data = str (e )
96
+ result_status = STATUS_FAILURE
97
+ response = AssetMgrResponse (
98
+ status = result_status , data = {"assetid" : assetid , "deleted" : result_data }
99
+ )
100
+ log .debug (f"del_asset_info response { response } " )
101
+ return response
0 commit comments