Files
kontor/kontor-scripts/sync.py
T
Thomas Peetz 71724ac800
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 5s
add missing endpoints
2026-05-18 16:45:56 +02:00

36 lines
1.4 KiB
Python

from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser
from typing import List
from api import MAPPING, EndPointNotAvailableException, Server, get_logger, get_api_config
parser = ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter)
parser.add_argument("--verbose", "-v", action="count", default=0)
parser.add_argument("--config", "-c", default="kontor-api")
parser.add_argument("--dry-run", "-m", action="store_true")
parser.add_argument("--server", "-s")
parser.add_argument("--cleanup", "-d", action="store_true")
args = parser.parse_args()
if __name__== "__main__":
logger = get_logger(args.verbose, "kontor")
logger.info("kontor.sync started")
apiConfig = get_api_config(logger, args.config)
server_list: List[Server] = []
if args.server:
server = apiConfig.get_server(args.server)
if server:
server_list.append(server)
else:
server_list.extend(apiConfig.server)
for server in server_list:
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)
except EndPointNotAvailableException:
logger.info("Endpoint not implemented")
logger.info("kontor.sync finished")