1
1
from logzero import logger as log
2
2
from app_database import DataBaseObj
3
- from app_models import AssetInfo , AssetInfoReq
3
+ from app_models import AssetInfo , AssetCategory
4
4
5
5
db_obj = DataBaseObj ()
6
6
@@ -27,7 +27,7 @@ def query_asset_info(asset_id):
27
27
return result
28
28
29
29
@staticmethod
30
- def add_asset_info (asset_info : AssetInfoReq ):
30
+ def add_asset_info (asset_info ):
31
31
session = db_obj .get_db_session ()
32
32
try :
33
33
count_result = (
@@ -38,26 +38,28 @@ def add_asset_info(asset_info: AssetInfoReq):
38
38
if count_result > 0 :
39
39
log .error (f" user already exists { asset_info .asset_id } " )
40
40
else :
41
+ AssetInfoDao .update_asset_category (asset_info .asset_category , 1 )
41
42
new_asset = AssetInfo (
42
43
asset_id = asset_info .asset_id ,
43
44
asset_name = asset_info .asset_name ,
44
45
asset_owner = asset_info .asset_owner ,
45
- asset_catagory = asset_info .asset_catagory ,
46
- asset_count = asset_info .asset_count ,
46
+ asset_category = asset_info .asset_category ,
47
47
)
48
48
log .debug (f"add_asset_info { new_asset } " )
49
49
session .add (new_asset )
50
50
session .commit ()
51
+ result = new_asset
51
52
except Exception as e :
52
53
session .rollback
53
54
log .exception (f"add_asset_info operation failed { e } " )
54
55
finally :
55
56
if session is not None :
56
57
session .close ()
57
58
log .debug (f"session closed" )
59
+ return result
58
60
59
61
@staticmethod
60
- def update_asset_info (asset_id : int , asset_info : AssetInfoReq ):
62
+ def update_asset_info (asset_id , asset_info ):
61
63
session = db_obj .get_db_session ()
62
64
try :
63
65
query_result = session .query (AssetInfo ).filter (
@@ -66,32 +68,40 @@ def update_asset_info(asset_id: int, asset_info: AssetInfoReq):
66
68
if query_result .count () == 0 :
67
69
log .error (f" user not found" , asset_info .asset_id )
68
70
else :
71
+ old_category = query_result .first ().asset_category
69
72
query_result .update (
70
73
{
71
74
AssetInfo .asset_name : asset_info .asset_name ,
72
75
AssetInfo .asset_owner : asset_info .asset_owner ,
73
- AssetInfo .asset_catagory : asset_info .asset_catagory ,
74
- AssetInfo .asset_count : asset_info .asset_count ,
76
+ AssetInfo .asset_category : asset_info .asset_category ,
75
77
}
76
78
)
79
+ if old_category != asset_info .asset_category :
80
+ AssetInfoDao .update_asset_category (asset_info .asset_category , 1 )
81
+ AssetInfoDao .update_asset_category (old_category , - 1 )
77
82
session .commit ()
83
+ result = AssetInfo
78
84
except Exception as e :
79
85
session .rollback
80
86
log .exception (f"update_asset_info operation failed { e } " )
81
87
finally :
82
88
if session is not None :
83
89
session .close ()
84
90
log .debug (f"session closed" )
91
+ return result
85
92
86
93
@staticmethod
87
94
def delete_asset_info (asset_id ):
88
95
session = db_obj .get_db_session ()
89
96
try :
90
- query_result = session .query (AssetInfo )
97
+ query_result = session .query (AssetInfo ). filter ( AssetInfo . asset_id == asset_id )
91
98
if query_result .count () == 0 :
92
99
log .error (f" asset not found { asset_id } " )
100
+ result = 0
93
101
else :
94
- query_result .filter (AssetInfo .asset_id == asset_id ).delete ()
102
+ old_category = query_result .first ().asset_category
103
+ AssetInfoDao .update_asset_category (old_category , - 1 )
104
+ result = query_result .delete ()
95
105
session .commit ()
96
106
except Exception as e :
97
107
session .rollback
@@ -100,3 +110,33 @@ def delete_asset_info(asset_id):
100
110
if session is not None :
101
111
session .close ()
102
112
log .debug (f"session closed" )
113
+ return result
114
+
115
+ @staticmethod
116
+ def update_asset_category (category , count ):
117
+ log .debug (f"update_asset_category { category } { count } " )
118
+ session = db_obj .get_db_session ()
119
+ try :
120
+ query_result = session .query (AssetCategory ).filter (AssetCategory .category_name == category )
121
+ if query_result .count () == 0 :
122
+ new_category = AssetCategory (
123
+ category_name = category ,
124
+ asset_count = 1 ,
125
+ )
126
+ log .debug (f"adding asset category { category } " )
127
+ session .add (new_category )
128
+ else :
129
+ query_result .update (
130
+ {
131
+ AssetCategory .asset_count : query_result .first ().asset_count + count ,
132
+ }
133
+ )
134
+ log .debug (f"updating asset category { category } " )
135
+ session .commit ()
136
+ except Exception as e :
137
+ session .rollback
138
+ log .exception (f"update_asset_category operation failed { e } " )
139
+ finally :
140
+ if session is not None :
141
+ session .close ()
142
+ log .debug (f"session closed" )
0 commit comments