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
- Realtime with multiple connections
I need the Realtime on multiple Collections for diffrent applicational logic. So my question is: Is there a way to have only 1 Websocket connection or do I need...
- Can't login or deploy functions in Appwr...
Hello, since i updatet to the appwrite cli 6.1.0 i can't login or deploy functions with the cli. When i call the command: "appwrite get account --verbose" i ge...
- Create admin user?
I'm not really sure how this is supposed to work, I installed Appwrite through docker-compose and set it up. When I launched the app and went into it, I created...