candidate-platform / core /slack_notifier.py
shaileshjadhavSS
Added local and AWS functionality for questions
53f9c43
raw
history blame
1.69 kB
import json
import requests
class SlackNotifier:
def __init__(self, webhook_url):
"""
Initializes the SlackNotifier with the webhook URL.
:param webhook_url: The Slack webhook URL for sending messages.
"""
self.webhook_url = webhook_url
def send_message(self, text):
"""
Sends a plain text message to Slack.
:param text: The message to send.
:raises: Exception if the message fails to send.
"""
payload = {"text": text}
response = requests.post(
self.webhook_url,
data=json.dumps(payload),
headers={"Content-Type": "application/json"}
)
if response.status_code != 200:
raise RuntimeError(f"Failed to send message to Slack: {response.status_code}, {response.text}")
def send_candidate_info(self, name, email, years_of_experience, skills, performance_score=None):
"""
Sends a formatted message with candidate information to Slack.
:param name: Candidate's name.
:param email: Candidate's email.
:param years_of_experience: Total years of experience.
:param skills: Candidate's skills.
:param performance_score: Candidate's performance score (optional).
"""
message = (
f"*Candidate Assessment Report*\n\n"
f"*Name:* {name}\n"
f"*Email:* {email}\n"
f"*Experience:* {years_of_experience} years\n"
f"*Skills:* {skills}\n"
f"*Performance Score:* {performance_score if performance_score is not None else 'N/A'}\n"
)
self.send_message(message)