diff --git a/api/games/api_games.py b/api/games/api_games.py index d2c852a..54f0797 100644 --- a/api/games/api_games.py +++ b/api/games/api_games.py @@ -1,12 +1,13 @@ from flask import Blueprint, request, jsonify, session from models.User import User, user_schema, users_schema from models.GameRoom import GameRoom, rooms_schema, room_schema -from models.Game import Game +from models.Game import Game, game_schema from database import db from ..decorators import jwt_required import jwt import os import json +from websockets.socket import new_game_notice api_games = Blueprint('api_games', __name__, url_prefix='/api/games') @@ -35,7 +36,8 @@ def post_game(): print('game added') db.session.commit() print('game') - print(game) + print(game_schema.dumps(game)) + new_game_notice(room=game.game_room, game=game_schema.dumps(game)) response = { 'status': 'success', 'message': 'Game created', diff --git a/api/rooms/api_rooms.py b/api/rooms/api_rooms.py index f520612..29f5273 100644 --- a/api/rooms/api_rooms.py +++ b/api/rooms/api_rooms.py @@ -4,6 +4,7 @@ from models.GameRoom import GameRoom, rooms_schema, room_schema from models.Game import Game, games_schema from database import db from ..decorators import jwt_required +from websockets.socket import new_room_notice, join_room_notice api_rooms = Blueprint('api_rooms', __name__, url_prefix='/api/rooms') @@ -12,6 +13,7 @@ def get_room(room_id): print(room_id) games = Game.query.filter_by(game_room=room_id).all() response = games_schema.dumps(games) + join_room_notice(room_id) return jsonify(response) @api_rooms.route('/', methods=['GET']) @@ -40,8 +42,8 @@ def post_room(): response = { 'status': 'success', 'message': 'Succesfully registered.', - 'gameRoom': room.id } + new_room_notice(room_schema.dumps(room)) return jsonify(response), 201 except Exception as e: print(e) diff --git a/websockets/socket.py b/websockets/socket.py index 020a147..12ea921 100644 --- a/websockets/socket.py +++ b/websockets/socket.py @@ -22,4 +22,25 @@ def handle_connection(): look cool a namespaced socketio connection! - ''') \ No newline at end of file + ''') + +def join_room_notice(room): + @socketio.on('connect', namespace=f'/{room}') + def handle_connection(): + print(f'joined room at {room}') + emit('join room', {'roomspace': f'{room}'}) + @socketio.on('join room', namespace=f'/{room}') + def connect_room(message): + print(f'connected with ${message}') + emit('connected', {'roomspace': f'/{room}'}) + +def new_game_notice(room, game): + socketio.emit('new game', game, broadcast=True, namespace=f'/{room}') + + +def new_room_notice(room): + socketio.emit('new room', room, broadcast=True) + +# @socketio.on +# def room_socket(roomspace): +# pass \ No newline at end of file