Created
August 11, 2016 09:35
-
-
Save geekpete/66519d78686b0aba3c4c5687704a5f72 to your computer and use it in GitHub Desktop.
salesforce redirect flask app
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env python | |
| # -*- coding: utf-8 -*- | |
| # | |
| # Simple flask app to redirect a case number to a case url | |
| # | |
| __author__ = 'Peter Dyson <[email protected]>' | |
| __version__ = '0.1.0' | |
| from flask import Flask, redirect | |
| from simple_salesforce import Salesforce | |
| sf_conn = Salesforce(username='yourlogin', | |
| password='yourpassword', | |
| security_token='yourtoken') | |
| base_url = "https://elastic.my.salesforce.com/console#%2F" | |
| def sf_case_number_to_url(case_number, sf_conn, base_url): | |
| """ | |
| Return a salesforce case url from a given case number | |
| :return: a salesforce case url or a not found message | |
| """ | |
| # strip leading zeros if any are there | |
| case_number = case_number.lstrip('0') | |
| target_query = "Select Status from Case where CaseNumber = '" + "000" + case_number + "'" | |
| case_status = sf_conn.query(target_query) | |
| if case_status['totalSize'] != 0: | |
| case_url = case_status['records'][0]['attributes']['url'] | |
| redirect_url = base_url + case_url.split('/')[-1] | |
| return redirect_url | |
| else: | |
| return "Case number not found" | |
| app = Flask(__name__) | |
| app.debug=True | |
| @app.route('/') | |
| def display_usage(): | |
| return "Usage: /casenumber<br><br> Will redirect you to the case url for a given case number" | |
| @app.route('/<case_number>') | |
| def redirect_to_case_url(case_number): | |
| redirect_url = sf_case_number_to_url(case_number, sf_conn=sf_conn, base_url=base_url) | |
| if redirect_url == "Case number not found": | |
| return "Case number not found: %s" % case_number | |
| else: | |
| return redirect(redirect_url, code=302) | |
| if __name__ == '__main__': | |
| app.run(debug=True, host='0.0.0.0') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment