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

Method execute

keepercommander/commands/record.py:2310–2440  ·  view source on GitHub ↗
(self, params, **kwargs)

Source from the content-addressed store, hash-verified

2308 return trash_get_parser
2309
2310 def execute(self, params, **kwargs):
2311 deleted_records = self.get_deleted_records(params)
2312 orphaned_records = self.get_orphaned_records(params)
2313 fmt = kwargs.get('format') or 'detail'
2314 if len(deleted_records) == 0 and len(orphaned_records) == 0:
2315 if fmt == 'json':
2316 print(json.dumps({'message': 'Trash is empty'}, indent=2))
2317 else:
2318 logging.info('Trash is empty')
2319 return
2320
2321 record_uid = kwargs.get('record')
2322 if not record_uid:
2323 if fmt == 'json':
2324 print(json.dumps({'message': 'Record UID parameter is required'}, indent=2))
2325 else:
2326 logging.info('Record UID parameter is required')
2327 return
2328
2329 is_shared = False
2330 rec = deleted_records.get(record_uid)
2331 if not rec:
2332 rec = orphaned_records.get(record_uid)
2333 is_shared = True
2334 if not rec:
2335 message = f'{record_uid} is not a valid deleted record UID'
2336 if fmt == 'json':
2337 print(json.dumps({'message': message}, indent=2))
2338 else:
2339 logging.info('%s is not a valid deleted record UID', record_uid)
2340 return
2341
2342 record = vault.KeeperRecord.load(params, rec)
2343 if not record:
2344 message = f'Cannot restore record {record_uid}'
2345 if fmt == 'json':
2346 print(json.dumps({'message': message}, indent=2))
2347 else:
2348 logging.info('Cannot restore record %s', record_uid)
2349 return
2350
2351 if fmt == 'json':
2352 payload = {
2353 'record_uid': record.record_uid,
2354 'title': record.title,
2355 'record_type': record.record_type,
2356 'status': 'Share' if is_shared else 'Record',
2357 'fields': {},
2358 }
2359 for name, value in record.enumerate_fields():
2360 if value:
2361 if isinstance(value, list):
2362 payload['fields'][name] = value
2363 elif len(value) > 100:
2364 payload['fields'][name] = value[:99] + '...'
2365 else:
2366 payload['fields'][name] = value
2367

Callers

nothing calls this directly

Calls 8

get_deleted_recordsMethod · 0.80
get_orphaned_recordsMethod · 0.80
get_record_sharesMethod · 0.80
formatMethod · 0.80
getMethod · 0.45
infoMethod · 0.45
loadMethod · 0.45
enumerate_fieldsMethod · 0.45

Tested by

no test coverage detected