def delete(url, profile): util = pyke.Util(profile=profile) resp = util.cli_request('DELETE',\ util.build_url('{app}{url}', {'url': url})) click.echo(json.dumps(resp))
def select_profile(ctx, param, value): profiles = auth.list_profiles() profile_names = [x.get('profileName') for x in profiles] if not value: format = "{Option} {profileName} {env} {orgName} {orgId}" titles = {"profileName": "Profile Name", "env": "Env", "orgName": "Org Name", "orgId": "Org ID"} profile_data = Menu().get_user_select(profiles, format, sort='profileName', titles=titles) else: if value not in profile_names: raise click.BadParameter(click.style('You must provide the name of a profile that you have configured', fg='red')) # Use this to update old profiles profile_data = auth.get_profile_data(value) if 'profileName' not in profile_data.keys(): profile_data['profileName'] = value auth.update_profile(value, profile_data) if profile_data.get('orgId') is None or profile_data.get('orgId') == '': raise click.BadParameter(click.style('You must finish configuring this profile before you can use it', fg='red')) env_name = profile_data.get('env') env_data = Menu().sanatize_data(auth.get_env_data(env_name)) ctx.obj = {**profile_data, **env_data} return pyke.Util(ctx=ctx.obj)
def post(url, profile, data): util = pyke.Util(profile=profile) req_data = serialize_data(data) resp = util.cli_request('POST',\ util.build_url('{app}{url}', {'url': url}), data=json.dumps(req_data)) click.echo(json.dumps(resp))
def get(url, profile): util = pyke.Util(profile=profile) if url.startswith('/auth'): resp = util.cli_request('GET', util.build_url('{authUri}{url}', {'url': url})) else: resp = util.cli_request( 'GET', util.build_url('{experienceCloudUri}{url}', {'url': url})) click.echo(json.dumps(resp))
def post(url, profile, data): util = pyke.Util(profile=profile) req_data = serialize_data(data) if url.startswith('/auth'): resp = util.cli_request('POST',\ util.build_url('{authUri}{url}', {'url': url}), data=json.dumps(req_data)) else: resp = util.cli_request('POST',\ util.build_url('{experienceCloudUri}{url}', {'url': url}), data=json.dumps(req_data)) click.echo(json.dumps(resp))
def get_company_context(ctx): util = pyke.Util(ctx=ctx) token_resp = util.login() headers = { 'Authorization': 'Bearer ' + token_resp.get('access_token'), 'Content-Type': 'application/json' } resp = requests.get(util.build_url('{app}/auth/v1/context'), headers=headers, verify=verify_tls) if resp.status_code == 200: return resp.json()['payload']['data'] else: raise click.ClickException( click.style('Error getting company context', fg='red'))
def list(env, format, filter, json_flag): handlers = {'instanceType': lambda x: 'dev' if x == 'cc' else x} if 'instanceType=dev' in filter: filter = filter.replace('instanceType=dev', 'instanceType=cc') if 'isTest=None' in filter: filter = filter.replace('isTest=None', 'instanceType=cc') env_format = '{envName} {app}' titles = {'envName': 'Env Name', 'app': 'App'} if not env: envs = pyke.auth.list_envs() env_data = pyke.Menu().get_user_select(envs, env_format, titles=titles) else: env_data = pyke.auth.get_env_data(env) util = pyke.Util(ctx=env_data) access_token = util.login_without_context() util.ctx.update({'accessToken': access_token}) headers = { 'Authorization': 'Bearer ' + access_token, 'Content-Type': 'application/json' } app_name = env_data.get('app') if not app_name: raise click.ClickException(click.style("Env not configured", fg='red')) resp = requests.get('{}/auth/v1/me/companies?sort=name&{}'.format( app_name, filter), headers=headers, verify=verify_tls) if json_flag: click.echo(resp.text) return pyke.Menu().print_menu(resp.json()['payload']['data'], format, handlers=handlers)
def child_companies(profile, format, filter, json_flag): util = pyke.Util() if 'instanceType=dev' in filter: filter = filter.replace('instanceType=dev', 'instanceType=cc') if 'isTest=None' in filter: filter = filter.replace('isTest=None', 'instanceType=cc') handlers = {'instanceType': lambda x: 'dev' if x == 'cc' else x} resp = util.cli_request( 'GET', util.build_url('{app}/auth/v1/company/child-companies?{filter}', {'filter': filter})) if json_flag: click.echo(json.dumps(resp)) return util.print_table(resp['payload']['data'], format, handlers=handlers)
def add(profile_name, env, format): if not profile_name: profile_name = click.prompt(click.style("Profile Name", fg="white"), type=str) click.echo(' ') titles = { 'envName': 'Env Name', 'app': 'App', 'audience': 'Audience', 'token': 'Token' } headers = '{envName} {app} {audience} {token}' if env: env_data = pyke.auth.get_env_data(env) else: envs = pyke.auth.list_envs() env_data = pyke.Menu().get_user_select(envs, headers, sort='envName', titles=titles) util = pyke.Util(ctx=env_data) titles = { 'name': 'Org Name', 'instanceType': 'Org Type', 'isTest': 'Test Org' } headers = "{name} {instanceType} {isTest}" company = pyke.Menu().get_user_select(util.get_companies(), headers, sort='orgName', titles=titles) profile_data = {} profile_data["orgId"] = company.get('id') profile_data["orgName"] = company.get('name') profile_data["env"] = util.ctx.get('envName') profile_data["instanceType"] = company.get('instanceType') profile_data["profileName"] = profile_name pyke.auth.update_profile(profile_name, profile_data) util.ctx.update(profile_data) company_context = get_company_context(util.ctx).get('company') if company_context: profile_data = pyke.auth.get_profile_data(profile_name) profile_data['experienceCloudUri'] = company_context[ 'experienceCloudUri'] pyke.auth.update_profile(profile_name, profile_data) else: raise click.ClickException( click.style('Error getting company context', fg='red')) titles = { 'profileName': 'Profile', 'env': 'Environment', 'orgName': 'Org Name', 'orgId': 'Org ID' } pyke.Menu().print_menu([profile_data], format, titles=titles)
def get(url, profile): util = pyke.Util(profile=profile) resp = util.cli_request('GET', util.build_url('{app}{url}', {'url': url})) click.echo(json.dumps(resp))