-
Notifications
You must be signed in to change notification settings - Fork 34
Expand file tree
/
Copy pathutils.py
More file actions
52 lines (39 loc) · 1.53 KB
/
utils.py
File metadata and controls
52 lines (39 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# -*- coding: utf-8 -*-
# Copyright (c) 2021, Bloomstack Inc. and contributors
# For license information, please see license.txt
import frappe
from frappe.frappeclient import FrappeClient, AuthError
def get_bloomtrace_client():
url = frappe.conf.get("bloomtrace_server")
username = frappe.conf.get("bloomtrace_username")
password = frappe.conf.get("bloomtrace_password")
if not url:
return
try:
client = FrappeClient(url, username=username, password=password, verify=True)
except ConnectionError:
return
except AuthError:
return
return client
def make_integration_request(doctype, docname, endpoint):
settings = frappe.get_cached_doc("Compliance Settings")
if not (frappe.conf.enable_bloomtrace and settings.is_compliance_enabled) or \
frappe.db.exists("Integration Request", {"reference_doctype": doctype, "reference_docname": docname, "endpoint": endpoint}):
return
doc = frappe.get_doc(doctype, docname)
company = settings.get("company", {"company": doc.company}) and settings.get("company", {"company": doc.company})[0]
fieldname = "push_{0}".format(frappe.scrub(endpoint))
if not company or not company.get(fieldname):
return
integration_request = frappe.get_doc({
"doctype": "Integration Request",
"integration_type": "Remote",
"integration_request_service": "BloomTrace",
"status": "Queued",
"reference_doctype": doctype,
"reference_docname": docname,
"endpoint": endpoint
}).save(ignore_permissions=True)
def create_integration_request(doc, method):
make_integration_request(doc.doctype, doc.name)