Skip to content

Instantly share code, notes, and snippets.

@geekpete
Created August 11, 2016 09:35
Show Gist options
  • Select an option

  • Save geekpete/66519d78686b0aba3c4c5687704a5f72 to your computer and use it in GitHub Desktop.

Select an option

Save geekpete/66519d78686b0aba3c4c5687704a5f72 to your computer and use it in GitHub Desktop.
salesforce redirect flask app
#!/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