# python-brickscout-api
Wrapper for the BrickScout API
## Install
This package is published on PyPi: https://pypi.org/project/python-brickscout-api/
Install with pip
```python
pip install python-brickscout-api
```
## Usage
Usage at this point is minimal. I will extend this package as I go and as I need.
### Create connection
You will need your username and password.
Create a new API connection
```python
from brickscout.api import BrickScoutAPI
api = BrickScoutAPI(username='xxx', password='xxx')
```
### Orders
1. Get all open orders
Orders are considered open if they have not been marked as deleted or shipped.
```python
orders = api.orders.get_open_orders()
for order in orders.iterator():
print(vars(order))
```
2. Retrieve an order
```python
order = api.orders.get(id)
print(vars(order))
```
3. Update an order
```python
order = api.orders.get(id)
order.internalComment = 'this is my new comment'
api.orders.update(order)
```
4. Mark an order as **PAID**
```python
order = api.orders.get(id)
api.orders.mark_as_paid(order)
```
5. Mark an order as **PACKED**
```python
order = api.orders.get(id)
api.orders.mark_as_packed(order)
```
4. Mark an order as **SHIPPED**
```python
order = api.orders.get(id)
api.orders.mark_as_shipped(order)
```
### Error handling
Basic error handling has been added. You can check if an error has occured during a call by checking the ```has_error``` attribute on an object. If the ```has_error``` has been set to ```True```, an ```Error``` object will be attached to the ```error``` attribute of the same object. The ```Error``` object contains following attributes: ```type```, ```exception_code```, ```developer_message```, ```more_info_url``` and ```timestamp```.
```python
order = api.orders.get(id)
if order.has_error:
print(order.error.exception_code)
print(order.error.developer_message)
```
Raw data
{
"_id": null,
"home_page": "https://github.com/alexanderlhsglobal/python-brickscout-api",
"name": "python-brickscout-api",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "brickscout,brick,scout,brick scout,lego,api",
"author": "Alexander Schillemans",
"author_email": "alexander.schillemans@hotmail.com",
"download_url": "https://files.pythonhosted.org/packages/25/19/9d7728d0f2c92adc350dd452a67a8898e90e7bf4b34a5c3362af6e326271/python-brickscout-api-1.1.2.tar.gz",
"platform": null,
"description": "# python-brickscout-api\r\nWrapper for the BrickScout API\r\n\r\n## Install\r\nThis package is published on PyPi: https://pypi.org/project/python-brickscout-api/\r\n\r\nInstall with pip\r\n\r\n```python\r\npip install python-brickscout-api\r\n```\r\n\r\n## Usage\r\n\r\nUsage at this point is minimal. I will extend this package as I go and as I need.\r\n\r\n### Create connection\r\n\r\nYou will need your username and password.\r\n\r\nCreate a new API connection\r\n\r\n```python\r\nfrom brickscout.api import BrickScoutAPI\r\napi = BrickScoutAPI(username='xxx', password='xxx')\r\n```\r\n\r\n### Orders\r\n\r\n1. Get all open orders\r\n\r\nOrders are considered open if they have not been marked as deleted or shipped.\r\n\r\n```python\r\norders = api.orders.get_open_orders()\r\nfor order in orders.iterator():\r\n print(vars(order))\r\n```\r\n\r\n2. Retrieve an order\r\n\r\n```python\r\norder = api.orders.get(id)\r\nprint(vars(order))\r\n```\r\n\r\n3. Update an order\r\n\r\n```python\r\norder = api.orders.get(id)\r\norder.internalComment = 'this is my new comment'\r\napi.orders.update(order)\r\n```\r\n\r\n4. Mark an order as **PAID**\r\n\r\n```python\r\norder = api.orders.get(id)\r\napi.orders.mark_as_paid(order)\r\n```\r\n\r\n5. Mark an order as **PACKED**\r\n\r\n```python\r\norder = api.orders.get(id)\r\napi.orders.mark_as_packed(order)\r\n```\r\n\r\n4. Mark an order as **SHIPPED**\r\n\r\n```python\r\norder = api.orders.get(id)\r\napi.orders.mark_as_shipped(order)\r\n```\r\n\r\n### Error handling\r\n\r\nBasic error handling has been added. You can check if an error has occured during a call by checking the ```has_error``` attribute on an object. If the ```has_error``` has been set to ```True```, an ```Error``` object will be attached to the ```error``` attribute of the same object. The ```Error``` object contains following attributes: ```type```, ```exception_code```, ```developer_message```, ```more_info_url``` and ```timestamp```.\r\n\r\n```python\r\norder = api.orders.get(id)\r\n\r\nif order.has_error:\r\n print(order.error.exception_code)\r\n print(order.error.developer_message)\r\n```\r\n",
"bugtrack_url": null,
"license": "GPL-3.0-or-later",
"summary": "Wrapper for the BrickScout API",
"version": "1.1.2",
"project_urls": {
"Download": "https://github.com/alexanderlhsglobal/python-brickscout-api/archive/refs/tags/1.1.2.tar.gz",
"Homepage": "https://github.com/alexanderlhsglobal/python-brickscout-api"
},
"split_keywords": [
"brickscout",
"brick",
"scout",
"brick scout",
"lego",
"api"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "25199d7728d0f2c92adc350dd452a67a8898e90e7bf4b34a5c3362af6e326271",
"md5": "2fe43e596f4c5666382b55c2cc0c6595",
"sha256": "b9ac478c863411a29a03bd4c469ebf97eec5a6340fa879511cbc9a1e86a0bfda"
},
"downloads": -1,
"filename": "python-brickscout-api-1.1.2.tar.gz",
"has_sig": false,
"md5_digest": "2fe43e596f4c5666382b55c2cc0c6595",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 22656,
"upload_time": "2023-11-08T18:36:44",
"upload_time_iso_8601": "2023-11-08T18:36:44.691624Z",
"url": "https://files.pythonhosted.org/packages/25/19/9d7728d0f2c92adc350dd452a67a8898e90e7bf4b34a5c3362af6e326271/python-brickscout-api-1.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-08 18:36:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "alexanderlhsglobal",
"github_project": "python-brickscout-api",
"github_not_found": true,
"lcname": "python-brickscout-api"
}