1234567891011121314151617181920212223242526272829 |
- from json import dumps, loads
- import re
- from oauthlib.common import to_unicode
- def plentymarkets_compliance_fix(session):
- def _to_snake_case(n):
- return re.sub("(.)([A-Z][a-z]+)", r"\1_\2", n).lower()
- def _compliance_fix(r):
- # Plenty returns the Token in CamelCase instead of _
- if (
- "application/json" in r.headers.get("content-type", {})
- and r.status_code == 200
- ):
- token = loads(r.text)
- else:
- return r
- fixed_token = {}
- for k, v in token.items():
- fixed_token[_to_snake_case(k)] = v
- r._content = to_unicode(dumps(fixed_token)).encode("UTF-8")
- return r
- session.register_compliance_hook("access_token_response", _compliance_fix)
- return session
|