From e8253df2a06ccf1a3de8ea9b1c767a15b069f704 Mon Sep 17 00:00:00 2001 From: Mr-DareDevil Date: Sat, 26 Dec 2020 21:22:26 +0530 Subject: [PATCH 1/2] Upd: Update frames endpoint added --- app/db.py | 14 +++++++++++++- app/routes.py | 24 ++++++++++++++++++++---- docs/deleteframes.yml | 1 + docs/postframes.yml | 2 ++ docs/updateframes.yml | 31 +++++++++++++++++++++++++++++++ 5 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 docs/updateframes.yml diff --git a/app/db.py b/app/db.py index c213bc1..aa68f95 100644 --- a/app/db.py +++ b/app/db.py @@ -150,4 +150,16 @@ def delete_frames(db, token, frame_id): return False except Exception as e: print('ERROR: ', e) - return False \ No newline at end of file + return False + + @staticmethod + def update_frames(db, token, frame_id, frame_data): + user_id = decode_auth_token(token) + if user_id != None: + db.child('participants').child(user_id).child('frames').child(frame_id).remove() + upd_frame_id = db.child('participants').child(user_id).child('frames').push(frame_data) + frame = {"frame_id":upd_frame_id['name'], "frame_data":frame_data} + return frame + else: + print('ERROR: Token Value is None') + return None \ No newline at end of file diff --git a/app/routes.py b/app/routes.py index d112c11..e0f45fa 100644 --- a/app/routes.py +++ b/app/routes.py @@ -36,10 +36,11 @@ def login(): return make_response(jsonify({"message": "Login failed"})), 401 -@app.route(BASE_URL+'/frames', methods=['POST', 'GET', 'DELETE']) +@app.route(BASE_URL+'/frames', methods=['POST', 'GET', 'DELETE', 'PUT']) @swag_from('../docs/getframes.yml', methods=['GET']) @swag_from('../docs/postframes.yml', methods=['POST']) @swag_from('../docs/deleteframes.yml', methods=['DELETE']) +@swag_from('../docs/updateframes.yml', methods=['PUT']) def frames(): auth_header = request.headers.get('Authorization') if auth_header: @@ -68,7 +69,7 @@ def frames(): responseObject = { 'message': 'Provide valid frame data' } - return make_response(jsonify(responseObject)), 401 + return make_response(jsonify(responseObject)), 400 elif request.method == 'GET': frames_arr = Db.get_frames(database, auth_token) if frames_arr != None: @@ -78,9 +79,9 @@ def frames(): return make_response(jsonify(responseObject)), 201 else: responseObject = { - 'message': 'Something went wrong' + 'message': 'Frames cannot be fetched' } - return make_response(jsonify(responseObject)), 401 + return make_response(jsonify(responseObject)), 400 elif request.method == 'DELETE': frame_id = request.args.get('id') if Db.delete_frames(database, auth_token, frame_id): @@ -93,6 +94,21 @@ def frames(): 'message': 'Frame was not deleted!' } return make_response(jsonify(responseObject)), 400 + elif request.method == 'PUT': + frame_id = request.json['frame_id'] + frame_data = request.json['frame_data'] + upd_frame = Db.update_frames(database, auth_token, frame_id, frame_data) + if upd_frame != None: + responseObject = { + 'message': 'Frame was updated successfully', + 'data': upd_frame + } + return make_response(jsonify(responseObject)), 201 + else: + responseObject = { + 'message': 'Frame cannot be updated', + } + return make_response(jsonify(responseObject)), 400 else: responseObject = { 'message': 'Provide a valid auth token.' diff --git a/docs/deleteframes.yml b/docs/deleteframes.yml index 69ca69f..3f060db 100644 --- a/docs/deleteframes.yml +++ b/docs/deleteframes.yml @@ -6,6 +6,7 @@ tags: parameters: - in: query name: id + required: true schema: type: string description: ID of the frame to be deleted diff --git a/docs/postframes.yml b/docs/postframes.yml index e58ebd3..0a70b78 100644 --- a/docs/postframes.yml +++ b/docs/postframes.yml @@ -21,5 +21,7 @@ responses: description: Frame added successfully schema: $ref: '#/definitions/Frames' + "400": + description: Frame cannot be added "401": description: Access token is missing or invalid diff --git a/docs/updateframes.yml b/docs/updateframes.yml new file mode 100644 index 0000000..c74be48 --- /dev/null +++ b/docs/updateframes.yml @@ -0,0 +1,31 @@ +Update a frame of a user +The frame id has to be sent as a query along with the updated frame data in the request. +--- +tags: + - user +security: + - basicAuth: [] +parameters: + - in: body + name: body + required: true + schema: + required: + - frame_id + - frame_data + properties: + frame_id: + type: string + description: Id of the frame to be updated + frame_data: + type: string + description: Base64 encoded data of the frame +responses: + "201": + description: Frame was updated successfully + schema: + $ref: '#/definitions/Frames' + "400": + description: Frame cannot be updated + "401": + description: Access token is missing or invalid \ No newline at end of file From d3e4ef9d5f0a9e2af4c79ea076bb4087c612f926 Mon Sep 17 00:00:00 2001 From: Mr-DareDevil Date: Sat, 26 Dec 2020 21:35:22 +0530 Subject: [PATCH 2/2] Upd: Fixed response object in documentation --- docs/deleteframes.yml | 2 +- docs/getframes.yml | 19 +++++++++++-------- docs/postframes.yml | 2 +- docs/updateframes.yml | 2 +- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/docs/deleteframes.yml b/docs/deleteframes.yml index 3f060db..25fbfcd 100644 --- a/docs/deleteframes.yml +++ b/docs/deleteframes.yml @@ -16,7 +16,7 @@ responses: "201": description: Frame was deleted successfully schema: - $ref: '#/definitions/Frames' + $ref: '#/definitions/FrameObject' "400": description: Frame cannot be deleted "401": diff --git a/docs/getframes.yml b/docs/getframes.yml index df281a3..fbd12de 100644 --- a/docs/getframes.yml +++ b/docs/getframes.yml @@ -10,19 +10,22 @@ responses: description: Frames were fetched successfully schema: $ref: '#/definitions/Frames' - "401": description: Access token is missing or invalid definitions: + FrameObject: + type: object + properties: + frame_id: + type: string + description: Reference Id of the frame + frame_data: + type: string + description: Base64 encoded data of the frame Frames: type: array description: Array of Frame object items: type: object - properties: - frame_id: - type: string - description: Reference Id of the frame - frame_data: - type: string - description: Base64 encoded data of the frame + $ref: '#/definitions/FrameObject' + diff --git a/docs/postframes.yml b/docs/postframes.yml index 0a70b78..af8178b 100644 --- a/docs/postframes.yml +++ b/docs/postframes.yml @@ -20,7 +20,7 @@ responses: "200": description: Frame added successfully schema: - $ref: '#/definitions/Frames' + $ref: '#/definitions/FrameObject' "400": description: Frame cannot be added "401": diff --git a/docs/updateframes.yml b/docs/updateframes.yml index c74be48..f9dd7df 100644 --- a/docs/updateframes.yml +++ b/docs/updateframes.yml @@ -24,7 +24,7 @@ responses: "201": description: Frame was updated successfully schema: - $ref: '#/definitions/Frames' + $ref: '#/definitions/FrameObject' "400": description: Frame cannot be updated "401":