#!/usr/bin/env python

import argparse
import requests
import pyodata
from pyodata.v2.service import EntitySetProxy
import logging
import os

def cli():
    parser = argparse.ArgumentParser()
    parser.add_argument("endpoint")

    logging.basicConfig(level=logging.DEBUG)

    args = parser.parse_args()

    client = pyodata.Client(args.endpoint, requests.Session())

    for e in client.schema.entity_sets:
        url = f"https://data.cdc.gov/resource/{e.entity_type_info.name}.csv"
        req = requests.get(url)
        with open(f"../data.cdc.gov/by-id/{e.entity_type_info.name}.csv", "w+") as fp:
            fp.write(req.text)
        name = e.name.replace("/", "-")[:250]
        byid = f"../by-id/{e.entity_type_info.name}.csv"
        byname = f"../data.cdc.gov/by-name/{name}.csv"
        os.symlink(byid, byname)

if __name__ == '__main__':
    cli()
