WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
File tree Expand file tree Collapse file tree 2 files changed +46
-0
lines changed
Expand file tree Collapse file tree 2 files changed +46
-0
lines changed Original file line number Diff line number Diff line change @@ -142,6 +142,27 @@ def update_experience(item_id):
142142
143143 return jsonify ({"error" : "Experience not found" }), 404
144144
145+ @app .route ("/resume/experience/<int:item_id>" , methods = ["DELETE" ])
146+ def delete_experience (item_id ):
147+ """
148+ Delete an experience by index.
149+
150+ Parameters
151+ ----------
152+ item_id : int
153+ The index of the experience to delete.
154+
155+ Returns
156+ -------
157+ Response
158+ JSON message indicating success or error.
159+ Returns 404 if experience not found.
160+ Returns 400 if request is invalid.
161+ """
162+ if item_id < 0 or item_id >= len (data ["experience" ]):
163+ return jsonify ({"error" : "Invalid request" }), 400
164+ data ["experience" ].pop (item_id )
165+ return jsonify ({"message" : "Experience has been deleted" }), 200
145166
146167@app .route ("/resume/education" , methods = ["GET" , "POST" ])
147168def education ():
Original file line number Diff line number Diff line change @@ -208,6 +208,31 @@ def test_update_experience_with_missing_fields():
208208 assert response .status_code == 400
209209 assert "error" in response .json
210210
211+ def test_delete_experience ():
212+ """
213+ add an experience entry
214+ delete that experience entry by index.
215+ Check that it is deleted successfully with correct response.
216+ """
217+ example_experience = {
218+ "title" : "Backend Engineer" ,
219+ "company" : "Google" ,
220+ "start_date" : "March 2023" ,
221+ "end_date" : "Present" ,
222+ "description" : "Working on scalable systems" ,
223+ "logo" : "example-logo.png" ,
224+ }
225+
226+ post_response = app .test_client ().post ("/resume/experience" , json = example_experience )
227+ assert post_response .status_code == 201
228+ item_id = post_response .json ["id" ]
229+ delete_response = app .test_client ().delete (f"/resume/experience/{ item_id } " )
230+ assert delete_response .status_code == 200
231+ assert delete_response .json ["message" ] == "Experience has been deleted"
232+ delete_response = app .test_client ().delete (f"/resume/experience/{ item_id } " )
233+ assert delete_response .status_code == 400
234+ assert delete_response .json ["error" ] == "Invalid request"
235+
211236
212237def test_education ():
213238 """
You can’t perform that action at this time.
0 commit comments