import requests
import os
import json

def get_json(catalog_id):
    filename = f'cache/barnesfoundation_{catalog_id}.html'

    url = 'https://collection.barnesfoundation.org/api/search'

    body = {"query": {"bool": {"filter": {"exists": {"field": "imageSecret"}},
                               "must": {"match": {"_id": int(catalog_id)}}}}}

    if os.path.exists(filename):
        return json.load(open(filename))
    else:
        r = requests.get(url, params={'body': json.dumps(body)})
        print(r.url)
        open(filename, 'w').write(r.text)
        return r.json()

def parse_catalog(data):
    hit = data['hits']['hits'][0]['_source']

    return {
        'institution': 'Barnes Foundation',
        'description': hit['shortDescription'],
        'keywords': [tag['tag'] for tag in hit['tags']],
    }

def get_catalog(catalog_id):
    data = get_json(catalog_id)
    return parse_catalog(data)