import pandas as pd
import requests

from utils.opensearch import opensearch_client


def documents_to_database(documents_list, os_client=opensearch_client):
    # Check if opensearch is available
    if not os_client.ping():
        raise requests.exceptions.ConnectionError("Opensearch is not reachable")
    # Check if the specified index exists
    if not os_client.indices.exists(index=documents_list['index'].iloc[0]):
        raise requests.exceptions.HTTPError(f"Index '{documents_list['index'].iloc[0]}' does not exist")
    # Insert each document into opensearch index(es)
    for document in documents_list.to_dict(orient='records'):
        index_name = document.pop('index', None)
        if not index_name:
            raise ValueError("Document must have an 'index' field")
        os_client.index(index=index_name,
                        body=document)
