Skip to content

Commit fd414eb

Browse files
committed
asset category logic added and some minor bug fixed
1 parent 95387c0 commit fd414eb

File tree

3 files changed

+68
-17
lines changed

3 files changed

+68
-17
lines changed

asset_mgr/app/src/app_models.py

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,27 @@ class AssetInfo(Base):
1010
asset_id = Column(String, primary_key=True, nullable=False)
1111
asset_name = Column(String, nullable=False)
1212
asset_owner = Column(String)
13-
asset_catagory = Column(String, nullable=False)
14-
asset_count = Column(Numeric)
13+
asset_category = Column(String, nullable=False)
1514

1615
def __repr__(self):
17-
return "AssetInfo(%s, %s, %s, %s, %d)" % (
16+
return "AssetInfo(%s, %s, %s, %s)" % (
1817
self.asset_id,
1918
self.asset_name,
2019
self.asset_owner,
21-
self.asset_catagory,
20+
self.asset_category,
21+
)
22+
23+
24+
class AssetCategory(Base):
25+
26+
__tablename__ = "T_ASSET_CATEGORY"
27+
28+
category_name = Column(String, primary_key=True, nullable=False)
29+
asset_count = Column(Numeric)
30+
31+
def __repr__(self):
32+
return "AssetCategory(%s, %d)" % (
33+
self.category_name,
2234
self.asset_count,
2335
)
2436

@@ -27,5 +39,4 @@ class AssetInfoReq(BaseModel):
2739
asset_id: str
2840
asset_name: str
2941
asset_owner: str = None
30-
asset_catagory: str
31-
asset_count: int = None
42+
asset_category: str

asset_mgr/app/src/app_repo.py

Lines changed: 49 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from logzero import logger as log
22
from app_database import DataBaseObj
3-
from app_models import AssetInfo, AssetInfoReq
3+
from app_models import AssetInfo, AssetCategory
44

55
db_obj = DataBaseObj()
66

@@ -27,7 +27,7 @@ def query_asset_info(asset_id):
2727
return result
2828

2929
@staticmethod
30-
def add_asset_info(asset_info: AssetInfoReq):
30+
def add_asset_info(asset_info):
3131
session = db_obj.get_db_session()
3232
try:
3333
count_result = (
@@ -38,26 +38,28 @@ def add_asset_info(asset_info: AssetInfoReq):
3838
if count_result > 0:
3939
log.error(f" user already exists {asset_info.asset_id}")
4040
else:
41+
AssetInfoDao.update_asset_category(asset_info.asset_category, 1)
4142
new_asset = AssetInfo(
4243
asset_id=asset_info.asset_id,
4344
asset_name=asset_info.asset_name,
4445
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,
4747
)
4848
log.debug(f"add_asset_info {new_asset}")
4949
session.add(new_asset)
5050
session.commit()
51+
result = new_asset
5152
except Exception as e:
5253
session.rollback
5354
log.exception(f"add_asset_info operation failed {e}")
5455
finally:
5556
if session is not None:
5657
session.close()
5758
log.debug(f"session closed")
59+
return result
5860

5961
@staticmethod
60-
def update_asset_info(asset_id: int, asset_info: AssetInfoReq):
62+
def update_asset_info(asset_id, asset_info):
6163
session = db_obj.get_db_session()
6264
try:
6365
query_result = session.query(AssetInfo).filter(
@@ -66,32 +68,40 @@ def update_asset_info(asset_id: int, asset_info: AssetInfoReq):
6668
if query_result.count() == 0:
6769
log.error(f" user not found", asset_info.asset_id)
6870
else:
71+
old_category = query_result.first().asset_category
6972
query_result.update(
7073
{
7174
AssetInfo.asset_name: asset_info.asset_name,
7275
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,
7577
}
7678
)
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)
7782
session.commit()
83+
result = AssetInfo
7884
except Exception as e:
7985
session.rollback
8086
log.exception(f"update_asset_info operation failed {e}")
8187
finally:
8288
if session is not None:
8389
session.close()
8490
log.debug(f"session closed")
91+
return result
8592

8693
@staticmethod
8794
def delete_asset_info(asset_id):
8895
session = db_obj.get_db_session()
8996
try:
90-
query_result = session.query(AssetInfo)
97+
query_result = session.query(AssetInfo).filter(AssetInfo.asset_id == asset_id)
9198
if query_result.count() == 0:
9299
log.error(f" asset not found {asset_id}")
100+
result = 0
93101
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()
95105
session.commit()
96106
except Exception as e:
97107
session.rollback
@@ -100,3 +110,33 @@ def delete_asset_info(asset_id):
100110
if session is not None:
101111
session.close()
102112
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")

user_mgr/app/src/app_repo.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,11 @@ def update_user_info(user_id, user_info):
8989
def delete_user_info(user_id):
9090
session = db_obj.get_db_session()
9191
try:
92-
query_result = session.query(UserInfo)
92+
query_result = session.query(UserInfo).filter(UserInfo.user_id == user_id)
9393
if query_result.count() == 0:
9494
log.error(f" user not found {user_id}")
9595
else:
96-
result = query_result.filter(UserInfo.user_id == user_id).delete()
96+
result = query_result.delete()
9797
session.commit()
9898
except Exception as e:
9999
session.rollback

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy