Added Camera MVC, CameraManufacturer MVC and CameraFormat MVC

This commit is contained in:
Gustavo Henrique Santos Souza de Miranda 2024-04-11 20:39:37 -03:00
parent 316b54a686
commit 8d496dd1b0
11 changed files with 225 additions and 0 deletions

View File

@ -0,0 +1,50 @@
from flask import request, jsonify
import uuid
from ..app import db
from .models import Camera
def list_all_camera_controller():
cameras = Camera.query.all()
response = []
for camera in cameras: response.append(camera.toDict())
return jsonify(response)
def create_camera_controller():
request_form = request.form.to_dict()
print(request_form)
new_camera = Camera(
name = request_form['name'],
shutterspeedstops = request_form['shutterspeedstops'],
shutterspeedmax = request_form['shutterspeedmax'],
fk_FilmFormat_id = request_form['filmformat'],
fk_CameraFormat_id = request_form['cameraformat'],
fk_CameraManufacturer_id = request_form['cameramanufacturer'],
)
db.session.add(new_camera)
db.session.commit()
response = Camera.query.all()
return(jsonify(request_form))
def retrieve_camera_controller(camera_id):
response = Camera.query.get(camera_id).toDict()
print(response)
return jsonify(response)
def update_camera_controller(camera_id):
request_form = request.form.to_dict()
camera = Camera.query.get(camera_id)
camera.name = request_form['name']
camera.shutterspeedstops = request_form['shutterspeedstops']
camera.shutterspeedmax = request_form['shutterspeedmax']
camera.fk_FilmFormat_id = request_form['filmformat']
camera.fk_CameraFormat_id = request_form['cameraformat']
camera.fk_CameraManufacturer_id = request_form['cameramanufacturer']
db.session.commit()
response = Camera.query.get(camera_id).toDict()
return jsonify(response)
def delete_camera_controller(camera_id):
Camera.query.filter_by(id=camera_id).delete()
db.session.commit()
return f"Camera with ID= {camera_id} was removed successfully"

20
server/Camera/models.py Normal file
View File

@ -0,0 +1,20 @@
from sqlalchemy import inspect
from ..app import db
class Camera(db.Model):
id = db.Column(db.Integer(),primary_key=True,nullable=False,unique=True, autoincrement=True)
name = db.Column(db.String(255))
shutterspeedstops = db.Column(db.String(15))
shutterspeedmax = db.Column(db.String(15))
fk_FilmFormat_id = db.Column(db.Integer(),db.ForeignKey("film_format.id"))
filmformat = db.relationship("FilmFormat", back_populates='cameras')
fk_CameraFormat_id = db.Column(db.Integer(),db.ForeignKey("camera_format.id"))
cameraformat = db.relationship("CameraFormat", back_populates='cameras')
fk_CameraManufacturer_id = db.Column(db.Integer(),db.ForeignKey("camera_manufacturer.id"))
cameramanufacturer = db.relationship("CameraManufacturer", back_populates='cameras')
def toDict(self):
return {
c.key: getattr(self,c.key) for c in inspect(self).mapper.column_attrs
}

15
server/Camera/urls.py Normal file
View File

@ -0,0 +1,15 @@
from flask import request
from ..app import app
from .controllers import list_all_camera_controller,create_camera_controller,retrieve_camera_controller,update_camera_controller,delete_camera_controller
@app.route("/Cameras",methods=["GET","POST"])
def list_all_create_cameras():
if request.method == 'GET' : return list_all_camera_controller()
if request.method == 'POST' : return create_camera_controller()
@app.route("/Cameras/<camera_id>",methods=["GET","PUT","DELETE"])
def retrieve_update_delete_cameras(camera_id):
if request.method == 'GET' : return retrieve_camera_controller(camera_id)
if request.method == 'PUT' : return update_camera_controller(camera_id)
if request.method == "DELETE": return delete_camera_controller(camera_id)

View File

@ -0,0 +1,40 @@
from flask import request, jsonify
import uuid
from ..app import db
from .models import CameraFormat
def list_all_cameraformat_controller():
cameraformats = CameraFormat.query.all()
response = []
for cameraformat in cameraformats: response.append(cameraformat.toDict())
return jsonify(response)
def create_cameraformat_controller():
request_form = request.form.to_dict()
print(request_form)
new_cameraformat = CameraFormat(
name = request_form['name'],
)
db.session.add(new_cameraformat)
db.session.commit()
response = CameraFormat.query.all()
return(jsonify(request_form))
def retrieve_cameraformat_controller(cameraformat_id):
response = CameraFormat.query.get(cameraformat_id).toDict()
print(response)
return jsonify(response)
def update_cameraformat_controller(cameraformat_id):
request_form = request.form.to_dict()
cameraformat = CameraFormat.query.get(cameraformat_id)
cameraformat.name = request_form['name']
db.session.commit()
response = CameraFormat.query.get(cameraformat_id).toDict()
return jsonify(response)
def delete_cameraformat_controller(cameraformat_id):
CameraFormat.query.filter_by(id=cameraformat_id).delete()
db.session.commit()
return f"Cameraformat with ID= {cameraformat_id} was removed successfully"

View File

@ -0,0 +1,13 @@
from sqlalchemy import inspect
from ..app import db
class CameraFormat(db.Model):
id = db.Column(db.Integer(),primary_key=True,nullable=False,unique=True, autoincrement=True)
name = db.Column(db.String(255))
cameras = db.relationship("Camera",back_populates='cameraformat')
def toDict(self):
return {
c.key: getattr(self,c.key) for c in inspect(self).mapper.column_attrs
}

View File

@ -0,0 +1,15 @@
from flask import request
from ..app import app
from .controllers import list_all_cameraformat_controller,create_cameraformat_controller,retrieve_cameraformat_controller,update_cameraformat_controller,delete_cameraformat_controller
@app.route("/CameraFormat",methods=["GET","POST"])
def list_all_create_cameraformats():
if request.method == 'GET' : return list_all_cameraformat_controller()
if request.method == 'POST' : return create_cameraformat_controller()
@app.route("/CameraFormat/<cameraformat_id>",methods=["GET","PUT","DELETE"])
def retrieve_update_delete_cameraformats(cameraformat_id):
if request.method == 'GET' : return retrieve_cameraformat_controller(cameraformat_id)
if request.method == 'PUT' : return update_cameraformat_controller(cameraformat_id)
if request.method == "DELETE": return delete_cameraformat_controller(cameraformat_id)

View File

@ -0,0 +1,40 @@
from flask import request, jsonify
import uuid
from ..app import db
from .models import CameraManufacturer
def list_all_cameramanufacturers_controller():
filmmanufacturers = CameraManufacturer.query.all()
response = []
for filmmanufacturer in filmmanufacturers: response.append(filmmanufacturer.toDict())
return jsonify(response)
def create_cameramanufacturer_controller():
request_form = request.form.to_dict()
print(request_form)
new_cameramanufacturer = CameraManufacturer(
name = request_form['name'],
)
db.session.add(new_cameramanufacturer)
db.session.commit()
response = CameraManufacturer.query.all()
return(jsonify(request_form))
def retrieve_cameramanufacturer_controller(cameramanufacturer_id):
response = CameraManufacturer.query.get(cameramanufacturer_id).toDict()
print(response)
return jsonify(response)
def update_cameramanufacturer_controller(cameramanufacturer_id):
request_form = request.form.to_dict()
cameramanufacturer = CameraManufacturer.query.get(cameramanufacturer_id)
cameramanufacturer.name = request_form['name']
db.session.commit()
response = CameraManufacturer.query.get(cameramanufacturer_id).toDict()
return jsonify(response)
def delete_cameramanufacturer_controller(cameramanufacturer_id):
CameraManufacturer.query.filter_by(id=cameramanufacturer_id).delete()
db.session.commit()
return f"CameraManufacturer with ID={cameramanufacturer_id} was removed successfully"

View File

@ -0,0 +1,14 @@
from sqlalchemy import inspect
from ..app import db
class CameraManufacturer(db.Model):
id = db.Column(db.Integer(),primary_key=True,nullable=False,unique=True, autoincrement=True)
name = db.Column(db.String(255))
films = db.relationship("Camera",back_populates='cameramanufacturer')
def toDict(self):
return {
c.key: getattr(self,c.key) for c in inspect(self).mapper.column_attrs
}

View File

@ -0,0 +1,15 @@
from flask import request
from ..app import app
from .controllers import list_all_cameramanufacturers_controller,create_cameramanufacturer_controller,retrieve_cameramanufacturer_controller,update_cameramanufacturer_controller,delete_cameramanufacturer_controller
@app.route("/CameraManufacturer",methods=["GET","POST"])
def list_all_create_filmmanufacturers():
if request.method == 'GET' : return list_all_cameramanufacturers_controller()
if request.method == 'POST' : return create_cameramanufacturer_controller()
@app.route("/CameraManufacturer/<cameramanufacturer_id>",methods=["GET","PUT","DELETE"])
def retrieve_update_delete_FilmManufacturers(cameramanufacturer_id):
if request.method == 'GET' : return retrieve_cameramanufacturer_controller(cameramanufacturer_id)
if request.method == 'PUT' : return update_cameramanufacturer_controller(cameramanufacturer_id)
if request.method == "DELETE": return delete_cameramanufacturer_controller(cameramanufacturer_id)

View File

@ -6,6 +6,7 @@ class FilmFormat(db.Model):
id = db.Column(db.Integer(),primary_key=True,nullable=False,unique=True, autoincrement=True) id = db.Column(db.Integer(),primary_key=True,nullable=False,unique=True, autoincrement=True)
name = db.Column(db.String(255)) name = db.Column(db.String(255))
films = db.relationship("Film",back_populates='filmformat') films = db.relationship("Film",back_populates='filmformat')
cameras = db.relationship("Camera",back_populates='filmformat')
def toDict(self): def toDict(self):
return { return {
c.key: getattr(self,c.key) for c in inspect(self).mapper.column_attrs c.key: getattr(self,c.key) for c in inspect(self).mapper.column_attrs

View File

@ -39,6 +39,8 @@ from .Film import urls
from .FilmManufacturer import urls from .FilmManufacturer import urls
from .FilmFormat import urls from .FilmFormat import urls
from .Location import urls from .Location import urls
from .Camera import urls
from .CameraFormat import urls
if __name__ == "__main__": if __name__ == "__main__":