Files
ALPHA-TRAIN2/services 4/rusgram/logic/logic.py
T
2026-08-26 11:01:46 +03:00

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)