Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit fea8813

Browse files
project structure changed with some code optimization
1 parent 19a4636 commit fea8813

File tree

15 files changed

+211
-170
lines changed

15 files changed

+211
-170
lines changed

‎user_mgr/.idea/user_mgr.iml‎

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
File renamed without changes.

‎user_mgr/app/src/__init__.py‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# uvicorn app_usermgr:app_v1 --reload

‎user_mgr/app/src/app_config.py‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
db_connect_str = "postgres://postgres:ABC_abc1@localhost:5432/postgres"

‎user_mgr/app/src/app_database.py‎

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
from logzero import logger as log
2+
from sqlalchemy import create_engine
3+
from sqlalchemy.orm import sessionmaker
4+
from sqlalchemy.ext.declarative import declarative_base
5+
from app_config import *
6+
7+
Base = declarative_base()
8+
9+
global_db_obj = None
10+
11+
db_connection = None
12+
13+
db_session = None
14+
15+
16+
class DBInit:
17+
def __init__(self):
18+
log.info(f"__init__ BEGINS")
19+
try:
20+
self.engine = create_engine(db_connect_str, echo=True)
21+
self.connection = None # TODO
22+
23+
Session = sessionmaker(bind=self.engine)
24+
self.session = Session()
25+
26+
Base.metadata.create_all(self.engine)
27+
except Exception as e:
28+
log.exception(f"DB init failed ", e)
29+
log.info(f"__init__ ENDS")
30+
31+
def get_connection(self):
32+
return self.connectin
33+
34+
def get_session(self):
35+
return self.session
36+
37+
38+
class DataBaseObj:
39+
@staticmethod
40+
def init_db_obj():
41+
global global_db_obj
42+
if global_db_obj is None:
43+
global_db_obj = DBInit()
44+
log.info(f"global_db_obj created")
45+
return global_db_obj
46+
47+
@staticmethod
48+
def get_db_connection():
49+
DataBaseObj.init_db_obj()
50+
global db_connection
51+
if db_connection is None:
52+
db_connection = global_db_obj.get_connection()
53+
log.info(f"db_connection created")
54+
return db_connection
55+
56+
@staticmethod
57+
def get_db_session():
58+
DataBaseObj.init_db_obj()
59+
global db_session
60+
if db_session is None:
61+
db_session = global_db_obj.get_session()
62+
log.info(f"db_session created")
63+
return db_session

‎user_mgr/com/smallintro/usermgr/usermgr_models.py‎ renamed to ‎user_mgr/app/src/app_models.py‎

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
from pydantic import BaseModel
2-
from sqlalchemy import *
3-
from usermgr_database import Base
2+
from sqlalchemy import Column, Numeric, String
3+
from app_database import Base
44

55

66
class UserInfo(Base):
7-
__tablename__ = "t_user_info"
7+
8+
__tablename__ = "T_USER_INFO"
89

910
user_id = Column(Numeric, primary_key=True, nullable=False)
1011
user_name = Column(String)
@@ -13,11 +14,14 @@ class UserInfo(Base):
1314
user_assets = Column(String)
1415

1516
def __repr__(self):
16-
return "UserInfo<%d, %s,%s,%s,%s>" % (self.user_id,\
17-
self.user_name,\
18-
self.user_email,\
19-
self.user_role,\
20-
self.user_assets)
17+
return "UserInfo(%d, %s,%s,%s,%s)" % (
18+
self.user_id,
19+
self.user_name,
20+
self.user_email,
21+
self.user_role,
22+
self.user_assets,
23+
)
24+
2125

2226
class UserInfoReq(BaseModel):
2327
user_id: int

‎user_mgr/app/src/app_repo.py‎

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
from logzero import logger as log
2+
from app_database import DataBaseObj
3+
from app_models import UserInfo, UserInfoReq
4+
5+
db_obj = DataBaseObj()
6+
7+
8+
class UserInfoDao(object):
9+
@staticmethod
10+
def query_user_info(user_id=-1):
11+
session = db_obj.get_db_session()
12+
try:
13+
query_result = session.query(UserInfo)
14+
if user_id == -1:
15+
result = query_result.all()
16+
else:
17+
result = query_result.filter(UserInfo.user_id == user_id).all()
18+
session.commit()
19+
log.debug(result)
20+
except Exception as e:
21+
session.rollback
22+
log.exception(f"query_user_info operation failed {e}")
23+
finally:
24+
if session is not None:
25+
session.close()
26+
log.debug(f"session closed")
27+
return result
28+
29+
@staticmethod
30+
def add_user_info(user_info: UserInfoReq):
31+
session = db_obj.get_db_session()
32+
try:
33+
query_result = (
34+
session.query(UserInfo)
35+
.filter(UserInfo.user_id == user_info.user_id)
36+
.all()
37+
)
38+
if len(query_result) > 0:
39+
log.error(f" user already exists {user_info.user_id}")
40+
else:
41+
new_user = UserInfo(
42+
user_id=user_info.user_id,
43+
user_name=user_info.user_name,
44+
user_email=user_info.user_email,
45+
user_role=user_info.user_role,
46+
user_assets=user_info.user_assets,
47+
)
48+
log.debug(f"add_user_info {new_user}")
49+
session.add(new_user)
50+
session.commit()
51+
except Exception as e:
52+
session.rollback
53+
log.exception(f"add_user_info operation failed {e}")
54+
finally:
55+
if session is not None:
56+
session.close()
57+
log.debug(f"session closed")
58+
59+
@staticmethod
60+
def update_user_info(user_id: int, user_info: UserInfoReq):
61+
session = db_obj.get_db_session()
62+
try:
63+
query_result = session.query(UserInfo).filter(UserInfo.user_id == user_id)
64+
if len(query_result.all()) == 0:
65+
log.error(f" user not found", user_info.user_id)
66+
else:
67+
query_result.update(
68+
{
69+
UserInfo.user_name: user_info.user_name,
70+
UserInfo.user_email: user_info.user_email,
71+
UserInfo.user_assets: user_info.user_assets,
72+
UserInfo.user_role: user_info.user_role,
73+
}
74+
)
75+
session.commit()
76+
except Exception as e:
77+
session.rollback
78+
log.exception(f"update_user_info operation failed {e}")
79+
finally:
80+
if session is not None:
81+
session.close()
82+
log.debug(f"session closed")
83+
84+
@staticmethod
85+
def delete_user_info(user_id=-1):
86+
session = db_obj.get_db_session()
87+
try:
88+
query_result = session.query(UserInfo)
89+
if user_id == -1:
90+
result = query_result.delete()
91+
else:
92+
result = query_result.filter(UserInfo.user_id == user_id).delete()
93+
session.commit()
94+
except Exception as e:
95+
session.rollback
96+
log.exception(f"delete_user_info operation failed {e}")
97+
finally:
98+
if session is not None:
99+
session.close()
100+
log.debug(f"session closed")
Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,34 @@
11
from logzero import logger
2-
from usermgr_repo import UserInfoDao
3-
from usermgr_models import UserInfo, UserInfoReq
2+
from app_repo import UserInfoDao
3+
from app_models import UserInfo, UserInfoReq
44

5-
class UserInfoService(object):
5+
6+
userdao = UserInfoDao()
67

78

9+
class UserInfoService(object):
810
@staticmethod
911
def get_user_info(user_id: int):
10-
logger.info(f"",user_id)
11-
userdao = UserInfoDao()
12+
logger.debug(f"get_user_info")
1213
result = userdao.query_user_info(user_id)
1314
return result
1415

1516
@staticmethod
1617
def add_user_info(user_info: UserInfoReq):
17-
logger.info(f"")
18-
userdao = UserInfoDao()
18+
logger.debug(f"add_user_info")
1919
userdao.add_user_info(user_info)
2020
result = userdao.query_user_info(user_info.user_id)
2121
return result
2222

2323
@staticmethod
24-
def update_user_info(user_id: int,user_info: UserInfoReq):
25-
logger.info(f"",UserInfoReq)
26-
userdao = UserInfoDao()
27-
userdao.update_user_info(user_id,user_info)
24+
def update_user_info(user_id: int, user_info: UserInfoReq):
25+
logger.debug(f"update_user_info")
26+
userdao.update_user_info(user_id, user_info)
2827
result = userdao.query_user_info(user_id)
2928
return result
3029

3130
@staticmethod
3231
def del_user_info(user_id: int):
33-
logger.info(f"",user_id)
34-
userdao = UserInfoDao()
32+
logger.debug(f"del_user_info")
3533
result = userdao.delete_user_info(user_id)
3634
return result
Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,36 @@
1-
import os
2-
import sys
31
from fastapi import FastAPI
4-
from logzero import logger
5-
from usermgr_services import UserInfoService
6-
from usermgr_models import UserInfo, UserInfoReq
2+
from logzero import loggeraslog
3+
from app_services import UserInfoService
4+
from app_models import UserInfo, UserInfoReq
75

86
app_v1 = FastAPI()
97

108
userservice = UserInfoService()
119

10+
1211
@app_v1.get("/v1/usermgr/{userid}")
1312
def get_user_info(userid: int):
14-
logger.info(f"",userid)
13+
log.info(f"get_user_info {userid}")
1514
result = userservice.get_user_info(userid)
1615
return {"user_info": result}
1716

17+
1818
@app_v1.post("/v1/usermgr")
1919
def add_user_info(user_info: UserInfoReq):
20-
logger.info(f"")
20+
log.info(f"add_user_info {UserInfoReq}")
2121
result = userservice.add_user_info(user_info)
2222
return {"user_info": result}
2323

24+
2425
@app_v1.put("/v1/usermgr/{userid}")
25-
def update_user_info(userid: int,user_info: UserInfoReq):
26-
logger.info(f"",UserInfoReq)
27-
result = userservice.update_user_info(userid,user_info)
26+
def update_user_info(userid: int,user_info: UserInfoReq):
27+
log.info(f"update_user_info {UserInfoReq}")
28+
result = userservice.update_user_info(userid,user_info)
2829
return {"user_info": result}
2930

31+
3032
@app_v1.delete("/v1/usermgr/{userid}")
3133
def del_user_info(userid: int):
32-
logger.info(f"",userid)
34+
log.info(f"del_user_info {userid}")
3335
result = userservice.del_user_info(userid)
3436
return {"message": result}

‎user_mgr/app/test/__init__.py‎

Whitespace-only changes.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /