Skip to content

Commit c3deced

Browse files
authored
Merge pull request #361 from atauln/slack
Major Project Slack Bot
2 parents 6a674d8 + 0ea5251 commit c3deced

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

conditional/blueprints/major_project_submission.py

+17-3
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,24 @@
1-
import structlog
1+
import json
2+
import requests
23

3-
from flask import Blueprint, request, jsonify, redirect
4+
from flask import Blueprint
5+
from flask import request
6+
from flask import jsonify
7+
from flask import redirect
48

59
from sqlalchemy import desc
610

11+
import structlog
12+
13+
from conditional.util.context_processors import get_member_name
14+
715
from conditional.models.models import MajorProject
816

917
from conditional.util.ldap import ldap_is_eval_director
1018
from conditional.util.ldap import ldap_get_member
1119
from conditional.util.flask import render_template
1220

13-
from conditional import db, start_of_year, get_user, auth
21+
from conditional import db, start_of_year, get_user, auth, app
1422

1523
logger = structlog.get_logger()
1624

@@ -61,6 +69,9 @@ def submit_major_project(user_dict=None):
6169
return jsonify({"success": False}), 400
6270
project = MajorProject(user_dict['username'], name, description)
6371

72+
username = user_dict['username']
73+
send_slack_ping({"text":f"<!subteam^S5XENJJAH> *{get_member_name(username)}* ({username})"
74+
f" submitted their major project, *{name}*!"})
6475
db.session.add(project)
6576
db.session.commit()
6677
return jsonify({"success": True}), 200
@@ -114,3 +125,6 @@ def major_project_delete(pid, user_dict=None):
114125
return jsonify({"success": True}), 200
115126

116127
return "Must be project owner to delete!", 401
128+
129+
def send_slack_ping(payload):
130+
requests.post(app.config['WEBHOOK_URL'], json.dumps(payload))

config.env.py

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
APP_NAME = "conditional"
1515
IP = env.get("CONDITIONAL_IP", "0.0.0.0")
1616
PORT = env.get("CONDITIONAL_PORT", 6969)
17+
WEBHOOK_URL = env.get("CONDITIONAL_WEBHOOK_URL", "INSERT URL HERE")
1718

1819
# DB Info
1920
SQLALCHEMY_DATABASE_URI = env.get("SQLALCHEMY_DATABASE_URI", "")

0 commit comments

Comments
 (0)