[SOLVED] Updating an attribute in an event for the updated document?
- 0
- Resolved
- Self Hosted
- Functions
Just curious, I have an event on every update for my databases that basically checks if something is a searchable document (they have the attribute search) and then it puts all the searchable attributes into a JSON array of the searchable stuff and is supposed to update it (so they are always kept up to date automatically) but that is not seemingly working
def main(context):
# Why not try the Appwrite SDK?
client = (
Client()
.set_endpoint("https://appwrite.pva.ai/v1")
.set_project(os.environ["APPWRITE_FUNCTION_PROJECT_ID"])
.set_key(os.environ["APPWRITE_API_KEY"])
.set_self_signed(True)
)
database = Databases(client)
context.log("UpdateSearchColumns function called")
document = context.req.body
database_id = document.get("$databaseId")
collection_id = document.get("$collectionId")
document_id = document.get("$id")
searchable = {}
if collection_id in searchable_collections:
# Get keys of dict and compare to searchable_attributes
# then take all searchable attributes, combine them into one object, and update the document with search object as a JSON string version
# of the attributes in one object
searchable = {}
for key in document.keys():
if key in searchable_attributes and document.get("key", None) is not None:
searchable[key] = document[key]
searchable = json.dumps(searchable)
if document.get("search", None) != searchable:
context.log(f"Updated Document: {json.dumps(document, indent=4)}")
database.update_document(database_id, collection_id, document_id, { "search": searchable })
return context.res.empty()
It should work, and it says updated, but the document has no text in it's search attribute
Nevermind, I was trying to get document.get("key") instead of key
[SOLVED] Updating an attribute in an event for the updated document?
Recommended threads
- [SOLVED] Error upgrading from 1.8.1 to 1...
DO Self-hosted server failed to upgrade with this error "Error response from daemon: client version 1.52 is too new. Maximum supported API version is 1.42". U...
- MariaDB refuses to connect to appwrite
Earlier, I tried updating my Appwrite version from 18.1.x to the latest release because my Flutter package required it to function properly. I used the official...
- executeFunction intermittently throws Fo...
Environment: Flutter app using the Appwrite Flutter SDK, calling executeFunction for [describe endpoint, e.g. live-stream-related function]. *Description*: Int...