azils3 commited on
Commit
94c8e6e
·
verified ·
1 Parent(s): 0a690cc

Update database/connections_mdb.py

Browse files
Files changed (1) hide show
  1. database/connections_mdb.py +64 -21
database/connections_mdb.py CHANGED
@@ -4,14 +4,17 @@ from info import DATABASE_URL, DATABASE_NAME
4
 
5
  import logging
6
  logger = logging.getLogger(__name__)
7
- logger.setLevel(logging.ERROR)
8
 
9
  myclient = pymongo.MongoClient(DATABASE_URL)
10
  mydb = myclient[DATABASE_NAME]
11
  mycol = mydb['CONNECTION']
12
 
13
-
14
  async def add_connection(group_id, user_id):
 
 
 
 
15
  query = mycol.find_one(
16
  { "_id": user_id },
17
  { "_id": 0, "active_group": 0 }
@@ -19,6 +22,7 @@ async def add_connection(group_id, user_id):
19
  if query is not None:
20
  group_ids = [x["group_id"] for x in query["group_details"]]
21
  if group_id in group_ids:
 
22
  return False
23
 
24
  group_details = {
@@ -34,10 +38,10 @@ async def add_connection(group_id, user_id):
34
  if mycol.count_documents( {"_id": user_id} ) == 0:
35
  try:
36
  mycol.insert_one(data)
 
37
  return True
38
- except:
39
- logger.exception('Some error occured!', exc_info=True)
40
-
41
  else:
42
  try:
43
  mycol.update_one(
@@ -47,70 +51,107 @@ async def add_connection(group_id, user_id):
47
  "$set": {"active_group" : group_id}
48
  }
49
  )
 
50
  return True
51
- except:
52
- logger.exception('Some error occured!', exc_info=True)
53
 
54
-
55
  async def active_connection(user_id):
56
-
 
 
 
57
  query = mycol.find_one(
58
  { "_id": user_id },
59
  { "_id": 0, "group_details": 0 }
60
  )
61
  if not query:
 
62
  return None
63
 
64
  group_id = query['active_group']
65
- if group_id != None:
 
66
  return int(group_id)
67
  else:
 
68
  return None
69
 
70
-
71
  async def all_connections(user_id):
 
 
 
 
72
  query = mycol.find_one(
73
  { "_id": user_id },
74
  { "_id": 0, "active_group": 0 }
75
  )
76
  if query is not None:
77
- return [x["group_id"] for x in query["group_details"]]
 
 
78
  else:
 
79
  return None
80
 
81
-
82
  async def if_active(user_id, group_id):
 
 
 
 
83
  query = mycol.find_one(
84
  { "_id": user_id },
85
  { "_id": 0, "group_details": 0 }
86
  )
87
- return query is not None and query['active_group'] == group_id
88
-
 
 
 
 
89
 
90
  async def make_active(user_id, group_id):
 
 
 
 
91
  update = mycol.update_one(
92
  {'_id': user_id},
93
  {"$set": {"active_group" : group_id}}
94
  )
 
 
 
 
95
  return update.modified_count != 0
96
 
97
-
98
  async def make_inactive(user_id):
 
 
 
 
99
  update = mycol.update_one(
100
  {'_id': user_id},
101
  {"$set": {"active_group" : None}}
102
  )
 
 
 
 
103
  return update.modified_count != 0
104
 
105
-
106
  async def delete_connection(user_id, group_id):
107
-
 
 
 
108
  try:
109
  update = mycol.update_one(
110
  {"_id": user_id},
111
  {"$pull" : { "group_details" : {"group_id":group_id} } }
112
  )
113
  if update.modified_count == 0:
 
114
  return False
115
  query = mycol.find_one(
116
  { "_id": user_id },
@@ -119,17 +160,19 @@ async def delete_connection(user_id, group_id):
119
  if len(query["group_details"]) >= 1:
120
  if query['active_group'] == group_id:
121
  prvs_group_id = query["group_details"][len(query["group_details"]) - 1]["group_id"]
122
-
123
  mycol.update_one(
124
  {'_id': user_id},
125
  {"$set": {"active_group" : prvs_group_id}}
126
  )
 
127
  else:
128
  mycol.update_one(
129
  {'_id': user_id},
130
  {"$set": {"active_group" : None}}
131
  )
 
 
132
  return True
133
  except Exception as e:
134
- logger.exception(f'Some error occured! {e}', exc_info=True)
135
- return False
 
4
 
5
  import logging
6
  logger = logging.getLogger(__name__)
7
+ logger.setLevel(logging.INFO)
8
 
9
  myclient = pymongo.MongoClient(DATABASE_URL)
10
  mydb = myclient[DATABASE_NAME]
11
  mycol = mydb['CONNECTION']
12
 
 
13
  async def add_connection(group_id, user_id):
14
+ """
15
+ Add a connection between a user and a group.
16
+ """
17
+ logger.info(f"Adding connection for user {user_id} to group {group_id}.")
18
  query = mycol.find_one(
19
  { "_id": user_id },
20
  { "_id": 0, "active_group": 0 }
 
22
  if query is not None:
23
  group_ids = [x["group_id"] for x in query["group_details"]]
24
  if group_id in group_ids:
25
+ logger.info(f"Connection already exists for user {user_id} to group {group_id}.")
26
  return False
27
 
28
  group_details = {
 
38
  if mycol.count_documents( {"_id": user_id} ) == 0:
39
  try:
40
  mycol.insert_one(data)
41
+ logger.info(f"New connection inserted for user {user_id} to group {group_id}.")
42
  return True
43
+ except Exception as e:
44
+ logger.exception(f"Error inserting new connection for user {user_id} to group {group_id}: {e}")
 
45
  else:
46
  try:
47
  mycol.update_one(
 
51
  "$set": {"active_group" : group_id}
52
  }
53
  )
54
+ logger.info(f"Existing connection updated for user {user_id} to group {group_id}.")
55
  return True
56
+ except Exception as e:
57
+ logger.exception(f"Error updating existing connection for user {user_id} to group {group_id}: {e}")
58
 
 
59
  async def active_connection(user_id):
60
+ """
61
+ Get the active connection for a user.
62
+ """
63
+ logger.info(f"Getting active connection for user {user_id}.")
64
  query = mycol.find_one(
65
  { "_id": user_id },
66
  { "_id": 0, "group_details": 0 }
67
  )
68
  if not query:
69
+ logger.info(f"No active connection found for user {user_id}.")
70
  return None
71
 
72
  group_id = query['active_group']
73
+ if group_id is not None:
74
+ logger.info(f"Active connection found for user {user_id}: group {group_id}.")
75
  return int(group_id)
76
  else:
77
+ logger.info(f"No active group set for user {user_id}.")
78
  return None
79
 
 
80
  async def all_connections(user_id):
81
+ """
82
+ Get all connections for a user.
83
+ """
84
+ logger.info(f"Getting all connections for user {user_id}.")
85
  query = mycol.find_one(
86
  { "_id": user_id },
87
  { "_id": 0, "active_group": 0 }
88
  )
89
  if query is not None:
90
+ group_ids = [x["group_id"] for x in query["group_details"]]
91
+ logger.info(f"All connections for user {user_id}: {group_ids}.")
92
+ return group_ids
93
  else:
94
+ logger.info(f"No connections found for user {user_id}.")
95
  return None
96
 
 
97
  async def if_active(user_id, group_id):
98
+ """
99
+ Check if a specific group is the active connection for a user.
100
+ """
101
+ logger.info(f"Checking if group {group_id} is active for user {user_id}.")
102
  query = mycol.find_one(
103
  { "_id": user_id },
104
  { "_id": 0, "group_details": 0 }
105
  )
106
+ is_active = query is not None and query['active_group'] == group_id
107
+ if is_active:
108
+ logger.info(f"Group {group_id} is active for user {user_id}.")
109
+ else:
110
+ logger.info(f"Group {group_id} is not active for user {user_id}.")
111
+ return is_active
112
 
113
  async def make_active(user_id, group_id):
114
+ """
115
+ Set a specific group as the active connection for a user.
116
+ """
117
+ logger.info(f"Making group {group_id} active for user {user_id}.")
118
  update = mycol.update_one(
119
  {'_id': user_id},
120
  {"$set": {"active_group" : group_id}}
121
  )
122
+ if update.modified_count != 0:
123
+ logger.info(f"Group {group_id} set as active for user {user_id}.")
124
+ else:
125
+ logger.info(f"No active group modified for user {user_id}.")
126
  return update.modified_count != 0
127
 
 
128
  async def make_inactive(user_id):
129
+ """
130
+ Make a user's connection inactive.
131
+ """
132
+ logger.info(f"Making connection inactive for user {user_id}.")
133
  update = mycol.update_one(
134
  {'_id': user_id},
135
  {"$set": {"active_group" : None}}
136
  )
137
+ if update.modified_count != 0:
138
+ logger.info(f"Connection made inactive for user {user_id}.")
139
+ else:
140
+ logger.info(f"No active group modified for user {user_id}.")
141
  return update.modified_count != 0
142
 
 
143
  async def delete_connection(user_id, group_id):
144
+ """
145
+ Delete a specific connection between a user and a group.
146
+ """
147
+ logger.info(f"Deleting connection for user {user_id} from group {group_id}.")
148
  try:
149
  update = mycol.update_one(
150
  {"_id": user_id},
151
  {"$pull" : { "group_details" : {"group_id":group_id} } }
152
  )
153
  if update.modified_count == 0:
154
+ logger.info(f"No connection found to delete for user {user_id} from group {group_id}.")
155
  return False
156
  query = mycol.find_one(
157
  { "_id": user_id },
 
160
  if len(query["group_details"]) >= 1:
161
  if query['active_group'] == group_id:
162
  prvs_group_id = query["group_details"][len(query["group_details"]) - 1]["group_id"]
 
163
  mycol.update_one(
164
  {'_id': user_id},
165
  {"$set": {"active_group" : prvs_group_id}}
166
  )
167
+ logger.info(f"Active group changed to previous group {prvs_group_id} for user {user_id}.")
168
  else:
169
  mycol.update_one(
170
  {'_id': user_id},
171
  {"$set": {"active_group" : None}}
172
  )
173
+ logger.info(f"No group details left, active group set to None for user {user_id}.")
174
+ logger.info(f"Connection deleted for user {user_id} from group {group_id}.")
175
  return True
176
  except Exception as e:
177
+ logger.exception(f"Error deleting connection for user {user_id} from group {group_id}: {e}")
178
+ return False