#!/usr/bin/python3

import os
import sys
import re
import edcapi
import logging
import argparse

from edcapi.EDCArgumentParser import EDCArgumentParser
from edcapi.EDCHelpFormatter import EDCHelpFormatter

def main():
	
	' parse arguments '
	parser = EDCArgumentParser(
		prog="edc-get-account-limits",
		usage="edc-get-account-limits [OPTIONS]",
		formatter_class=EDCHelpFormatter,
		add_help=False,
		epilog="""\
Example:

    edc-get-account-limits
    edc-get-account-limits --output-path=/tmp/account_limits.json
    
"""
		)
	parser.add_argument(
		"--help",
		action="help",
		help="Display this help message"
	)
	
	parser.add_argument(
		"--output-path",
		nargs="?",
		default=None,
		help="Output path where to store output"
	)

	parser.add_argument(
		"--api-key",
		nargs="?",
		default=None,
		required=False,
		help="API key (optional if not in ~/.netrc)')"
	)
	
	parser.add_argument(
		"--debug",
		action="store_const",
		default=0,
		const=1,
		help=argparse.SUPPRESS,
	)
	
	parser.add_argument(
		"--log-level",
		nargs="?",
		default="INFO",
		choices=["DEBUG","INFO","WARNING","ERROR","CRITICAL"],
		help="Set Log Level (Default: INFO)"
	)
	
	parser.add_argument(
		"--output-format",
		default="json",
		choices=["json","csv","list"],
		help="Output format ('json','csv','list')"
	)
		

	args = parser.parse_args()
		
	if args.api_key == None:
		edc_api = edcapi.API(debug=args.debug,log_level=args.log_level)
	else:
		edc_api = edcapi.API(api_key=args.api_key,debug=args.debug,log_level=args.log_level)
	
	response = edc_api.get_account_limits(\
		output_path=args.output_path,\
		output_format=args.output_format,\
		)
	
	if args.output_path == None:
		print (response)
	
if __name__ == "__main__":

	main()