#!/usr/bin/env python
"""lightcast-smart-dataset

Usage:
    lightcast-smart-dataset uk occupation-insight soc --username=<username> --password=<password> --occupation=<occupation> --area=<area>
    [--area-level=<level>] [--occupation-level=<level>]
    lightcast-smart-dataset uk occupation-insight occupation --username=<username> --password=<password> --occupation=<occupation> --area=<area>
    [--area-level=<level>]
    [--occupation-level=<level>]
    lightcast-smart-dataset global occupation-insight occupation --username=<username> --password=<password> --occupation=<occupation> --area=<area>
    [--area-level=<level>]
    [--occupation-level=<level>]
    lightcast-smart-dataset -h | --help


Options:
    -h --help                     Show this screen
    uk|global                     Use the UK Lightcast dataset or the global Lightcast dataset
    occupation-insight            Use the Occupation Insight API
    soc|occupation                Use the SOC or the Lightcast Occupation library
    --username                    Your username
    --password                    Your password
    --occupation=<occupation>     The label of the desidered occupation
    --area=<area>                 The label of the desidered area
    --area-level=<level>          Level 1,2,3,4 (for UK) or 1,2 (for Global)
    --occupation-level<level>     Level 1,2,3,4 (for Lightcast) or 1,2,3,4 (for SOC)
"""
from client.client import LightcastSmartDataset
from docopt import docopt
import sys


if __name__ == '__main__':
    args = docopt(__doc__)
    username = args.get('--username')
    password = args.get('--password')
    occupation = args.get('--occupation')
    area = args.get('--area')
    occupation_level = args.get('--occupation-level')
    area_level = args.get('--area-level')

    if args.get('uk'):
        client = LightcastSmartDataset(region=username, pasword=password)
        if args.get('soc') and args.get('occupation-insight'):
            response = client.ukDataset().getSocOccupationInsight(
                occupation=occupation,
                occupation_level=occupation_level,
                area=area,
                area_level=area_level
            )
            print(response.raw_response.decode("utf-8"))

    elif args.get('global'):
        client = LightcastSmartDataset(region=username, pasword=password)
        if args.get('occupation-insight'):
            response = client.globalDataset().getOccupationInsight(
                occupation=occupation,
                occupation_level=occupation_level,
                area=area,
                area_level=area_level
            )
            print(response.raw_response.decode("utf-8"))
    else:
        print('[ERROR] Invalid operation, please check usage again',
              file=sys.stderr)
