Metadata-Version: 2.1
Name: guillotina-batch
Version: 5.0.2
Summary: batch endpoint for guillotina
Home-page: https://github.com/guillotinaweb/guillotina_batch
Author: Nathan Van Gheem
Author-email: vangheem@gmail.com
License: BSD
Platform: UNKNOWN
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Intended Audience :: Developers
Description-Content-Type: text/markdown
Requires-Dist: guillotina (<6,>=5.0.0.dev0)
Requires-Dist: backoff
Provides-Extra: test
Requires-Dist: pytest (>=3.8.0) ; extra == 'test'
Requires-Dist: docker ; extra == 'test'
Requires-Dist: backoff ; extra == 'test'
Requires-Dist: jsonschema (==2.6.0) ; extra == 'test'
Requires-Dist: psycopg2-binary ; extra == 'test'
Requires-Dist: pytest-asyncio (>=0.10.0) ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'
Requires-Dist: coverage (==4.4.0) ; extra == 'test'
Requires-Dist: pytest-docker-fixtures ; extra == 'test'
Requires-Dist: asyncpg (==0.15.0) ; extra == 'test'

# Guillotina Batch Docs

This package simple provides a `@batch` endpoint to Guillotina which
allows you to group multiple requests into one.

By default all the requests use a single transaction that is commited when all
the requests finish successfully. If `?eager-commit=true` is provided, each request
will be committed independently.


## Configuration

Just add a few lines to your config.yml::

  {"applications": ["guillotina_batch"]}


## Usage

The `@batch` endpoint takes a array of batch definitions taking the following parameters:

- method:str
- endpoint:str
- headers:object[str, str]
- payload:object


For example::

```
POST /db/container/@batch [{
    "method": "POST",
    "endpoint": "path/to/object/@sharing",
    "payload": {
        "prinperm": [{
            "principal": "user1",
            "permission": "guillotina.AccessContent",
            "setting": "AllowSingle"
        }]
    }
},{
    "method": "POST",
    "endpoint": "path/to/object2/@sharing",
    "payload": {
        "prinperm": [{
            "principal": "user1",
            "permission": "guillotina.AccessContent",
            "setting": "AllowSingle"
        }]
    }
}]

```

5.0.2 (2019-11-05)
------------------

- Add request body validation
- Add request and responses swagger description
- Black and isort
- Fix travis

[lferran]

5.0.1 (2019-11-01)
------------------

- Be able to import types


5.0.0 (2019-08-30)
------------------

- Upgrade to g5


1.2.1 (2019-06-18)
------------------

- restrict compat version


1.2.0 (2019-05-13)
------------------

- Provide new `max_batch_size` setting and default it to `200`
  [vangheem]


1.1.0 (2019-03-11)
------------------

- Retry requests automatically on ConflictError (with `eager-commit=True`)
  [masipcat]


1.0.5 (2018-11-19)
------------------

- Added GET param `eager-commit` [masipcat]


1.0.4 (2018-07-06)
------------------

- Copy future object from batch request to request


1.0.3 (2018-06-27)
------------------

- Including parent request's security in batched view [lferran]


1.0.2 (2018-06-27)
------------------

- try again


1.0.1 (2018-06-13)

- markdown fix


## 1.0.0 (2018-06-11)

- Initial release
  [vangheem]


