awacke1 commited on
Commit
b8cd397
1 Parent(s): 818d24c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -3
app.py CHANGED
@@ -196,18 +196,34 @@ def archive_all_data(client):
196
  except Exception as e:
197
  return f"An error occurred while archiving data: {str(e)}"
198
 
 
 
 
 
 
 
 
 
 
 
 
 
 
199
  # Cosmos DB operations
200
  def create_item(client, db_name, container_name):
201
  st.subheader("Create New Item")
202
  item_id = st.text_input("Item ID")
203
- item_data = st.text_area("Item Data (JSON format)")
 
204
 
205
  if st.button("💾 Save New Item"):
206
  try:
207
  container = client.get_database_client(db_name).get_container_client(container_name)
208
- new_item = {"id": item_id, **json.loads(item_data)}
 
209
  container.create_item(body=new_item)
210
  st.success("New item created successfully!")
 
211
  st.rerun()
212
  except Exception as e:
213
  st.error(f"Error creating item: {str(e)}")
@@ -220,12 +236,19 @@ def edit_item(client, db_name, container_name, item_id):
220
  edited_item = {}
221
  for key, value in item.items():
222
  if key not in ['_rid', '_self', '_etag', '_attachments', '_ts']:
223
- edited_item[key] = st.text_input(key, value)
 
 
 
 
 
 
224
 
225
  if st.button("💾 Save Changes"):
226
  try:
227
  container.upsert_item(body=edited_item)
228
  st.success("Item updated successfully!")
 
229
  st.rerun()
230
  except Exception as e:
231
  st.error(f"Error updating item: {str(e)}")
 
196
  except Exception as e:
197
  return f"An error occurred while archiving data: {str(e)}"
198
 
199
+ # New function to convert text to JSON
200
+ def text_to_json(text):
201
+ lines = text.split('\n')
202
+ json_data = {}
203
+ for line in lines:
204
+ if ':' in line:
205
+ key, value = line.split(':', 1)
206
+ json_data[key.strip()] = value.strip()
207
+ else:
208
+ # If there's no colon, use the whole line as a key with an empty string as value
209
+ json_data[line.strip()] = ""
210
+ return json_data
211
+
212
  # Cosmos DB operations
213
  def create_item(client, db_name, container_name):
214
  st.subheader("Create New Item")
215
  item_id = st.text_input("Item ID")
216
+ item_data = st.text_area("Item Data (Text format)",
217
+ value="🌟 Cosmos DB and GitHub Integration\nCreate New Item\nItem ID\nItem Data (Text format)\n💾 Save New Item")
218
 
219
  if st.button("💾 Save New Item"):
220
  try:
221
  container = client.get_database_client(db_name).get_container_client(container_name)
222
+ json_data = text_to_json(item_data)
223
+ new_item = {"id": item_id, "content": json_data}
224
  container.create_item(body=new_item)
225
  st.success("New item created successfully!")
226
+ st.json(new_item) # Display the created item in JSON format
227
  st.rerun()
228
  except Exception as e:
229
  st.error(f"Error creating item: {str(e)}")
 
236
  edited_item = {}
237
  for key, value in item.items():
238
  if key not in ['_rid', '_self', '_etag', '_attachments', '_ts']:
239
+ if key == 'content':
240
+ # Convert the JSON content back to text for editing
241
+ text_content = "\n".join([f"{k}: {v}" for k, v in value.items()])
242
+ edited_text = st.text_area(key, text_content)
243
+ edited_item[key] = text_to_json(edited_text)
244
+ else:
245
+ edited_item[key] = st.text_input(key, value)
246
 
247
  if st.button("💾 Save Changes"):
248
  try:
249
  container.upsert_item(body=edited_item)
250
  st.success("Item updated successfully!")
251
+ st.json(edited_item) # Display the updated item in JSON format
252
  st.rerun()
253
  except Exception as e:
254
  st.error(f"Error updating item: {str(e)}")