cmis: extract _get_metadata method (#73466)
This commit is contained in:
parent
99e4c00f86
commit
51d1a1eb0e
|
@ -164,6 +164,23 @@ class CmisConnector(BaseResource):
|
|||
|
||||
return False, '', data
|
||||
|
||||
def _get_metadata(self, object_id):
|
||||
with self.get_cmis_gateway() as cmis_gateway:
|
||||
if '/' in object_id:
|
||||
doc = cmis_gateway.get_object_by_path(object_id)
|
||||
else:
|
||||
doc = cmis_gateway.get_object(object_id)
|
||||
|
||||
metadata = {}
|
||||
for key, value in doc.properties.items():
|
||||
sub_metadata = metadata
|
||||
for subkey in key.split(':')[:-1]:
|
||||
if subkey not in sub_metadata:
|
||||
sub_metadata[subkey] = {}
|
||||
sub_metadata = sub_metadata[subkey]
|
||||
sub_metadata[key.split(':')[-1]] = value
|
||||
return metadata
|
||||
|
||||
@endpoint(
|
||||
description=_('Get file'),
|
||||
perm='can_access',
|
||||
|
@ -196,22 +213,7 @@ class CmisConnector(BaseResource):
|
|||
},
|
||||
)
|
||||
def getmetadata(self, request, object_id):
|
||||
with self.get_cmis_gateway() as cmis_gateway:
|
||||
if '/' in object_id:
|
||||
doc = cmis_gateway.get_object_by_path(object_id)
|
||||
else:
|
||||
doc = cmis_gateway.get_object(object_id)
|
||||
|
||||
metadata = {}
|
||||
for key, value in doc.properties.items():
|
||||
sub_metadata = metadata
|
||||
for subkey in key.split(':')[:-1]:
|
||||
if subkey not in sub_metadata:
|
||||
sub_metadata[subkey] = {}
|
||||
sub_metadata = sub_metadata[subkey]
|
||||
sub_metadata[key.split(':')[-1]] = value
|
||||
|
||||
return {'data': metadata}
|
||||
return {'data': self._get_metadata(object_id)}
|
||||
|
||||
|
||||
def wrap_cmis_error(f):
|
||||
|
|
Loading…
Reference in New Issue