@@ -243,15 +243,33 @@ def update_image(filename):
243243 return redirect (url_for ("index" ))
244244
245245 try :
246- doc_id = get_doc_id_by_filename (filename )
247-
248- if not doc_id :
246+ # Fetch existing doc to preserve all fields
247+ response = requests .get (LOGIC_READ , timeout = 30 )
248+ data = response .json ()
249+ images = data if isinstance (data , list ) else data .get ("value" , [])
250+
251+ existing = None
252+ for img in images :
253+ if img .get ("filename" ) == filename :
254+ existing = img
255+ break
256+
257+ if not existing :
249258 flash ("Image not found in database." , "error" )
250259 return redirect (url_for ("index" ))
251260
261+ doc_id = existing .get ("id" )
252262 tags = [t .strip () for t in request .form .get ("tags" , "" ).split ("," ) if t .strip ()]
263+
264+ # Merge form fields into existing doc — preserves image_url, size_kb etc.
253265 payload = {
254266 "id" : doc_id ,
267+ "filename" : existing .get ("filename" ),
268+ "image_url" : existing .get ("image_url" ),
269+ "size_kb" : existing .get ("size_kb" ),
270+ "size_mb" : existing .get ("size_mb" ),
271+ "upload_time" : existing .get ("upload_time" ),
272+ "uploaded_by" : existing .get ("uploaded_by" ),
255273 "title" : request .form .get ("title" , "" ).strip (),
256274 "description" : request .form .get ("description" , "" ).strip (),
257275 "category" : request .form .get ("category" , "" ).strip (),
@@ -263,6 +281,7 @@ def update_image(filename):
263281 "location" : request .form .get ("location" , "" ).strip (),
264282 "tags" : tags ,
265283 }
284+
266285 logger .info (f"Calling LOGIC_UPDATE with id: { doc_id } " )
267286 r = requests .request ("PATCH" , LOGIC_UPDATE , json = payload , timeout = 30 )
268287 logger .info (f"LOGIC_UPDATE status: { r .status_code } , response: { r .text [:200 ]} " )
@@ -287,4 +306,4 @@ def health():
287306
288307if __name__ == "__main__" :
289308 port = int (os .environ .get ("PORT" , 5001 ))
290- app .run (port = port )
309+ app .run (port = port )
0 commit comments