Skip to content
This repository was archived by the owner on Nov 7, 2019. It is now read-only.

Commit 12ce8ad

Browse files
committed
Add server/slack config script
1 parent 52454e2 commit 12ce8ad

File tree

1 file changed

+104
-0
lines changed

1 file changed

+104
-0
lines changed

deployment/app_setup.py

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
#!/usr/bin/env python3
2+
3+
import logging as logger
4+
import requests
5+
6+
def set_headers(user_token):
7+
""" Sets the appropriate headers."""
8+
token = user_token
9+
headers = {
10+
"Content-Type": "application/json; charset=utf-8",
11+
"Authorization": "Bearer " + token
12+
}
13+
return headers
14+
15+
def create_channel(channel_name, user_token):
16+
""" Creates a new public channel."""
17+
url = "https://slack.com/api/channels.create"
18+
headers = set_headers(user_token)
19+
payload = {
20+
"name": channel_name,
21+
}
22+
try:
23+
r = requests.post(url, json = payload, headers = headers)
24+
except Exception as ex:
25+
logger.error("Error POSTing: {}".format(ex))
26+
else:
27+
req_response = r.json()
28+
if r.status_code == 200:
29+
if req_response["ok"] == True:
30+
logger.info("Success. Channel created. Details: [ID: {} | Name: {}]".format(req_response["channel"]["id"], req_response["channel"]["name"]))
31+
return req_response["channel"]["id"]
32+
else:
33+
logger.error("Failed. Details: {}".format(req_response["error"]))
34+
else:
35+
logger.error("Failed to do the request. Code: {}".format(r.status_code))
36+
return None
37+
38+
39+
def create_group(group_name, user_token):
40+
""" Creates a new private channel."""
41+
url = "https://slack.com/api/groups.create"
42+
headers = set_headers(user_token)
43+
payload = {
44+
"name": group_name,
45+
}
46+
try:
47+
r = requests.post(url, json = payload, headers = headers)
48+
except Exception as ex:
49+
logger.error("Error POSTing: {}".format(ex))
50+
else:
51+
req_response = r.json()
52+
if r.status_code == 200:
53+
if req_response["ok"] == True:
54+
logger.info("Success. Group created. Details: [ID: {} | Name: {}]".format(req_response["group"]["id"], req_response["group"]["name"]))
55+
return req_response["group"]["id"]
56+
else:
57+
logger.error("Failed. Details: {}".format(req_response["error"]))
58+
else:
59+
logger.error("Failed to do the request. Code: {}".format(r.status_code))
60+
return None
61+
62+
def setup_logger(minium_level = logger.DEBUG):
63+
"""Setups default logging scheme."""
64+
logger.basicConfig(
65+
# Format example: [21-10-2018 19:00:45] [INFO] [main > main.py:14] : Message
66+
format='[%(asctime)s] [%(levelname)s] [%(filename)s:%(lineno)d] : %(message)s',
67+
level=minium_level
68+
)
69+
70+
def main():
71+
""" Main function."""
72+
setup_logger()
73+
74+
print("Please provide the information asked in order to setup the application.")
75+
db_username = input("Database username: ")
76+
db_password = input("Database password: ")
77+
db_name = input("Database name: ")
78+
db_host = input("Database host: ")
79+
app_port_external = input("Application exposed port: ")
80+
slack_signing_secret = input("Slack signing secret: ")
81+
slack_user_token = input("Please insert the user token: ")
82+
slack_logs_channel_id = create_group("logs", slack_user_token)
83+
slack_staff_channel_id = create_group("staff", slack_user_token)
84+
slack_support_channel_id = create_channel("suporte", slack_user_token)
85+
86+
with open(".env", "x") as env_file:
87+
env_file.write("# Database related\n")
88+
env_file.write("DB_USERNAME={}\n".format(db_username))
89+
env_file.write("DB_PASSWORD={}\n".format(db_password))
90+
env_file.write("DB_NAME={}\n".format(db_name))
91+
env_file.write("DB_HOST={}\n".format(db_host))
92+
93+
env_file.write("\n# App related\n")
94+
env_file.write("APP_PORT_EXTERNAL={}\n".format(app_port_external))
95+
96+
env_file.write("\n# Slack related\n")
97+
env_file.write("SLACK_SUPPORT_CHANNEL_ID={}\n".format(slack_support_channel_id))
98+
env_file.write("SLACK_SIGNING_SECRET={}\n".format(slack_signing_secret))
99+
env_file.write("SLACK_USER_TOKEN={}\n".format(slack_user_token))
100+
env_file.write("SLACK_LOGS_CHANNEL_ID={}\n".format(slack_logs_channel_id))
101+
env_file.write("SLACK_STAFF_CHANNEL_ID={}\n".format(slack_staff_channel_id))
102+
103+
if __name__ == "__main__":
104+
main()

0 commit comments

Comments
 (0)