MCPcopy Create free account
hub / github.com/Keeper-Security/Commander / communicate_rest

Function communicate_rest

keepercommander/api.py:840–871  ·  view source on GitHub ↗
(params, request, endpoint, *, rs_type=None, payload_version=None, timeout=None)

Source from the content-addressed store, hash-verified

838
839
840def communicate_rest(params, request, endpoint, *, rs_type=None, payload_version=None, timeout=None):
841 api_request_payload = APIRequest_pb2.ApiRequestPayload()
842 if params.session_token:
843 api_request_payload.encryptedSessionToken = utils.base64_url_decode(params.session_token)
844 if request:
845 if logging.getLogger().level <= logging.DEBUG:
846 js = google.protobuf.json_format.MessageToJson(request)
847 logging.debug('>>> [RQ] %s: %s', endpoint, js)
848 api_request_payload.payload = request.SerializeToString()
849 if isinstance(payload_version, int):
850 api_request_payload.apiVersion = payload_version
851
852 rs = rest_api.execute_rest(params.rest_context, endpoint, api_request_payload, timeout=timeout)
853 if isinstance(rs, bytes):
854 TTK.update_time_of_last_activity()
855 if rs_type:
856 proto_rs = rs_type()
857 proto_rs.ParseFromString(rs)
858 if logging.getLogger().level <= logging.DEBUG:
859 js = google.protobuf.json_format.MessageToJson(proto_rs)
860 logging.debug('>>> [RS] %s: %s', endpoint, js)
861 return proto_rs
862 else:
863 return rs
864 elif isinstance(rs, dict):
865 kae = KeeperApiError(rs['error'], rs['message'])
866 kae.additional_info = rs.get('additional_info')
867
868 if kae.result_code == 'session_token_expired':
869 params.session_token = None
870 raise kae
871 raise KeeperApiError('Error', endpoint)
872
873
874def communicate(params, request, retry_on_throttle=True):

Callers 11

get_share_objectsFunction · 0.85
load_user_public_keysFunction · 0.85
get_record_v3_responseFunction · 0.85
add_record_audit_dataFunction · 0.85
add_record_v3Function · 0.85
get_record_sharesFunction · 0.85
send_keepaliveFunction · 0.85

Calls 4

KeeperApiErrorClass · 0.85
getMethod · 0.80
debugMethod · 0.45

Tested by

no test coverage detected