Ejemplo n.º 1
0
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,
    )
Ejemplo n.º 2
0
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)