built routes for creation of char
This commit is contained in:
@@ -1,8 +1,15 @@
|
||||
from flask import Blueprint, g, jsonify, current_app
|
||||
from flask import Blueprint, g, request, jsonify, current_app
|
||||
from typing import cast
|
||||
from app.utils.typed_flask import CoCFlask
|
||||
from dataclasses import asdict
|
||||
|
||||
# from app.services.appwrite_client import AppWriteClient
|
||||
from app.utils.typed_flask import CoCFlask
|
||||
from app.utils.session_user import SessionUser, import_g_session
|
||||
from app.game.generators.entity_factory import build_char
|
||||
from app.services.appwrite_db import AppwriteTables
|
||||
|
||||
from app.utils.logging import get_logger
|
||||
|
||||
logging = get_logger(__file__)
|
||||
|
||||
# type cast flask to my custom flask app so the app.api methods are available in the IDE / typed correctly.
|
||||
app = cast(CoCFlask,current_app)
|
||||
@@ -10,8 +17,36 @@ app = cast(CoCFlask,current_app)
|
||||
# blueprint def
|
||||
char_bp = Blueprint("char", __name__, url_prefix="/char")
|
||||
|
||||
# return CURRENT USER
|
||||
# {"user":g.appwrite_user}
|
||||
|
||||
@char_bp.route("/", methods=["GET", "POST"])
|
||||
def char():
|
||||
return app.api.ok({"user":g.appwrite_user})
|
||||
@char_bp.route("/new", methods=["POST"])
|
||||
def new():
|
||||
api_user = import_g_session(g.appwrite_user)
|
||||
|
||||
data = request.get_json(silent=True)
|
||||
|
||||
name = data.get("name")
|
||||
origin_story = data.get("origin_story")
|
||||
race_id = data.get("race_id")
|
||||
profession_id = data.get("profession_id")
|
||||
|
||||
try:
|
||||
player = build_char(name=name,origin_story=origin_story,race_id=race_id,profession_id=profession_id)
|
||||
player_dict = asdict(player)
|
||||
uuid = player.uuid
|
||||
|
||||
tablesdb = AppwriteTables()
|
||||
tablesdb.save_character_for_user_id(api_user.id,player_dict)
|
||||
|
||||
|
||||
logging.info(f"Created char {uuid} for {api_user.id} - {api_user.name} - {api_user.email}")
|
||||
|
||||
except Exception as e:
|
||||
logging.error(f"Unable to create char for user: {api_user.id} due to {e}")
|
||||
player_dict = {}
|
||||
|
||||
uuid = player_dict.get("uuid",{})
|
||||
print(f"Returned {uuid}")
|
||||
return app.api.ok(uuid)
|
||||
|
||||
Reference in New Issue
Block a user