@@ -136,12 +136,18 @@ def update_design_image(design_id):
136136 )
137137
138138
139+ # @app.route("/design/<int:design_id>", methods=['GET'])
140+ # @jwt_required()
141+ # def get_design():
142+ # handler = Design(email=get_jwt_identity())
143+ # return handler.get_design(design_id=request.form.get('design_id'))
144+
139145@app .route ("/design/<int:design_id>" , methods = ['GET' ])
140146@jwt_required ()
141- def get_design ():
147+ def get_design (design_id ):
142148 handler = Design (email = get_jwt_identity ())
143- return handler . get_design ( design_id = request .form . get ( 'design_id' ))
144-
149+ # Use the URL param, not request.form
150+ return handler . get_design ( design_id = design_id )
145151
146152@app .route ("/designs" , methods = ['GET' ])
147153@jwt_required ()
@@ -293,28 +299,38 @@ def update_item_order(queue_id):
293299 return handler .update_item_order (queue_id = queue_id , new_order = new_order )
294300
295301
296- @app .route ("/queue_item" , methods = ['GET' , 'POST' ])
297- def handleQueueItem ():
298- if request .method == 'GET' :
299- handler = QueueItem ()
300- return handler .getAllQueueItem ()
301- else :
302- try :
303- data = request .json
304- if not data :
305- return jsonify ("No data provided" ), 400
306-
307- valid_keys = {'design_id' , 'start_time' , 'end_time' , 'display_duration' ,
308- 'scheduled' , 'scheduled_at' }
309- if not any (key in data for key in valid_keys ):
310- return jsonify ("Missing a key" ), 400
311302
312- handler = QueueItem ()
313- return handler .addNewQueueItem (data )
314- except Exception as e :
315- print ("Error processing request:" , e )
316- return jsonify ("Invalid JSON data provided:" ), 400
303+ # ————— GET all queue items (public) —————
304+ @app .route ("/queue_item" , methods = ['GET' ])
305+ def handleGetQueueItems ():
306+ handler = QueueItem ()
307+ items = handler .getAllQueueItem ()
308+ return jsonify (items ), 200
317309
310+ # ————— Create a new queue item (auth required) —————
311+ @app .route ("/queue_item" , methods = ['POST' ])
312+ @jwt_required ()
313+ def handleCreateQueueItem ():
314+ data = request .get_json () or {}
315+ required_keys = {
316+ 'design_id' ,
317+ 'start_time' ,
318+ 'end_time' ,
319+ 'display_duration' ,
320+ 'scheduled' ,
321+ 'scheduled_at'
322+ }
323+
324+ if not required_keys .issubset (data ):
325+ return jsonify ("Missing one of required keys" ), 400
326+
327+ handler = QueueItem ()
328+ try :
329+ new_item = handler .addNewQueueItem (data )
330+ return jsonify (new_item ), 201
331+ except Exception as e :
332+ print ("Error processing request:" , e )
333+ return jsonify ("Invalid JSON data provided" ), 400
318334
319335@app .route ("/queue_item/<int:queue_id>" , methods = ['GET' , 'PUT' , 'DELETE' ])
320336def handleQueueItemById (queue_id ):
@@ -349,35 +365,23 @@ def handleQueueItemById(queue_id):
349365@app .route ("/queue_item/scheduled" , methods = ['GET' ])
350366@jwt_required ()
351367def get_scheduled_designs ():
352- # If needed, you can also pass the identity to restrict results
353- # For example: identity = get_jwt_identity()
354- handler = QueueItem () # Assumes your QueueItem controller exists similarly to Design.
368+
369+ handler = QueueItem ()
355370 scheduled_items = handler .getScheduledDesigns ()
356371 return jsonify (scheduled_items ), 200
357372
358373
359374# UploadHistory-----------------------------------------------------------------------------------------------------------
360- @app .route ("/upload_history" , methods = ['GET' , 'POST' ])
361- def handleUploadHistory ():
362- if request .method == 'GET' :
363- handler = UploadHistory ()
364- return handler .getAllUploadHistory ()
365- else : # POST
366- try :
367- data = request .json
368- if not data :
369- return jsonify ("No data provided" ), 400
370375
371- valid_keys = {'design_id' , 'attempt_time' , 'file_size' , 'status' }
372- if not any (key in data for key in valid_keys ):
373- return jsonify ("Missing a key" ), 400
374-
375- handler = UploadHistory ()
376- return handler .addNewUploadHistory (data )
377- except Exception as e :
378- print ("Error processing request:" , e )
379- return jsonify ("Invalid JSON data provided" ), 400
376+ @app .route ("/upload_history" , methods = ['GET' ])
377+ @jwt_required ()
378+ def get_upload_history_for_current_user ():
379+ return jsonify (UploadHistory ().getAllUploadHistory ()), 200
380380
381+ @app .route ("/upload_history/pagination" , methods = ['GET' ])
382+ @jwt_required ()
383+ def get_upload_history_paginated ():
384+ return UploadHistory ().getAllUploadHistoryPaginated ()
381385
382386@app .route ("/upload_history/<int:history_id>" , methods = ['GET' , 'PUT' , 'DELETE' ])
383387def handleUploadHistoryById (history_id ):
@@ -391,7 +395,7 @@ def handleUploadHistoryById(history_id):
391395 return jsonify ("No data provided" ), 400
392396
393397 # For partial updates, you might remove this check or adapt it
394- valid_keys = {'design_id' , 'attempt_time' , 'file_size' , ' status' }
398+ valid_keys = {'design_id' , 'attempt_time' , 'status' }
395399 if not any (key in data for key in valid_keys ):
396400 return jsonify ("Missing a key" ), 400
397401
0 commit comments