Fix GetCatalog
This commit is contained in:
67
main.py
67
main.py
@@ -44,7 +44,7 @@ def restore_uuid(oid):
|
|||||||
return str(uuid)
|
return str(uuid)
|
||||||
|
|
||||||
|
|
||||||
def get_catalog(params, files, url):
|
def load_catalog(params, files, url):
|
||||||
date = datetime.datetime.now()
|
date = datetime.datetime.now()
|
||||||
rxmls = RequestXmlService()
|
rxmls = RequestXmlService()
|
||||||
req = ET.fromstring(params['query_data'])
|
req = ET.fromstring(params['query_data'])
|
||||||
@@ -99,7 +99,6 @@ def get_objects(params, files, url):
|
|||||||
main_filename = None
|
main_filename = None
|
||||||
for uid in uids:
|
for uid in uids:
|
||||||
obj = json.loads(get_object(uid))
|
obj = json.loads(get_object(uid))
|
||||||
print(type(obj))
|
|
||||||
for file in obj['properties'].get('c1000', []):
|
for file in obj['properties'].get('c1000', []):
|
||||||
if not main_filename:
|
if not main_filename:
|
||||||
main_filename = file['fileName']
|
main_filename = file['fileName']
|
||||||
@@ -107,20 +106,66 @@ def get_objects(params, files, url):
|
|||||||
zipf.writestr(f'{main_filename}/{file["fileName"]}', res.content)
|
zipf.writestr(f'{main_filename}/{file["fileName"]}', res.content)
|
||||||
zipf.close()
|
zipf.close()
|
||||||
response_files = [{'name': filename, 'url': filepath, 'size': os.path.getsize(filepath)}]
|
response_files = [{'name': filename, 'url': filepath, 'size': os.path.getsize(filepath)}]
|
||||||
print(response_files)
|
proxy = ServerProxy(url)
|
||||||
# proxy = ServerProxy(url)
|
proxy.send(response_params, response_files, 'http://10.10.8.27:9000/')
|
||||||
# proxy.send(response_params, response_files, 'http://10.10.8.27:9000/')
|
|
||||||
|
|
||||||
|
|
||||||
def get_metadata(params, files, url):
|
def get_metadata(params, files, url):
|
||||||
pass
|
date = datetime.datetime.now()
|
||||||
|
rxmls = RequestXmlService()
|
||||||
|
req = ET.fromstring(params['query_data'])
|
||||||
|
req_id = rxmls.get_request_uuid(req)
|
||||||
|
res_id = uuid4().hex
|
||||||
|
res = rxmls.get_request_document(res_id, req_id)
|
||||||
|
rxmls.set_result(res, 0, '')
|
||||||
|
objs = req.find('getMetadataByIds')
|
||||||
|
uids = [restore_uuid(x.get('id')) for x in objs.findall('chart')]
|
||||||
|
|
||||||
|
rxmls.set_result(res, 0, '')
|
||||||
|
response_params = {
|
||||||
|
'from': params['to'],
|
||||||
|
'to': params['from'],
|
||||||
|
'ts_added': date.timestamp(),
|
||||||
|
'user_id': '1',
|
||||||
|
'user_id_to': params['user_id'],
|
||||||
|
'query_type': 1024,
|
||||||
|
'query_data': ET.tostring(res, encoding='unicode', xml_declaration=True)
|
||||||
|
}
|
||||||
|
filename = uuid4().hex
|
||||||
|
filepath = '/tmp/' + filename
|
||||||
|
zipf = zipfile.ZipFile(filepath, "w")
|
||||||
|
content = ET.Element('getMetadataResponse')
|
||||||
|
|
||||||
|
for uid in uids:
|
||||||
|
obj = json.loads(get_object(uid))
|
||||||
|
date = datetime.datetime.fromisoformat(obj['date_updated'])
|
||||||
|
chart = ET.SubElement(content, 'chart', {
|
||||||
|
'id': UUID(obj['uid']).hex,
|
||||||
|
'updated': str(date.timestamp()),
|
||||||
|
})
|
||||||
|
for key in obj['properties']:
|
||||||
|
if not key.startswith('c'):
|
||||||
|
continue
|
||||||
|
mdel = ET.SubElement(chart, 'mdItem', {
|
||||||
|
'code': key.replace('_', '.'),
|
||||||
|
'name': key,
|
||||||
|
'value': str(obj['properties'].get(key, '')),
|
||||||
|
'isBase': 'false',
|
||||||
|
'groupId': '',
|
||||||
|
'groupName': '',
|
||||||
|
})
|
||||||
|
zipf.writestr(f'metadata.xml', ET.tostring(content, encoding='unicode', xml_declaration=True))
|
||||||
|
zipf.close()
|
||||||
|
response_files = [{'name': filename, 'url': filepath, 'size': os.path.getsize(filepath)}]
|
||||||
|
proxy = ServerProxy(url)
|
||||||
|
proxy.send(response_params, response_files, 'http://10.10.8.27:9000/')
|
||||||
|
|
||||||
|
|
||||||
def accept(params, files, url):
|
def accept(params, files, url):
|
||||||
print(params, files, url)
|
print(params, files, url)
|
||||||
print('Accept')
|
print('Accept')
|
||||||
if params['query_type'] == 4:
|
if params['query_type'] == 4:
|
||||||
get_catalog(params, files, url)
|
load_catalog(params, files, url)
|
||||||
if params['query_type'] == 1:
|
if params['query_type'] == 1:
|
||||||
get_objects(params, files, url)
|
get_objects(params, files, url)
|
||||||
if params['query_type'] == 24:
|
if params['query_type'] == 24:
|
||||||
@@ -150,13 +195,13 @@ def main():
|
|||||||
|
|
||||||
|
|
||||||
def test():
|
def test():
|
||||||
params = {"from": "tcp://kptsp_vb", "query_data": "<?xml version=\"1.0\" encoding=\"utf-8\"?><request><header parcel_id=\"990715ba919544a98f22cc7d3b0d9e8d\"/><objects><object object_id=\"fc44343bd1654ee7b03ac1731567bbfd\"/><object object_id=\"13526ac78c574036879e1ec31bb78779\"/><object object_id=\"06b8a23c9a894bc5a5f9e6baa3540f87\"/><object object_id=\"6b02b39791064054852d5e165ff1dfc0\"/><object object_id=\"b81e42e704fe4054986956b2b920661d\"/><object object_id=\"c002a570f05745a2943a78686f3f17c0\"/><object object_id=\"2b15bf0f25e842b6a3b5d9762f2334a7\"/><object object_id=\"294ac9e83d3f4cf380cb0b99f592452b\"/><object object_id=\"a8901d5e642a410c909701e015644f69\"/><object object_id=\"1989b9dc8e114aaca0508cb9241afc5b\"/><object object_id=\"cf2df49a4e9143ffacf490b3138d26bd\"/><object object_id=\"c9861cfc30c641619ae9691f8c7d9c4d\"/><object object_id=\"87ebaff5ab2c411b97626b634d709f38\"/><object object_id=\"735e00c4211344bdaca2ac2332323613\"/><object object_id=\"05cff3bd9f6f4c36a51877c13fda1909\"/><object object_id=\"2178a4d06b6b407db826733c496a596d\"/><object object_id=\"8892c660d75747deaee6bab6163fde04\"/><object object_id=\"3be29dac7e6f45908910492967e3cb08\"/><object object_id=\"53667890f4f84e38a9cd7ab9a63a6193\"/><object object_id=\"69a3a5978f1e449f9729d5d47e0690ad\"/><object object_id=\"9405cc3528c345b1ad200714bb0fec32\"/><object object_id=\"068ab6d165004f9fb6d778a9e2593fd2\"/><object object_id=\"e90b6799c3a2418fa65f6e2f91c53f64\"/><object object_id=\"b209864a514a4d4eae7038a9585e9306\"/><object object_id=\"5f2287cdfeb54eddaa42cc80b21ec081\"/><object object_id=\"a87271f9a4e74b82bc9191cdc36c2783\"/><object object_id=\"bea81cc3b3e842e997594c6e95526456\"/><object object_id=\"13c6fc2edb544a2d98a4f3f10af4fdd1\"/><object object_id=\"9edb7a886d2847fbae83eba272cd3940\"/><object object_id=\"989e0d92955c4adfa3bfe045c6f11d82\"/><object object_id=\"0ebec61db2204477b4b49a20592c818a\"/><object object_id=\"d198d63bc9ed4dfb8f84c3fc5a4146c5\"/><object object_id=\"389482afd85147b2ac397a644f72e3dc\"/><object object_id=\"0e997a62f9c4421b93a284dad938faf4\"/><object object_id=\"dc29afc0ca53472d88e8b58e460ed614\"/><object object_id=\"ded736abc1954413b17e6d283c686b04\"/><object object_id=\"5de7020a497d4e119de0e6f5b869aba3\"/><object object_id=\"d3cfdc9e51fc489cac8a8a9e6285f292\"/><object object_id=\"b812ed1698e2454dbf84595a2addff8f\"/><object object_id=\"fa28d2774a054542a6b7c437ee68f148\"/><object object_id=\"b7fab9c8285f47b699cb5bb6259b7b03\"/><object object_id=\"f8f867f7aa964785ab1e0e84428070c2\"/><object object_id=\"d1cb0bb2c21e4e99b06fcda8f627c720\"/><object object_id=\"41f6531a611143f3a64d3e55f347ed06\"/><object object_id=\"6fb3b57ec8df48e4bfe6f19bef387a61\"/><object object_id=\"97598f541b494606a437a9b5ee5433aa\"/><object object_id=\"d5289e3969cc47a7b50a01ed6f4b41fd\"/><object object_id=\"22ba8c4cf4154874ac98ec42cd053d72\"/><object object_id=\"7ec173a9d51e4babbc0feae70d754c99\"/><object object_id=\"343cd1ee95ce4a3e9d51336a2d0291e9\"/></objects></request>", "query_type": 1, "to": "tcp://bnd127", "user_id": "3302", "ts_added": 1679825320.653038}
|
params = {"from": "tcp://kptsp_vb", "query_data": "<?xml version=\"1.0\" encoding=\"utf-8\"?><request><header parcel_id=\"990715ba919544a98f22cc7d3b0d9e8d\"/><getMetadataByIds><chart id=\"fc44343bd1654ee7b03ac1731567bbfd\"/></getMetadataByIds></request>", "query_type": 24, "to": "tcp://bnd127", "user_id": "3302", "ts_added": 1679825320.653038}
|
||||||
files = []
|
files = []
|
||||||
url = 'http://127.0.0.1:7000/xmlrpc'
|
url = 'http://127.0.0.1:7000/xmlrpc'
|
||||||
# accept(params, files, url)
|
# accept(params, files, url)
|
||||||
get_objects(params, files, url)
|
get_metadata(params, files, url)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
# main()
|
main()
|
||||||
test()
|
# test()
|
||||||
|
|||||||
Reference in New Issue
Block a user