HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/buyercall/buyercall/integrations/elasticsearch/__init__.py
import logging
from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search, UpdateByQuery
from buyercall.blueprints import flask_environment
from .documents import ErrorLogger, ActivityLogger, LeadInteraction, InteractionTask

logger = logging.getLogger(__name__)


class ElasticSearchClient:
    """ Create all elastic search mappings here"""
    es = None
    search = None
    update = None

    def init_app(self, app):
        try:
            elasticsearch_hosts = app.config.get('ELASTIC_SEARCH_URL', None)
            elasticsearch_user = app.config.get('ELASTIC_SEARCH_USERNAME', None)
            elasticsearch_password = app.config.get('ELASTIC_SEARCH_PASSWORD', None)
            if elasticsearch_hosts:
                self.es = Elasticsearch(hosts=elasticsearch_hosts, http_auth=(
                    elasticsearch_user, elasticsearch_password))
                # self.es = Elasticsearch(hosts=elasticsearch_hosts)
                self.search = Search(using=self.es)
                self.update = UpdateByQuery(using=self.es)  # Unable to update index later

                # Get current app state
                flask_env = flask_environment(app)

                # Init Document mappings
                # ErrorLogger().init(index=f'buyercall-error-log-{flask_env}', using=self.es)
                # ActivityLogger().init(index=f'buyercall-notification-log-{flask_env}', using=self.es)
                # LeadInteraction().init(index=f'buyercall-lead-interaction-{flask_env}', using=self.es)
                # InteractionTask().init(index=f'buyercall-interaction-task-{flask_env}', using=self.es)
            else:
                logger.error("ElasticSearch Mapping Error: Hosts not given")
        except Exception as ex:
            logger.error("ElasticSearch Mapping Error: ", ex)
        return