Created
July 9, 2014 10:21
-
-
Save nathando/ecbbf41596b7eced9f45 to your computer and use it in GitHub Desktop.
Authenticated API
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
@frappe.whitelist(allow_guest=True) | |
@post_only | |
def login_test(): | |
try: | |
frappe.local.login_manager.login() | |
full_name = frappe.response.pop("full_name") | |
# Return encrypted token | |
session_token = AESencrypt('password', str(frappe.local.session.get('sid'))) | |
frappe.local.cookie_manager.set_cookie("sid", "") | |
return {"status": 1, "full_name": full_name, "s_token": session_token } | |
except frappe.AuthenticationError: | |
return {"status": -1, "error": "Authentication failed"} | |
@frappe.whitelist(allow_guest=True) | |
def list_po_test(): | |
# Descrypt token | |
s_token = frappe.local.form_dict.get('s_token') | |
sid = AESdecrypt ('password', s_token) | |
frappe.form_dict['sid'] = sid | |
# Resume session | |
frappe.local.session_obj = Session(user=None, resume=True) | |
frappe.local.session = frappe.local.session_obj.data | |
frappe.session.user = frappe.local.session_obj.user | |
if frappe.local.request.method=="GET": | |
# For fields | |
default_dict = ["name", "per_received", "transaction_date"] | |
if frappe.local.form_dict.get('fields'): | |
frappe.local.form_dict['fields'] = list(set(default_dict + (json.loads(frappe.local.form_dict['fields'])))) | |
else: | |
frappe.local.form_dict['fields'] = default_dict | |
# For filters - need to take only confirmed order | |
frappe.local.form_dict['filters'] = [] | |
if frappe.local.form_dict.get('name'): | |
frappe.local.form_dict['filters'].append(["Purchase Order", "name", "=", frappe.local.form_dict.get('name')]) | |
# Date format yyyy-mm-dd | |
if frappe.local.form_dict.get('from_date'): | |
frappe.local.form_dict['filters'].append(["Purchase Order", "transaction_date", ">=", frappe.local.form_dict.get('from_date')]) | |
if frappe.local.form_dict.get('to_date'): | |
frappe.local.form_dict['filters'].append(["Purchase Order", "transaction_date", "<=", frappe.local.form_dict.get('to_date')]) | |
# It failed here when call has_permission inside frappe.widgets.reportview.execute | |
# Raise Permission Error -> frappe.session.user seems unset ? | |
data = frappe.call(frappe.widgets.reportview.execute, "Purchase Order", **frappe.local.form_dict) | |
for d in data: | |
per_received = d.pop('per_received', None) | |
d.po_status = 0 | |
if (per_received is not None): | |
d.po_status = 1 if (per_received == 100) else 0 | |
return {'status':1, 'data': data} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment