services
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
FROM python:3.9-alpine
|
||||
WORKDIR /app
|
||||
ADD requirements.txt .
|
||||
RUN pip3 install -r requirements.txt
|
||||
ADD logic.py .
|
||||
ENTRYPOINT ["python3", "logic.py"]
|
||||
Executable
+74
@@ -0,0 +1,74 @@
|
||||
#!/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)
|
||||
@@ -0,0 +1,3 @@
|
||||
flask==2.0.2
|
||||
requests
|
||||
Werkzeug==2.2.2
|
||||
Reference in New Issue
Block a user