|
from flask import Blueprint, request, jsonify |
|
from Services.Service_User import Service_User |
|
from Services.Service_Chat import Service_Chat |
|
from Services.Service_Chat_Message import Service_Chat_Message |
|
from Exceptions.UserExistsException import UserExistsException |
|
from Exceptions.UserOrPasswordIncorrectException import UserOrPasswordIncorrectException |
|
|
|
signup_blueprint = Blueprint('signup', __name__) |
|
login_blueprint = Blueprint('login', __name__) |
|
user_chat_history_blueprint = Blueprint('user chat history', __name__) |
|
delete_chat_blueprint = Blueprint('delete chat', __name__) |
|
chat_message_blueprint = Blueprint('chat message', __name__) |
|
get_chat_blueprint = Blueprint('get chat', __name__) |
|
|
|
@signup_blueprint.route('/signup', methods=['POST']) |
|
def signup_user(): |
|
service_user = Service_User() |
|
|
|
try: |
|
username = request.json['username'] |
|
password = request.json['password'] |
|
|
|
message = service_user.signup_user(username, password) |
|
return jsonify({'message': message}), 200 |
|
|
|
except UserExistsException as e: |
|
return jsonify({'message': str(e)}), 409 |
|
|
|
|
|
@login_blueprint.route('/login', methods=['POST']) |
|
def login_user(): |
|
service_user = Service_User() |
|
|
|
username = request.json['username'] |
|
password = request.json['password'] |
|
|
|
try: |
|
user_information = service_user.login_user(username, password) |
|
|
|
if user_information['password_match']: |
|
user_information['message'] = 'Connected successfully.' |
|
user_information['state'] = True |
|
return jsonify(user_information) |
|
|
|
except UserOrPasswordIncorrectException as e: |
|
return jsonify({'message': str(e), 'state': False}) |
|
|
|
|
|
@user_chat_history_blueprint.route('/chatHistory', methods=['GET']) |
|
def user_chat_history(): |
|
serviceChat = Service_Chat() |
|
|
|
user_id = request.json['user_id'] |
|
user_is_connected = request.json['user_is_connected'] |
|
|
|
try: |
|
chat_history = serviceChat.get_all_user_chats(user_id, user_is_connected) |
|
return jsonify(chat_history), 200 |
|
except Exception as e: |
|
return jsonify({'message': "Error fetching chat history."}), 500 |
|
|
|
@delete_chat_blueprint.route('/deleteChat', methods=['POST']) |
|
def user_chat_history(): |
|
serviceChat = Service_Chat() |
|
|
|
user_id = request.json['user_id'] |
|
user_is_connected = request.json['user_is_connected'] |
|
chat_id = request.json['chat_id'] |
|
|
|
try: |
|
serviceChat.delete_chat(chat_id, user_is_connected, user_id) |
|
return jsonify({'message': "As success"}), 200 |
|
except Exception as e: |
|
return jsonify({'message': "Error fetching chat history."}), 500 |
|
|
|
@chat_message_blueprint.route('/chatMessage', methods=['GET']) |
|
def chat_message(): |
|
serviceChatMessage = Service_Chat_Message() |
|
|
|
user_id = request.json['user_id'] |
|
user_is_connected = request.json['user_is_connected'] |
|
chat_id = request.json['chat_id'] |
|
try: |
|
chat = serviceChatMessage.get_chat_messages_by_chat_id_and_user_id(chat_id, user_is_connected, user_id) |
|
return jsonify(chat), 200 |
|
except Exception as e: |
|
return jsonify({'message': "Error fetching chat history."}), 500 |
|
|
|
|
|
@get_chat_blueprint.route('/getChat', methods=['GET']) |
|
def get_chat(): |
|
serviceChat = Service_Chat() |
|
|
|
user_id = request.json['user_id'] |
|
is_connected = request.json['user_is_connected'] |
|
chat_id = request.json['chat_id'] |
|
|
|
try: |
|
chat = serviceChat.get_chat(chat_id, user_id, is_connected) |
|
return jsonify(chat), 200 |
|
except Exception as e: |
|
return jsonify({'message': "Error fetching chat history."}), 500 |