Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 22 additions & 13 deletions changai/changai/api/v2/operations.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

@frappe.whitelist(allow_guest=False)
def execute_insert(payload: dict) -> Any:
from changai.changai.api.v2.auto_gen_api import update_masterdata
try:
if isinstance(payload, str):
payload = json.loads(payload) if payload else {}
Expand Down Expand Up @@ -55,6 +56,7 @@ def execute_insert(payload: dict) -> Any:
f"{doc.doctype} '{doc.name}' created successfully "
f"with linked {after_insert.get('linked_doctype', '')}."
)
update_masterdata()

return result
# ─── CASE 2: INSERT CHILD ROW ─────────────────────────
Expand All @@ -70,7 +72,7 @@ def execute_insert(payload: dict) -> Any:
doc = frappe.get_doc(payload["doctype"], parent_name)
doc.append(payload["child_table"], payload["data"])
doc.save(ignore_permissions=False)

update_masterdata()
return {
"success": True,
"operation": "insert_child",
Expand Down Expand Up @@ -109,7 +111,7 @@ def execute_insert(payload: dict) -> Any:
parent_doc = frappe.get_doc(payload["doctype"], parent_name)
parent_doc.set(payload["link_via"], linked_doc.name)
parent_doc.save(ignore_permissions=False)

update_masterdata()

return {
"success": True,
Expand Down Expand Up @@ -154,7 +156,7 @@ def execute_insert(payload: dict) -> Any:
parent_doc = frappe.get_doc(payload["doctype"], parent_name)
parent_doc.set(payload["link_via"], linked_doc.name)
parent_doc.save(ignore_permissions=False)

update_masterdata()

return {
"success": True,
Expand Down Expand Up @@ -190,8 +192,7 @@ def execute_insert(payload: dict) -> Any:
"record": record,
"error": str(e)
})


update_masterdata()
return {
"success": True,
"operation": "insert_bulk",
Expand Down Expand Up @@ -222,7 +223,7 @@ def execute_insert(payload: dict) -> Any:
**payload["data"]
})
doc.insert(ignore_permissions=False)

update_masterdata()
return {
"success": True,
"operation": "insert_if_not_exists",
Expand Down Expand Up @@ -394,6 +395,7 @@ def _unset_primary_flags(doc, child_table: str, data: dict):

@frappe.whitelist(allow_guest=False)
def execute_update(payload: dict):
from changai.changai.api.v2.auto_gen_api import update_masterdata
try:
if isinstance(payload, str):
payload = json.loads(payload)
Expand All @@ -409,7 +411,7 @@ def execute_update(payload: dict):

failed = [r for r in results if r.get("error")]
success = [r for r in results if r.get("success")]

update_masterdata()
return {
"success": len(failed) == 0,
"operation": "multi_payload",
Expand Down Expand Up @@ -459,7 +461,7 @@ def execute_update(payload: dict):
for field, value in payload["data"].items():
doc.set(field, value)
doc.save(ignore_permissions=False)

update_masterdata()
return {
"success": True,
"operation": "update",
Expand Down Expand Up @@ -521,6 +523,8 @@ def execute_update(payload: dict):
doc.append(payload["child_table"], payload["data"])

doc.save(ignore_permissions=False)
update_masterdata()

return {
"success": True,
"operation": "update_child",
Expand Down Expand Up @@ -633,6 +637,8 @@ def execute_update(payload: dict):
linked_doc.append(payload["child_table"], payload["data"])

linked_doc.save(ignore_permissions=False)
update_masterdata()

return {
"success": True,
"operation": operation,
Expand All @@ -649,6 +655,8 @@ def execute_update(payload: dict):
for field, value in payload["data"].items():
linked_doc.set(field, value)
linked_doc.save(ignore_permissions=False)
update_masterdata()

return {
"success": True,
"operation": operation,
Expand Down Expand Up @@ -686,6 +694,7 @@ def execute_update(payload: dict):

@frappe.whitelist(allow_guest=False)
def execute_delete(payload:dict):
from changai.changai.api.v2.auto_gen_api import update_masterdata
try:
if isinstance(payload, str):
payload = json.loads(payload)
Expand Down Expand Up @@ -725,7 +734,8 @@ def execute_delete(payload:dict):
deleted.append(record.name)



update_masterdata()

return {
"success": True,
"operation": "delete",
Expand Down Expand Up @@ -764,8 +774,7 @@ def execute_delete(payload:dict):
deleted = before - len(doc.get(payload["child_table"]))

doc.save(ignore_permissions=False)


update_masterdata()
return {
"success": True,
"operation": "delete_child",
Expand Down Expand Up @@ -848,7 +857,7 @@ def execute_delete(payload:dict):
)

linked_doc.save(ignore_permissions=False)

update_masterdata()
return {
"success": True,
"operation": "delete_linked_child",
Expand All @@ -869,7 +878,7 @@ def execute_delete(payload:dict):
)



update_masterdata()
return {
"success": True,
"operation": "delete_linked",
Expand Down
6 changes: 3 additions & 3 deletions changai/changai/api/v2/schema_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ def is_doctype_schema_changed(doc, last_sync):
latest = max(candidates, default=None)
return bool(latest and last_sync and latest > get_datetime(last_sync))

def is_master_data_changed_test(last_sync, stored_data: list):
def is_master_data_changed(last_sync, stored_data: list):
for doc in MASTER_DOCTYPES:
meta = frappe.get_meta(doc)
title_field = meta.title_field or "name"
Expand All @@ -219,7 +219,7 @@ def is_master_data_changed_test(last_sync, stored_data: list):
# ✅ Only compare rows matching title_field
allowed_fields = [f.fieldname for f in meta.fields] + ["name"]
if title_field not in allowed_fields:
frappe.log_error(f"Invalid title_field: {title_field}", "is_master_data_changed_test")
frappe.log_error(f"Invalid title_field: {title_field}", "is_master_data_changed")
continue

live_records = frappe.get_all(
Expand Down Expand Up @@ -280,7 +280,7 @@ def check_file_updates(file_name: str):
else:
stored_data = []

if is_master_data_changed_test(last_sync, stored_data):
if is_master_data_changed(last_sync, stored_data):
changed = True

days = days_diff(today(), getdate(last_sync))
Expand Down
Loading