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
+50
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
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
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)