diff --git a/.gitignore b/.gitignore index e2b838e..f1a52c6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,6 @@ +*.py[cod] +__pycache__/ + .venv -/instance \ No newline at end of file +/instance +/server/migrations diff --git a/server/FilmFormat/controllers.py b/server/FilmFormat/controllers.py new file mode 100644 index 0000000..71802b1 --- /dev/null +++ b/server/FilmFormat/controllers.py @@ -0,0 +1,40 @@ +from flask import request, jsonify +import uuid +from ..app import db +from .models import FilmFormat + +def list_all_filmformat_controller(): + filmformat = FilmFormat.query.all() + response = [] + for filmformat in filmformat: response.append(filmformat.toDict()) + return jsonify(response) + +def create_filmformat_controller(): + request_form = request.form.to_dict() + print(request_form) + new_filmformat = FilmFormat( + name = request_form['name'], + ) + db.session.add(new_filmformat) + db.session.commit() + response = FilmFormat.query.all() + return(jsonify(request_form)) + +def retrieve_filmformat_controller(filmformat_id): + response = FilmFormat.query.get(filmformat_id).toDict() + print(response) + return jsonify(response) + +def update_filmformat_controller(filmformat_id): + request_form = request.form.to_dict() + filmmanufacturer = FilmFormat.query.get(filmformat_id) + filmmanufacturer.name = request_form['name'] + + db.session.commit() + response = FilmFormat.query.get(filmformat_id).toDict() + return jsonify(response) + +def delete_filmformat_controller(filmformat_id): + FilmFormat.query.filter_by(id=filmformat_id).delete() + db.session.commit() + return f"FilmManufacturer with ID= {filmformat_id} was removed successfully" \ No newline at end of file diff --git a/server/FilmFormat/models.py b/server/FilmFormat/models.py new file mode 100644 index 0000000..401fd8b --- /dev/null +++ b/server/FilmFormat/models.py @@ -0,0 +1,13 @@ +from sqlalchemy import inspect + +from ..app import db + +class FilmFormat(db.Model): + id = db.Column(db.Integer(),primary_key=True,nullable=False,unique=True, autoincrement=True) + name = db.Column(db.String(255)) + + def toDict(self): + return { + c.key: getattr(self,c.key) for c in inspect(self).mapper.column_attrs + } + \ No newline at end of file diff --git a/server/FilmFormat/urls.py b/server/FilmFormat/urls.py new file mode 100644 index 0000000..8b3c23b --- /dev/null +++ b/server/FilmFormat/urls.py @@ -0,0 +1,15 @@ +from flask import request + +from ..app import app +from .controllers import list_all_filmformat_controller,create_filmformat_controller,retrieve_filmformat_controller,update_filmformat_controller,delete_filmformat_controller + +@app.route("/FilmFormat",methods=["GET","POST"]) +def list_all_create_filmformats(): + if request.method == 'GET' : return list_all_filmformat_controller() + if request.method == 'POST' : return create_filmformat_controller() + +@app.route("/FilmFormat/",methods=["GET","PUT","DELETE"]) +def retrieve_update_delete_filmformats(filmformat_id): + if request.method == 'GET' : return retrieve_filmformat_controller(filmformat_id) + if request.method == 'PUT' : return update_filmformat_controller(filmformat_id) + if request.method == "DELETE": return delete_filmformat_controller(filmformat_id) \ No newline at end of file diff --git a/server/Location/controllers.py b/server/Location/controllers.py new file mode 100644 index 0000000..e17a367 --- /dev/null +++ b/server/Location/controllers.py @@ -0,0 +1,40 @@ +from flask import request, jsonify +import uuid +from ..app import db +from .models import Location + +def list_all_location_controller(): + locations = Location.query.all() + response = [] + for location in locations: response.append(location.toDict()) + return jsonify(response) + +def create_location_controller(): + request_form = request.form.to_dict() + print(request_form) + new_location = Location( + name = request_form['name'], + ) + db.session.add(new_location) + db.session.commit() + response = Location.query.all() + return(jsonify(request_form)) + +def retrieve_location_controller(location_id): + response = Location.query.get(location_id).toDict() + print(response) + return jsonify(response) + +def update_location_controller(location_id): + request_form = request.form.to_dict() + location = Location.query.get(location_id) + location.name = request_form['name'] + + db.session.commit() + response = Location.query.get(location_id).toDict() + return jsonify(response) + +def delete_location_controller(location_id): + Location.query.filter_by(id=location_id).delete() + db.session.commit() + return f"FilmManufacturer with ID= {location_id} was removed successfully" \ No newline at end of file diff --git a/server/Location/models.py b/server/Location/models.py new file mode 100644 index 0000000..927db76 --- /dev/null +++ b/server/Location/models.py @@ -0,0 +1,13 @@ +from sqlalchemy import inspect + +from ..app import db + +class Location(db.Model): + id = db.Column(db.Integer(),primary_key=True,nullable=False,unique=True, autoincrement=True) + name = db.Column(db.String(255)) + + def toDict(self): + return { + c.key: getattr(self,c.key) for c in inspect(self).mapper.column_attrs + } + \ No newline at end of file diff --git a/server/Location/urls.py b/server/Location/urls.py new file mode 100644 index 0000000..34c2100 --- /dev/null +++ b/server/Location/urls.py @@ -0,0 +1,15 @@ +from flask import request + +from ..app import app +from .controllers import list_all_location_controller,create_location_controller,retrieve_location_controller,update_location_controller,delete_location_controller + +@app.route("/Location",methods=["GET","POST"]) +def list_all_create_locations(): + if request.method == 'GET' : return list_all_location_controller() + if request.method == 'POST' : return create_location_controller() + +@app.route("/Location/",methods=["GET","PUT","DELETE"]) +def retrieve_update_delete_locations(filmformat_id): + if request.method == 'GET' : return retrieve_location_controller(filmformat_id) + if request.method == 'PUT' : return update_location_controller(filmformat_id) + if request.method == "DELETE": return delete_location_controller(filmformat_id) \ No newline at end of file diff --git a/server/app.py b/server/app.py index 17ad3c2..ab49aec 100644 --- a/server/app.py +++ b/server/app.py @@ -37,6 +37,9 @@ def hello(): from .Film import urls from .FilmManufacturer import urls +from .FilmFormat import urls +from .Location import urls + if __name__ == "__main__": app.run(debug=True,port=8008)