import argparse import logging import typing import taiga_pycli.config import taiga_pycli.models import taiga_pycli.service _logger = logging.getLogger(__name__) if typing.TYPE_CHECKING: _SubparserType = argparse._SubParsersAction[argparse.ArgumentParser] else: _SubparserType = typing.Any def setup_parser(subparsers: _SubparserType) -> None: parser = subparsers.add_parser("hat") parser.add_argument( "--name", type=str, help="The name of the hat to add", default=None ) parser.add_argument( "--description", type=str, help="The description of the hat to add", default=None, ) parser.set_defaults(func=run) def run(cfg: taiga_pycli.config.Config, args): # clnt = taiga_pycli.client.TryGoAPIClient("http://localhost:8080/") backend = taiga_pycli.service.BackendService(cfg) if args.name is not None: if args.description is None: _logger.error("Got a null description, exiting") return # both not None backend.add_hat(args.name, args.description) return else: _logger.debug("Not creating, just list") if args.description is not None: _logger.error("Provided a description without name") response = backend.get_hats() if response is None: _logger.warning("none response here") return real_hats = [] for hat in response: rh = taiga_pycli.models.Hat( name=hat["name"], description=hat["description"], user_id=hat["user_id"], ) real_hats.append(rh) print(rh) # _logger.info(response) return