45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
from flask import Flask
|
|
|
|
from sqlalchemy import create_engine
|
|
from sqlalchemy.orm import sessionmaker, scoped_session
|
|
|
|
from crudkit.api.flask_api import generate_crud_blueprint
|
|
from crudkit.core.service import CRUDService
|
|
|
|
from muck.models.dbref import Base, Dbref
|
|
from muck.models.exit import Exit
|
|
from muck.models.player import Player
|
|
from muck.models.program import Program
|
|
from muck.models.room import Room
|
|
from muck.models.thing import Thing
|
|
from muck.init import bootstrap_world
|
|
|
|
DATABASE_URL = "sqlite:///muck.db"
|
|
|
|
engine = create_engine(DATABASE_URL, echo=True)
|
|
SessionLocal = scoped_session(sessionmaker(bind=engine))
|
|
|
|
Base.metadata.create_all(engine)
|
|
|
|
session = SessionLocal()
|
|
|
|
bootstrap_world(session)
|
|
|
|
app = Flask(__name__)
|
|
|
|
dbref_service = CRUDService(Dbref, session)
|
|
exit_service = CRUDService(Exit, session)
|
|
player_service = CRUDService(Player, session)
|
|
program_service = CRUDService(Program, session)
|
|
room_service = CRUDService(Room, session)
|
|
thing_service = CRUDService(Thing, session)
|
|
|
|
app.register_blueprint(generate_crud_blueprint(Dbref, dbref_service), url_prefix="/api/dbref")
|
|
app.register_blueprint(generate_crud_blueprint(Exit, exit_service), url_prefix="/api/exits")
|
|
app.register_blueprint(generate_crud_blueprint(Player, player_service), url_prefix="/api/players")
|
|
app.register_blueprint(generate_crud_blueprint(Program, program_service), url_prefix="/api/programs")
|
|
app.register_blueprint(generate_crud_blueprint(Room, room_service), url_prefix="/api/rooms")
|
|
app.register_blueprint(generate_crud_blueprint(Thing, thing_service), url_prefix="/api/things")
|
|
|
|
if __name__ == "__main__":
|
|
app.run(debug=True)
|