def post(req: func.HttpRequest) -> func.HttpResponse: request = parse_request(ContainerCreate, req) if isinstance(request, Error): return not_ok(request, context="container create") logging.info("container - creating %s", request.name) sas = create_container(request.name, StorageType.corpus, metadata=request.metadata) if sas: return ok( ContainerInfo(name=request.name, sas_url=sas, metadata=request.metadata) ) return not_ok( Error(code=ErrorCode.INVALID_REQUEST, errors=["invalid container"]), context=request.name, )
def get(req: func.HttpRequest) -> func.HttpResponse: request: Optional[Union[ContainerGet, Error]] = None if req.get_body(): request = parse_request(ContainerGet, req) if isinstance(request, Error): return not_ok(request, context="container get") if request is not None: metadata = get_container_metadata(request.name, StorageType.corpus) if metadata is None: return not_ok( Error(code=ErrorCode.INVALID_REQUEST, errors=["invalid container"]), context=request.name, ) info = ContainerInfo( name=request.name, sas_url=get_container_sas_url( request.name, StorageType.corpus, read=True, write=True, create=True, delete=True, list=True, ), metadata=metadata, ) return ok(info) containers = get_containers(StorageType.corpus) container_info = [] for name in containers: container_info.append( ContainerInfoBase(name=name, metadata=containers[name])) return ok(container_info)