75 lines
3.0 KiB
Python
Executable File
75 lines
3.0 KiB
Python
Executable File
#!/usr/bin/python3
|
|
from flask import Flask, make_response, request, redirect
|
|
import requests as r
|
|
app = Flask(__name__)
|
|
database_node_port = 5002
|
|
logic_node_port = 5003
|
|
database_node = "database:" + str(database_node_port)
|
|
|
|
|
|
@app.route('/login', methods=["POST"])
|
|
def login():
|
|
data = request.get_json()
|
|
username, password = data["login"], data["password"]
|
|
correct_password = r.get(f"http://{database_node}/users/{username}/password").json()["data"]
|
|
if correct_password == password:
|
|
resp = make_response({"status": "ok"}, 200)
|
|
resp.set_cookie("session", f"{username}||{password}")
|
|
return resp
|
|
else:
|
|
return make_response({"status": "wrong_creds"}, 401)
|
|
|
|
|
|
@app.route('/register', methods=["POST"])
|
|
def register():
|
|
data = request.get_json()
|
|
username, password = data["login"], data["password"]
|
|
resp = r.post(f"http://{database_node}/users/{username}/password", json={"value": password})
|
|
if resp.status_code == 200:
|
|
resp = make_response({"status": "ok"}, 200)
|
|
resp.set_cookie("session", f"{username}||{password}")
|
|
return resp
|
|
else:
|
|
return make_response({"status": "error"}, resp.status_code)
|
|
|
|
|
|
@app.route('/update_personal', methods=["POST"])
|
|
def update_personal():
|
|
username, password = request.cookies["session"].split("||")
|
|
correct_password = r.get(f"http://{database_node}/users/{username}/password").json()["data"]
|
|
if correct_password != password:
|
|
return redirect(request.headers.get("Origin", "") + "/login.html", code=302)
|
|
data = request.get_json()
|
|
name, sname, email = data["first_name"], data["second_name"], data["email"]
|
|
r.post(f"http://{database_node}/users/{username}/first_name", json={"value": name})
|
|
r.post(f"http://{database_node}/users/{username}/second_name", json={"value": sname})
|
|
r.post(f"http://{database_node}/users/{username}/email", json={"value": email})
|
|
return make_response({"status": "ok"}, 200)
|
|
|
|
|
|
@app.route('/send_msg', methods=["POST"])
|
|
def send_msg():
|
|
username, password = request.cookies["session"].split("||")
|
|
correct_password = r.get(f"http://{database_node}/users/{username}/password").json()["data"]
|
|
if correct_password != password:
|
|
return redirect(request.headers.get("Origin", "") + "/login.html", code=302)
|
|
r.post(f"http://{database_node}/users/{username}/msg", json={"value": request.get_json()["msg"]})
|
|
return make_response({"status": "ok"}, 200)
|
|
|
|
|
|
@app.route('/post_comment', methods=["POST"])
|
|
def post_comment():
|
|
username, password = request.cookies["session"].split("||")
|
|
correct_password = r.get(f"http://{database_node}/users/{username}/password").json()["data"]
|
|
if correct_password != password:
|
|
return redirect(request.headers.get("Origin", "") + "/login.html", code=302)
|
|
data = request.get_json()
|
|
img_id, msg = data["img_id"], data["msg"]
|
|
r.post(f"http://{database_node}/images/{img_id}",
|
|
json={"value": [username, msg]})
|
|
return make_response({"status": "ok"}, 200)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app.run(host="0.0.0.0", port=logic_node_port)
|