src/catedit/tasks.py
author ymh <ymh.work@gmail.com>
Wed, 14 Aug 2024 22:08:14 +0200
changeset 142 640fb0f13022
parent 123 1e1c8f98f3a8
permissions -rw-r--r--
server and docker migration

from catedit import app, celery
from catedit.models import CategoryManager
import catedit.persistence
import logging

from flask import g
import requests


logger = logging.getLogger(__name__)

@celery.task
def submit_changes(modified_categories, deleted_categories, message, repository, token):
    with app.app_context():
        g.user_code = token
        cat_manager_instance = CategoryManager(
            getattr(
                catedit.persistence,
                app.config["PERSISTENCE_CONFIG"]["METHOD"]
            )(repository=repository),
        )

        if cat_manager_instance.persistence.session_compliant is True:
            cat_manager_instance.save_changes(
                deleted_cat_dict=deleted_categories,
                modified_cat_dict=modified_categories,
                message=message
            )
            registry_key = "categories_"+repository+"_keys"
            r = requests.post(app.config['BASE_URL']+"/meta/cache-clear/"+registry_key, verify=False, headers={ "HOST": app.config['SERVER_NAME'] })
            #r = requests.post(app.config['BASE_URL']+"/meta/cache-clear")
            try:
                r.raise_for_status()
            except:
                logger.exception("Error when clearing cache.")
                pass