add endpoints to get items by id
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 4s

This commit is contained in:
Thomas Peetz
2026-05-20 18:34:44 +02:00
parent 944420802f
commit bbc00ae2cc
10 changed files with 114 additions and 25 deletions
+22 -3
View File
@@ -1,6 +1,7 @@
from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser
import json
from typing import List
from api import MAPPING, EndPointNotAvailableException, Server, get_logger, get_api_config
from api import MAPPING, EndPointNotAvailableException, Option, OptionType, Server, get_logger, get_api_config
parser = ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter)
@@ -23,13 +24,31 @@ if __name__== "__main__":
server_list.append(server)
else:
server_list.extend(apiConfig.server)
export_data = {}
for server in server_list:
export_data[server.name] = {}
for table, path in MAPPING.items():
try:
data = server.request(logger, table=table)
logger.info("%s: %s", table, len(data))
#if len(data) == 1:
# logger.info("show data: %s", data)
export_data[server.name][table] = data
logger.info("%s: %s exported", table, len(data))
except EndPointNotAvailableException:
logger.info("Endpoint not implemented")
try:
json_dump = json.dumps(export_data[server.name], indent=4)
file_name = f"{server.name}-data.json"
with open(file_name, "w") as dump_file:
dump_file.write(json_dump)
except TypeError as error:
logger.info(f"{error}")
for server in server_list:
logger.info(f"{server.name}: {len(export_data[server.name])} tables exported")
for table, path in MAPPING.items():
for item in export_data[server_list[0].name][table]:
item_data = server_list[1].request(logger, table=table, param=Option(OptionType.ID, item['id']))
if item != item_data:
logger.info("diff: %s\n%s", item, item_data)
else:
logger.info("no changes for: %s", item)
logger.info("kontor.sync finished")