Advertisement
Guest User

Untitled

a guest
Apr 26th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. import click
  2. import requests
  3.  
  4. template = u"""/*
  5. Name: {name}
  6. Description: {description}
  7. Data source: {data_source}
  8. Created By: {created_by}
  9. Last Update At: {last_updated_at}
  10. */
  11.  
  12. {query}"""
  13.  
  14.  
  15. def get_queries(url, api_key):
  16. queries = []
  17. headers = {'Authorization': 'Key {}'.format(api_key)}
  18. path = "{}/api/queries".format(url)
  19. has_more = True
  20. page = 1
  21. while has_more:
  22. response = requests.get(path, headers=headers, params={'page': page}).json()
  23. queries.extend(response['results'])
  24. has_more = page * response['page_size'] + 1 <= response['count']
  25. page += 1
  26.  
  27. return queries
  28.  
  29.  
  30. def save_queries(queries):
  31. for query in queries:
  32. filename = 'query_{}.sql'.format(query['id'])
  33. with open(filename, 'w') as f:
  34. content = template.format(name=query['name'],
  35. description=query['description'],
  36. data_source=query['data_source_id'],
  37. created_by=query['user']['name'],
  38. last_updated_at=query['updated_at'],
  39. query=query['query'])
  40. #f.write(content.encode('utf-8'))
  41. print(query)
  42. f.write(content)
  43.  
  44.  
  45. @click.command()
  46. @click.option('--redash-url')
  47. @click.option('--api-key', help="API Key")
  48. def main(redash_url, api_key):
  49. queries = get_queries(redash_url, api_key)
  50. save_queries(queries)
  51.  
  52.  
  53. if __name__ == '__main__':
  54. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement