deveshm8 commited on
Commit
840271b
·
1 Parent(s): 1f321e3

welcome message issue

Browse files
.gitignore CHANGED
@@ -138,4 +138,5 @@ dmypy.json
138
  cython_debug/
139
  service-account.json
140
  .env.test
141
- uploads/
 
 
138
  cython_debug/
139
  service-account.json
140
  .env.test
141
+ uploads/
142
+ slack_state
src/controllers/_bot_controller.py CHANGED
@@ -60,6 +60,7 @@ class BotController:
60
  "slack_id": slack_user_id,
61
  },
62
  )
 
63
 
64
  if not user:
65
  logger.error("User not found or created")
@@ -71,8 +72,10 @@ class BotController:
71
  file_id = file["id"]
72
  logger.info(f"Processing file id: {file_id}")
73
  async with SlackBotService() as slack_bot_service:
74
- uploaded_file = await slack_bot_service.save_file(
75
- team, file
 
 
76
  )
77
  if uploaded_file:
78
  await file_service.process_file(
@@ -82,7 +85,9 @@ class BotController:
82
  slack_token=team.token,
83
  )
84
  else:
85
- logger.error(f"Failed to save file {file_id}")
 
 
86
 
87
  elif "file" in actual_event:
88
  file_id = actual_event["file"]["id"]
@@ -147,6 +152,8 @@ class BotController:
147
  "slack_id": slack_user["id"],
148
  },
149
  )
 
 
150
  return {"message": "installed successfully"}
151
  except HTTPException as e:
152
  logger.warning(e)
 
60
  "slack_id": slack_user_id,
61
  },
62
  )
63
+ user_service.send_message(user.id, "Welcome to MandalaBot", team.token)
64
 
65
  if not user:
66
  logger.error("User not found or created")
 
72
  file_id = file["id"]
73
  logger.info(f"Processing file id: {file_id}")
74
  async with SlackBotService() as slack_bot_service:
75
+ uploaded_file = (
76
+ await slack_bot_service.save_file(
77
+ team, file
78
+ )
79
  )
80
  if uploaded_file:
81
  await file_service.process_file(
 
85
  slack_token=team.token,
86
  )
87
  else:
88
+ logger.error(
89
+ f"Failed to save file {file_id}"
90
+ )
91
 
92
  elif "file" in actual_event:
93
  file_id = actual_event["file"]["id"]
 
152
  "slack_id": slack_user["id"],
153
  },
154
  )
155
+ await user_service.send_message(user.id, "Welcome to MandalaBot", team.token)
156
+
157
  return {"message": "installed successfully"}
158
  except HTTPException as e:
159
  logger.warning(e)
src/services/_slack_bot_service.py CHANGED
@@ -35,7 +35,7 @@ class SlackBotService:
35
 
36
  async def generate_auth_url(self):
37
  state = self.state_store.issue()
38
-
39
  url_generator = AuthorizeUrlGenerator(
40
  client_id=os.environ.get("SLACK_CLIENT_ID"),
41
  redirect_uri=os.getenv("SLACK_REDIRECT_URI"),
@@ -90,8 +90,8 @@ class SlackBotService:
90
  detail="Failed to download file from Slack",
91
  )
92
 
93
- async def send_im_message(self, slack_id: str, message: str, to_channel=False):
94
- async with SlackClient() as slack_client:
95
  await slack_client.send_message(slack_id, message, to_channel)
96
 
97
  async def get_user_email(self, token: str, user_id: str) -> str | None:
 
35
 
36
  async def generate_auth_url(self):
37
  state = self.state_store.issue()
38
+ print(">>>>>>>>>>>>>>>>>>", os.getenv("SLACK_REDIRECT_URI"))
39
  url_generator = AuthorizeUrlGenerator(
40
  client_id=os.environ.get("SLACK_CLIENT_ID"),
41
  redirect_uri=os.getenv("SLACK_REDIRECT_URI"),
 
90
  detail="Failed to download file from Slack",
91
  )
92
 
93
+ async def send_im_message(self, slack_id: str, message: str, token: str, to_channel=False):
94
+ async with SlackClient(token=token) as slack_client:
95
  await slack_client.send_message(slack_id, message, to_channel)
96
 
97
  async def get_user_email(self, token: str, user_id: str) -> str | None:
src/services/_user_service.py CHANGED
@@ -56,7 +56,9 @@ class UserService:
56
  """Get user by Slack ID"""
57
  return await self.user_repository.get_user_by_slack_id(slack_id)
58
 
59
- async def update_user_frequency(self, user_id: int, frequency: ContentDeliveryFrequency) -> Optional[User]:
 
 
60
  """Update user's content delivery frequency and next delivery date"""
61
  # First get the user to access last_message_sent_at
62
  async with self.user_repository.get_session() as session:
@@ -71,18 +73,18 @@ class UserService:
71
 
72
  update_data = {
73
  "content_delivery_frequency": frequency,
74
- "next_content_delivery_date": next_delivery_date
75
  }
76
 
77
  return await self.user_repository.patch(user_id, update_data)
78
 
79
- async def send_message(self, user_id: int, message: str):
80
  """Send message to user"""
81
  user = await self.user_repository.get(user_id)
82
 
83
  if user and user.slack_id:
84
  async with SlackBotService() as slack_bot_service:
85
- await slack_bot_service.send_im_message(user.slack_id, message)
86
  else:
87
  logger.error(f"User not found for user_id: {user_id}")
88
  return {"message": "User not found"}
 
56
  """Get user by Slack ID"""
57
  return await self.user_repository.get_user_by_slack_id(slack_id)
58
 
59
+ async def update_user_frequency(
60
+ self, user_id: int, frequency: ContentDeliveryFrequency
61
+ ) -> Optional[User]:
62
  """Update user's content delivery frequency and next delivery date"""
63
  # First get the user to access last_message_sent_at
64
  async with self.user_repository.get_session() as session:
 
73
 
74
  update_data = {
75
  "content_delivery_frequency": frequency,
76
+ "next_content_delivery_date": next_delivery_date,
77
  }
78
 
79
  return await self.user_repository.patch(user_id, update_data)
80
 
81
+ async def send_message(self, user_id: int, message: str, token: str):
82
  """Send message to user"""
83
  user = await self.user_repository.get(user_id)
84
 
85
  if user and user.slack_id:
86
  async with SlackBotService() as slack_bot_service:
87
+ await slack_bot_service.send_im_message(user.slack_id, message, token)
88
  else:
89
  logger.error(f"User not found for user_id: {user_id}")
90
  return {"message": "User not found"}