in backend-apis/app/utils/utils_workspace.py [0:0]
def reset_docs_content(template_docs_id: str, case_docs_id: str):
"""
Args:
template_docs_id:
case_docs_id:
Raises:
HTTPException:
"""
document = (
ws.docs()
.documents()
.get(documentId=template_docs_id)
.execute(num_retries=20)
)
docs_template_content = document["body"]["content"]
# get content of the current doc and delete its content
current_document = (
ws.docs()
.documents()
.get(documentId=case_docs_id)
.execute(num_retries=20)
)
current_document_content = current_document["body"]["content"]
try:
# Delete everything
requests = []
requests = [
{
"deleteContentRange": {
"range": {
"startIndex": 1,
"endIndex": current_document_content[-1]["endIndex"]
- 1,
}
}
}
]
ws.docs().documents().batchUpdate(
documentId=case_docs_id, body={"requests": requests}
).execute(num_retries=20)
# Update document with template
requests = []
for i in docs_template_content[1:]:
for j in i["paragraph"]["elements"]:
requests.append(
{
"insertText": {
"text": j["textRun"]["content"],
"location": {"index": j["startIndex"]},
}
}
)
if j["textRun"]["textStyle"]:
requests.append(
{
"updateTextStyle": {
"range": {
"startIndex": j["startIndex"],
"endIndex": j["endIndex"],
},
"textStyle": {**j["textRun"]["textStyle"]},
"fields": ", ".join(
j["textRun"]["textStyle"].keys()
),
}
}
)
if i["paragraph"].get("paragraphStyle", ""):
requests.append(
{
"updateParagraphStyle": {
"range": {
"startIndex": i["startIndex"],
"endIndex": i["endIndex"],
},
"paragraphStyle": {
**i["paragraph"]["paragraphStyle"]
},
"fields": ", ".join(
[
k
for k in i["paragraph"][
"paragraphStyle"
].keys()
if k != "headingId"
]
),
}
}
)
ws.docs().documents().batchUpdate(
documentId=case_docs_id, body={"requests": requests}
).execute(num_retries=20)
except Exception as e:
raise HTTPException(status_code=400, detail=str(e)) from e