diff --git a/.github/workflows/algolia-scraper.yml b/.github/workflows/algolia-scraper.yml new file mode 100644 index 00000000..183edd71 --- /dev/null +++ b/.github/workflows/algolia-scraper.yml @@ -0,0 +1,21 @@ +name: Run Algolia Scraper + +on: + push: + branches: ["master", "develop"] + pull_request: + branches: ["master", "develop"] + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: darrenjennings/algolia-docsearch-action@master + with: + algolia_application_id: "1BEGBIP9SH" + algolia_api_key: ${{ secrets.ALGOLIA_API_KEY }} + file: "docs/algolia.config.json" diff --git a/README.md b/README.md index 9806d509..e51f64cb 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@
-[![Udemy rating 4.6/5](https://img.shields.io/badge/udemy-4.6%2F5-brightgreen)](https://go.tecla.do/rest-apis-sale) ![GitHub last commit](https://img.shields.io/github/last-commit/tecladocode/rest-apis-flask-python/develop) ![Python 3.10](https://img.shields.io/badge/python-3.10-yellow) [![Discord](https://img.shields.io/discord/614395983807250433)](https://discord.gg/78Nvd3p) [![Twitter Follow](https://img.shields.io/twitter/follow/jslvtr?style=social) ](https://twitter.com/jslvtr) +[![Udemy rating 4.6/5](https://img.shields.io/badge/udemy-4.6%2F5-brightgreen)](https://go.tecla.do/rest-apis-ebook) ![GitHub last commit](https://img.shields.io/github/last-commit/tecladocode/rest-apis-flask-python/develop) ![Python 3.10](https://img.shields.io/badge/python-3.10-yellow) [![Discord](https://img.shields.io/discord/614395983807250433)](https://discord.gg/78Nvd3p) [![Twitter Follow](https://img.shields.io/twitter/follow/jslvtr?style=social) ](https://twitter.com/jslvtr)
@@ -16,7 +16,7 @@ ## Getting started -Enrol in the course by going to [this link](https://go.tecla.do/rest-apis-sale). +Enrol in the course by going to [this link](https://go.tecla.do/rest-apis-ebook). Then you can come back here to download the repository. This repository contains the code that we develop in each section of the course. diff --git a/docs/algolia.config.json b/docs/algolia.config.json new file mode 100644 index 00000000..c5ce390d --- /dev/null +++ b/docs/algolia.config.json @@ -0,0 +1,49 @@ +{ + "index_name": "docusaurus-2", + "start_urls": [ + "https://rest-apis-flask.teclado.com/" + ], + "sitemap_urls": [ + "https://rest-apis-flask.teclado.com/sitemap.xml" + ], + "sitemap_alternate_links": true, + "stop_urls": [ + "/tests" + ], + "selectors": { + "lvl0": { + "selector": "(//ul[contains(@class,'menu__list')]//a[contains(@class, 'menu__link menu__link--sublist menu__link--active')]/text() | //nav[contains(@class, 'navbar')]//a[contains(@class, 'navbar__link--active')]/text())[last()]", + "type": "xpath", + "global": true, + "default_value": "Documentation" + }, + "lvl1": "header h1", + "lvl2": "article h2", + "lvl3": "article h3", + "lvl4": "article h4", + "lvl5": "article h5, article td:first-child", + "lvl6": "article h6", + "text": "article p, article li, article td:last-child" + }, + "strip_chars": " .,;:#", + "custom_settings": { + "separatorsToIndex": "_", + "attributesForFaceting": [ + "language", + "version", + "type", + "docusaurus_tag" + ], + "attributesToRetrieve": [ + "hierarchy", + "content", + "anchor", + "url", + "url_without_anchor", + "type" + ] + }, + "conversation_id": [ + "833762294" + ] +} \ No newline at end of file diff --git a/docs/docs-upcoming/11_celery_background_tasks/01_project_overview/README.md b/docs/docs-upcoming/11_celery_background_tasks/01_project_overview/README.md deleted file mode 100644 index 17d79a19..00000000 --- a/docs/docs-upcoming/11_celery_background_tasks/01_project_overview/README.md +++ /dev/null @@ -1 +0,0 @@ -# Project overview \ No newline at end of file diff --git a/docs/docs-upcoming/11_celery_background_tasks/README.md b/docs/docs-upcoming/11_celery_background_tasks/README.md deleted file mode 100644 index 742f910c..00000000 --- a/docs/docs-upcoming/11_celery_background_tasks/README.md +++ /dev/null @@ -1 +0,0 @@ -# Flask-Smorest for more efficient development \ No newline at end of file diff --git a/docs/docs-upcoming/11_celery_background_tasks/_category_.json b/docs/docs-upcoming/11_celery_background_tasks/_category_.json deleted file mode 100644 index 4af7a57b..00000000 --- a/docs/docs-upcoming/11_celery_background_tasks/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Use Celery for Background Tasks", - "position": 12 -} diff --git a/docs/docs/01_course_intro/01_curriculum_overview/README.md b/docs/docs/01_course_intro/01_curriculum_overview/README.md index d190291a..6835210b 100644 --- a/docs/docs/01_course_intro/01_curriculum_overview/README.md +++ b/docs/docs/01_course_intro/01_curriculum_overview/README.md @@ -5,4 +5,7 @@ description: A brief description of the lecture goes here. # Curriculum overview -The curriculum overview goes here. \ No newline at end of file +import DocCategoryIndex from '@theme/DocCardList'; +import {useDocsSidebar} from '@docusaurus/theme-common/internal'; + + \ No newline at end of file diff --git a/docs/docs/01_course_intro/04_what_is_rest_api/README.md b/docs/docs/01_course_intro/04_what_is_rest_api/README.md index 0dd5146a..c77fa25c 100644 --- a/docs/docs/01_course_intro/04_what_is_rest_api/README.md +++ b/docs/docs/01_course_intro/04_what_is_rest_api/README.md @@ -84,7 +84,7 @@ An API client can be any device, such as a web app or a mobile app. ### Making an API for your own consumption -Make software companies make APIs that only they use (so they aren't fully public). +Many software companies make APIs that only they use (so they aren't fully public). Here's an example. You're making a multiplayer mobile game, and you need to store information about the moves that your character is making. @@ -109,7 +109,7 @@ REST APIs deal in resources, so every individual "thing" that can be named is a The main characteristics (or constraints) of a REST API are: 1. **Uniform interface**. Whichever way clients should access a certain resource should also be the way the access other resources. Clients should have a single way to retrieve resources. -2. **Client-server**. Clients should know the endpoints of the API, but they should not be coupled to the development of the API. A client or a servevr may be swapped out for a different implementation without the other noticing. +2. **Client-server**. Clients should know the endpoints of the API, but they should not be coupled to the development of the API. A client or a server may be swapped out for a different implementation without the other noticing. 3. **Stateless**. The server (API) doesn't store anything about previous client requests. Each client request is treated as a brand new client. If the client needs the server to personalize the response, then the client must send the server whatever information the server needs in order to do so. 4. **Cacheable**. The client or server must be able to cache the resources returned by the API. This is a very general constraint, but it's an important one. 5. **Layered system**. REST APIs may be developed as multiple layers, where each layer interacts [only with the layer above and below it](https://excalidraw.com/#json=or3Umoigss4yIeuKg3cO8,qH6uDDCXc7DSjweqNvlmzw). @@ -156,7 +156,7 @@ We'll deal with user authentication in a later section, but that's what the lock | `GET` | `/store` | Get a list of all stores. | | `POST` | `/store` | Create a store. | | `GET` | `/store/{id}` | Get a single store, given its unique id. | -| `POST` | `/store/{id}` | Delete a store, given its unique id. | +| `DELETE` | `/store/{id}` | Delete a store, given its unique id. | ### Items @@ -191,4 +191,4 @@ Then, over the following sections, we'll improve on this REST API. We'll add: - Add user authentication. - Add item tagging. - Add an admin panel so changing data manually is a bit easier. -- And much more! \ No newline at end of file +- And much more! diff --git a/docs/docs/01_course_intro/index.md b/docs/docs/01_course_intro/index.md index b0185d43..de393ea9 100644 --- a/docs/docs/01_course_intro/index.md +++ b/docs/docs/01_course_intro/index.md @@ -4,6 +4,12 @@ id: intro # REST APIs with Flask and Python +import VideoEmbed from "@site/src/components/VideoEmbed"; + +
+ +
+ Hi, and welcome! REST APIs with Flask and Python is a complete course that teaches you how to develop complete, professional REST APIs using **Flask**, **PostgreSQL**, and **Docker**. diff --git a/docs/docs/03_first_rest_api/01_project_overview/README.md b/docs/docs/03_first_rest_api/01_project_overview/README.md index 67beae7f..7d958e72 100644 --- a/docs/docs/03_first_rest_api/01_project_overview/README.md +++ b/docs/docs/03_first_rest_api/01_project_overview/README.md @@ -5,6 +5,12 @@ description: A first look at the project we'll build in this section. # Overview of your first REST API +import VideoEmbed from "@site/src/components/VideoEmbed"; + +
+ +
+ In this section we'll make a simple REST API that allows us to: - Create stores, each with a `name` and a list of stocked `items`. @@ -15,6 +21,10 @@ In this section we'll make a simple REST API that allows us to: This is how the interaction will go! +:::tip Insomnia files +Remember to get the Insomnia files for this section or for all sections [here](/insomnia-files/)! +::: + ## Create stores Request: diff --git a/docs/docs/03_first_rest_api/02_getting_set_up/README.md b/docs/docs/03_first_rest_api/02_getting_set_up/README.md index b6f0ff8d..140be5ba 100644 --- a/docs/docs/03_first_rest_api/02_getting_set_up/README.md +++ b/docs/docs/03_first_rest_api/02_getting_set_up/README.md @@ -5,6 +5,12 @@ description: Set up a Flask project and create the Flask app. # Getting set up +import VideoEmbed from "@site/src/components/VideoEmbed"; + +
+ +
+ Create a virtual environment and activate it. ``` diff --git a/docs/docs/03_first_rest_api/03_first_rest_api_endpoint/README.md b/docs/docs/03_first_rest_api/03_first_rest_api_endpoint/README.md index 53ad5a38..4bcfaf18 100644 --- a/docs/docs/03_first_rest_api/03_first_rest_api_endpoint/README.md +++ b/docs/docs/03_first_rest_api/03_first_rest_api_endpoint/README.md @@ -5,6 +5,10 @@ description: Learn how to define a REST API endpoint using Flask. # Your First REST API Endpoint +import LockedVideoEmbed from "@site/src/components/LockedVideoEmbed"; + + + Let's start off by defining where we'll store our data. In most REST APIs, you'd store your data in a database. For now, and for simplicity, we'll store it in a Python list. Later on we'll work on making this data dynamic. For now let's use some sample data. diff --git a/docs/docs/03_first_rest_api/Insomnia_section3.json b/docs/docs/03_first_rest_api/Insomnia_section3.json new file mode 100644 index 00000000..b8885135 --- /dev/null +++ b/docs/docs/03_first_rest_api/Insomnia_section3.json @@ -0,0 +1 @@ +{"_type":"export","__export_format":4,"__export_date":"2022-11-09T15:36:47.360Z","__export_source":"insomnia.desktop.app:v2022.6.0","resources":[{"_id":"req_e15dafc098ac4a2198304d2aead2a5b9","parentId":"fld_8b9c03412d0e463fabe784d205f1d604","modified":1666900815265,"created":1666123912423,"url":"http://127.0.0.1:5000/store/My Store/item","name":"/store//item Create item in store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Table\",\n\t\"price\": 17.99\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666124423081,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_8b9c03412d0e463fabe784d205f1d604","parentId":"wrk_6aa19b7d9ecd4f93a3602d257e54a163","modified":1666124528874,"created":1666124528874,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528874,"_type":"request_group"},{"_id":"wrk_6aa19b7d9ecd4f93a3602d257e54a163","parentId":null,"modified":1666991857781,"created":1666122928011,"name":"Section 3","description":"","scope":"collection","_type":"workspace"},{"_id":"req_697ca0714a3d4e94819411e3df0a2a17","parentId":"fld_8b9c03412d0e463fabe784d205f1d604","modified":1666900846590,"created":1666124316888,"url":"http://127.0.0.1:5000/store/My store3/item","name":"/store//item","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423056,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_9451df3aae714e93a8ed529b3a1f99c2","parentId":"fld_8b9c03412d0e463fabe784d205f1d604","modified":1666124555354,"created":1666122990495,"url":"http://127.0.0.1:5000/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423031,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_6363c8d4deb74b5bbccb1e2105277dac","parentId":"fld_8b9c03412d0e463fabe784d205f1d604","modified":1666900812784,"created":1666124168137,"url":"http://127.0.0.1:5000/store/My store3","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124422956,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_0a9c4822679b4eae92dec7432fe144b8","parentId":"fld_8b9c03412d0e463fabe784d205f1d604","modified":1666900810115,"created":1666123651275,"url":"http://127.0.0.1:5000/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store3\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666124422881,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_19db457230041d88ca9420d1b3c0f1f02bbcae93","parentId":"wrk_6aa19b7d9ecd4f93a3602d257e54a163","modified":1666122928025,"created":1666122928025,"name":"Base Environment","data":{},"dataPropertyOrder":null,"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_19db457230041d88ca9420d1b3c0f1f02bbcae93","parentId":"wrk_6aa19b7d9ecd4f93a3602d257e54a163","modified":1666122928027,"created":1666122928027,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_c5b803a7c6514ff29573e26487d898d4","parentId":"wrk_6aa19b7d9ecd4f93a3602d257e54a163","modified":1666122928018,"created":1666122928018,"fileName":"Your First REST API","contents":"","contentType":"yaml","_type":"api_spec"}]} \ No newline at end of file diff --git a/docs/docs/05_flask_smorest/02_data_model_improvements/README.md b/docs/docs/05_flask_smorest/02_data_model_improvements/README.md index 126ef751..c6d515fe 100644 --- a/docs/docs/05_flask_smorest/02_data_model_improvements/README.md +++ b/docs/docs/05_flask_smorest/02_data_model_improvements/README.md @@ -89,9 +89,14 @@ CMD ["flask", "run", "--host", "0.0.0.0"] - ## New files +:::tip Insomnia files +Remember to get the Insomnia files for this section or for all sections [here](/insomnia-files/)! + +There are two Insomnia files for this section: one for lectures 1-5 (before adding Docker), and one for the other lectures (after adding Docker). +::: + Let's start off by creating a `requirements.txt` file with all our dependencies: ```txt title="requirements.txt" @@ -245,6 +250,8 @@ def create_store(): ```py title="app.py" +import uuid + @app.post("/store") def create_store(): store_data = request.get_json() @@ -255,6 +262,8 @@ def create_store(): return store ``` +Here we add a new import, [the `uuid` module](https://docs.python.org/3/library/uuid.html). We will be using it to create unique IDs for our stores and items instead of relying on the uniqueness of their names. + diff --git a/docs/docs/05_flask_smorest/07_marshmallow_schemas/README.md b/docs/docs/05_flask_smorest/07_marshmallow_schemas/README.md index 5a802257..02b73e64 100644 --- a/docs/docs/05_flask_smorest/07_marshmallow_schemas/README.md +++ b/docs/docs/05_flask_smorest/07_marshmallow_schemas/README.md @@ -37,7 +37,7 @@ class ItemSchema(Schema): id = fields.Str(dump_only=True) name = fields.Str(required=True) price = fields.Float(required=True) - store_id = fields.Int(required=True) + store_id = fields.Str(required=True) ``` A couple of weird things maybe! diff --git a/docs/docs/05_flask_smorest/07_marshmallow_schemas/end/schemas.py b/docs/docs/05_flask_smorest/07_marshmallow_schemas/end/schemas.py index 0a4ff8d4..b809ed37 100644 --- a/docs/docs/05_flask_smorest/07_marshmallow_schemas/end/schemas.py +++ b/docs/docs/05_flask_smorest/07_marshmallow_schemas/end/schemas.py @@ -5,7 +5,7 @@ class ItemSchema(Schema): id = fields.Str(dump_only=True) name = fields.Str(required=True) price = fields.Float(required=True) - store_id = fields.Int(required=True) + store_id = fields.Str(required=True) class ItemUpdateSchema(Schema): diff --git a/docs/docs/05_flask_smorest/08_validation_with_marshmallow/end/schemas.py b/docs/docs/05_flask_smorest/08_validation_with_marshmallow/end/schemas.py index 0a4ff8d4..b809ed37 100644 --- a/docs/docs/05_flask_smorest/08_validation_with_marshmallow/end/schemas.py +++ b/docs/docs/05_flask_smorest/08_validation_with_marshmallow/end/schemas.py @@ -5,7 +5,7 @@ class ItemSchema(Schema): id = fields.Str(dump_only=True) name = fields.Str(required=True) price = fields.Float(required=True) - store_id = fields.Int(required=True) + store_id = fields.Str(required=True) class ItemUpdateSchema(Schema): diff --git a/docs/docs/05_flask_smorest/08_validation_with_marshmallow/start/schemas.py b/docs/docs/05_flask_smorest/08_validation_with_marshmallow/start/schemas.py index 0a4ff8d4..b809ed37 100644 --- a/docs/docs/05_flask_smorest/08_validation_with_marshmallow/start/schemas.py +++ b/docs/docs/05_flask_smorest/08_validation_with_marshmallow/start/schemas.py @@ -5,7 +5,7 @@ class ItemSchema(Schema): id = fields.Str(dump_only=True) name = fields.Str(required=True) price = fields.Float(required=True) - store_id = fields.Int(required=True) + store_id = fields.Str(required=True) class ItemUpdateSchema(Schema): diff --git a/docs/docs/05_flask_smorest/09_decorating_responses/end/schemas.py b/docs/docs/05_flask_smorest/09_decorating_responses/end/schemas.py index 0a4ff8d4..b809ed37 100644 --- a/docs/docs/05_flask_smorest/09_decorating_responses/end/schemas.py +++ b/docs/docs/05_flask_smorest/09_decorating_responses/end/schemas.py @@ -5,7 +5,7 @@ class ItemSchema(Schema): id = fields.Str(dump_only=True) name = fields.Str(required=True) price = fields.Float(required=True) - store_id = fields.Int(required=True) + store_id = fields.Str(required=True) class ItemUpdateSchema(Schema): diff --git a/docs/docs/05_flask_smorest/09_decorating_responses/start/schemas.py b/docs/docs/05_flask_smorest/09_decorating_responses/start/schemas.py index 0a4ff8d4..b809ed37 100644 --- a/docs/docs/05_flask_smorest/09_decorating_responses/start/schemas.py +++ b/docs/docs/05_flask_smorest/09_decorating_responses/start/schemas.py @@ -5,7 +5,7 @@ class ItemSchema(Schema): id = fields.Str(dump_only=True) name = fields.Str(required=True) price = fields.Float(required=True) - store_id = fields.Int(required=True) + store_id = fields.Str(required=True) class ItemUpdateSchema(Schema): diff --git a/docs/docs/05_flask_smorest/Insomnia_section5_Docker.json b/docs/docs/05_flask_smorest/Insomnia_section5_Docker.json new file mode 100644 index 00000000..d31b9426 --- /dev/null +++ b/docs/docs/05_flask_smorest/Insomnia_section5_Docker.json @@ -0,0 +1 @@ +{"_type":"export","__export_format":4,"__export_date":"2022-11-09T15:36:20.139Z","__export_source":"insomnia.desktop.app:v2022.6.0","resources":[{"_id":"req_08302ba35f784bdc9fa2edc0cb080287","parentId":"fld_0bc4d91251f54e1d8e00966a259b35bc","modified":1666985452213,"created":1666905719010,"url":"{{url}}/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423181,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_0bc4d91251f54e1d8e00966a259b35bc","parentId":"wrk_e6c8aab80c134d35810fd37d43cce51e","modified":1666905719008,"created":1666905719008,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528974,"_type":"request_group"},{"_id":"wrk_e6c8aab80c134d35810fd37d43cce51e","parentId":null,"modified":1666991880304,"created":1666905718998,"name":"Section 5 - Docker","description":"","scope":"collection","_type":"workspace"},{"_id":"req_6fdedbe47a9941af9b8459816f179274","parentId":"fld_0bc4d91251f54e1d8e00966a259b35bc","modified":1666985886605,"created":1666905719013,"url":"{{url}}/store/STORE_ID","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423156,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_0c240b23280746a6a1a56d7644fb89ce","parentId":"fld_0bc4d91251f54e1d8e00966a259b35bc","modified":1666987464108,"created":1666905719011,"url":"{{url}}/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store2\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666124423143.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_fc255f6789fe45ed80b2ef83e6bb6645","parentId":"fld_0bc4d91251f54e1d8e00966a259b35bc","modified":1666985462540,"created":1666905719014,"url":"{{url}}/store/STORE_ID","name":"/store/ Delete store","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423131,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_b42e3c4d855a433394ac1a8a60c2b91b","parentId":"fld_80dee5df10c347198d8f12d85703d582","modified":1666985467338,"created":1666905719020,"url":"{{url}}/item","name":"/item Get all items","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104308,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_80dee5df10c347198d8f12d85703d582","parentId":"wrk_e6c8aab80c134d35810fd37d43cce51e","modified":1666905719016,"created":1666905719016,"name":"Items","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528924,"_type":"request_group"},{"_id":"req_9a89b2ecfc61457d8cac15985597c0a0","parentId":"fld_80dee5df10c347198d8f12d85703d582","modified":1666986841489,"created":1666905719023,"url":"{{url}}/item/ITEM_ID","name":"/item/ Get item","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104258,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_3d189bf5d88349e3bce363a420407f65","parentId":"fld_80dee5df10c347198d8f12d85703d582","modified":1666987468265,"created":1666905719018,"url":"{{url}}/item","name":"/item Create item","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Chair\",\n\t\"price\": 17.99,\n\t\"store_id\": \"8efca659f8674c56b5cd035ecc0d42ec\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666125104220.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_35d865c76bce4e1b9c378d82ece413f7","parentId":"fld_80dee5df10c347198d8f12d85703d582","modified":1666985474126,"created":1666905719019,"url":"{{url}}/item/ITEM_ID","name":"/item/ Delete item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104214.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_c2bf495d5cbb49d8b933b832a717662a","parentId":"fld_80dee5df10c347198d8f12d85703d582","modified":1666987071504,"created":1666905719022,"url":"{{url}}/item/ITEM_ID","name":"/item/ Update item","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Another Chair\",\n\t\"price\": 20.00\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666125104208,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_adf22718b4e044e5b54b37c869463582","parentId":"wrk_e6c8aab80c134d35810fd37d43cce51e","modified":1666985430514,"created":1666905719000,"name":"Base Environment","data":{"url":"http://127.0.0.1:5005"},"dataPropertyOrder":{"&":["url"]},"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_210b7ba8709f44f29c305ed544da17c3","parentId":"wrk_e6c8aab80c134d35810fd37d43cce51e","modified":1666905719004,"created":1666905719004,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_7a427f233a494727845a45ba1325ea85","parentId":"wrk_e6c8aab80c134d35810fd37d43cce51e","modified":1666905719034,"created":1666905719007,"fileName":"Flask-Smorest-Docker","contents":"","contentType":"yaml","_type":"api_spec"}]} \ No newline at end of file diff --git a/docs/docs/05_flask_smorest/Insomnia_section5_before_Docker.json b/docs/docs/05_flask_smorest/Insomnia_section5_before_Docker.json new file mode 100644 index 00000000..ed6eaddd --- /dev/null +++ b/docs/docs/05_flask_smorest/Insomnia_section5_before_Docker.json @@ -0,0 +1 @@ +{"_type":"export","__export_format":4,"__export_date":"2022-11-09T15:35:47.649Z","__export_source":"insomnia.desktop.app:v2022.6.0","resources":[{"_id":"req_3d2b5cd58a4b4a6983c133118c5f8027","parentId":"fld_afac4dd2683746c586c6ff61228611de","modified":1666125193227,"created":1666124761134,"url":"http://127.0.0.1:5000/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423181,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_afac4dd2683746c586c6ff61228611de","parentId":"wrk_acbd4ac11e8a40e5be2e6dad8ec6174a","modified":1666125229064,"created":1666124761133,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528974,"_type":"request_group"},{"_id":"wrk_acbd4ac11e8a40e5be2e6dad8ec6174a","parentId":null,"modified":1666991873213,"created":1666124761123,"name":"Section 5 before Docker","description":"","scope":"collection","_type":"workspace"},{"_id":"req_bd3ecff11e5b49baa489812528235afb","parentId":"fld_afac4dd2683746c586c6ff61228611de","modified":1666902781180,"created":1666124761139,"url":"http://127.0.0.1:5000/store/STORE_ID","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423156,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_b9dafd45675e4c478fa4dd125f4827b3","parentId":"fld_afac4dd2683746c586c6ff61228611de","modified":1666902941803,"created":1666124761136,"url":"http://127.0.0.1:5000/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store2\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666124423143.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_34cbd59313d44bbfa4fd70166e341b05","parentId":"fld_afac4dd2683746c586c6ff61228611de","modified":1666902749338,"created":1666124977832,"url":"http://127.0.0.1:5000/store/STORE_ID","name":"/store/ Delete store","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423131,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_637d0fb6ba9d4c25b6ad9f5bdda73036","parentId":"fld_91ec9103821245f69f82aa78362f81e1","modified":1666902961406,"created":1666125038450,"url":"http://127.0.0.1:5000/item","name":"/item Get all items","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104308,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_91ec9103821245f69f82aa78362f81e1","parentId":"wrk_acbd4ac11e8a40e5be2e6dad8ec6174a","modified":1666125224286,"created":1666124761144,"name":"Items","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528924,"_type":"request_group"},{"_id":"req_e581f2420345418c84d71dbed226b6da","parentId":"fld_91ec9103821245f69f82aa78362f81e1","modified":1666125710431,"created":1666125184534,"url":"http://127.0.0.1:5000/item/ITEM_ID","name":"/item/ Get item","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104258,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_d48cf679c2664c9bb566b600634b966f","parentId":"fld_91ec9103821245f69f82aa78362f81e1","modified":1666902939274,"created":1666124761145,"url":"http://127.0.0.1:5000/item","name":"/item Create item","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Chair\",\n\t\"price\": 17.99,\n\t\"store_id\": \"f48f94a4760e40d39debf155396a9dec\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666125104220.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_8982d9bcce734f60a9f27a8eb1fc748c","parentId":"fld_91ec9103821245f69f82aa78362f81e1","modified":1666125332019,"created":1666124928966,"url":"http://127.0.0.1:5000/item/ITEM_ID","name":"/item/ Delete item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104214.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_99fbb0c34cd049f1bb8ac4e944f0ae6d","parentId":"fld_91ec9103821245f69f82aa78362f81e1","modified":1666902838552,"created":1666125104208,"url":"http://127.0.0.1:5000/item/ITEM_ID","name":"/item/ Update item","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Another Chair\",\n\t\"price\": 20.00\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666125104208,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_6b3e8bb38d0c4154826d63642b863687","parentId":"wrk_acbd4ac11e8a40e5be2e6dad8ec6174a","modified":1666124761125,"created":1666124761125,"name":"Base Environment","data":{},"dataPropertyOrder":null,"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_9b95c15dadb44c03bf60cc7386095847","parentId":"wrk_acbd4ac11e8a40e5be2e6dad8ec6174a","modified":1666124761128,"created":1666124761128,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_cfb94f75feff4930966c80f350b1e115","parentId":"wrk_acbd4ac11e8a40e5be2e6dad8ec6174a","modified":1666124761155,"created":1666124761131,"fileName":"Flask-Smorest","contents":"","contentType":"yaml","_type":"api_spec"}]} \ No newline at end of file diff --git a/docs/docs/06_sql_storage_sqlalchemy/01_project_overview_sqlalchemy/README.md b/docs/docs/06_sql_storage_sqlalchemy/01_project_overview_sqlalchemy/README.md index 94c15cec..625bb557 100644 --- a/docs/docs/06_sql_storage_sqlalchemy/01_project_overview_sqlalchemy/README.md +++ b/docs/docs/06_sql_storage_sqlalchemy/01_project_overview_sqlalchemy/README.md @@ -5,6 +5,10 @@ description: Let's look at what we'll do in this section. There are no changes t # Project Overview (and why use SQLAlchemy) +:::tip Insomnia files +Remember to get the Insomnia files for this section or for all sections [here](/insomnia-files/)! +::: + In this section we'll make absolutely no changes to the API! However, we will completely change the way we store data. Up until now, we've been storing data in an "in-memory database": a couple of Python dictionaries. When we stop the app, the data is destroyed. This is obviously not great, so we want to move to a proper store that can keep data around between app restarts! diff --git a/docs/docs/06_sql_storage_sqlalchemy/02_create_simple_sqlalchemy_model/start/schemas.py b/docs/docs/06_sql_storage_sqlalchemy/02_create_simple_sqlalchemy_model/start/schemas.py index 0a4ff8d4..b809ed37 100644 --- a/docs/docs/06_sql_storage_sqlalchemy/02_create_simple_sqlalchemy_model/start/schemas.py +++ b/docs/docs/06_sql_storage_sqlalchemy/02_create_simple_sqlalchemy_model/start/schemas.py @@ -5,7 +5,7 @@ class ItemSchema(Schema): id = fields.Str(dump_only=True) name = fields.Str(required=True) price = fields.Float(required=True) - store_id = fields.Int(required=True) + store_id = fields.Str(required=True) class ItemUpdateSchema(Schema): diff --git a/docs/docs/06_sql_storage_sqlalchemy/09_delete_models_sqlalchemy/end/models/__init__.py b/docs/docs/06_sql_storage_sqlalchemy/09_delete_models_sqlalchemy/end/models/__init__.py index b57f3f8a..7cab8b1b 100644 --- a/docs/docs/06_sql_storage_sqlalchemy/09_delete_models_sqlalchemy/end/models/__init__.py +++ b/docs/docs/06_sql_storage_sqlalchemy/09_delete_models_sqlalchemy/end/models/__init__.py @@ -1,5 +1,2 @@ -from models.user import UserModel from models.item import ItemModel -from models.tag import TagModel from models.store import StoreModel -from models.item_tags import ItemsTags diff --git a/docs/docs/06_sql_storage_sqlalchemy/09_delete_models_sqlalchemy/end/requirements.txt b/docs/docs/06_sql_storage_sqlalchemy/09_delete_models_sqlalchemy/end/requirements.txt index 4764bf34..77fe98e4 100644 --- a/docs/docs/06_sql_storage_sqlalchemy/09_delete_models_sqlalchemy/end/requirements.txt +++ b/docs/docs/06_sql_storage_sqlalchemy/09_delete_models_sqlalchemy/end/requirements.txt @@ -1,4 +1,5 @@ flask flask-smorest +flask-sqlalchemy python-dotenv marshmallow \ No newline at end of file diff --git a/docs/docs/06_sql_storage_sqlalchemy/Insomnia_section6.json b/docs/docs/06_sql_storage_sqlalchemy/Insomnia_section6.json new file mode 100644 index 00000000..3d75039d --- /dev/null +++ b/docs/docs/06_sql_storage_sqlalchemy/Insomnia_section6.json @@ -0,0 +1 @@ +{"_type":"export","__export_format":4,"__export_date":"2022-11-09T15:30:25.805Z","__export_source":"insomnia.desktop.app:v2022.6.0","resources":[{"_id":"req_8612530e54144a039af84006ee8c882d","parentId":"fld_7ed8d16fd87545519f2f64b2613ea84a","modified":1666987689179,"created":1666987689179,"url":"{{url}}/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423181,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_7ed8d16fd87545519f2f64b2613ea84a","parentId":"wrk_a6cd641e98494bca9a11fe77b66c7e37","modified":1666987689178,"created":1666987689178,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528974,"_type":"request_group"},{"_id":"wrk_a6cd641e98494bca9a11fe77b66c7e37","parentId":null,"modified":1666987689171,"created":1666987689171,"name":"Section 6","description":"","scope":"collection","_type":"workspace"},{"_id":"req_335002433e9745068d074f1f942ddde2","parentId":"fld_7ed8d16fd87545519f2f64b2613ea84a","modified":1666987689183,"created":1666987689183,"url":"{{url}}/store/STORE_ID","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423156,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_4f7b9d616b0e44ca94ca51cc71660da0","parentId":"fld_7ed8d16fd87545519f2f64b2613ea84a","modified":1666990320166,"created":1666987689181,"url":"{{url}}/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store2\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666124423143.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_9228903cf7a54601a51a59f6a6692363","parentId":"fld_7ed8d16fd87545519f2f64b2613ea84a","modified":1666987689184,"created":1666987689184,"url":"{{url}}/store/STORE_ID","name":"/store/ Delete store","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423131,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_d1d499ead63e469ca04571899cc4759f","parentId":"fld_8761c7b0aa5142cba8985868cbda3de2","modified":1666987689190,"created":1666987689190,"url":"{{url}}/item","name":"/item Get all items","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104308,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_8761c7b0aa5142cba8985868cbda3de2","parentId":"wrk_a6cd641e98494bca9a11fe77b66c7e37","modified":1666987689186,"created":1666987689186,"name":"Items","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528924,"_type":"request_group"},{"_id":"req_94738c7e8c774bd597ffe97bf7b921b6","parentId":"fld_8761c7b0aa5142cba8985868cbda3de2","modified":1666987689194,"created":1666987689194,"url":"{{url}}/item/ITEM_ID","name":"/item/ Get item","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104258,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_0624b67ef6b841f482b7e7522fb6f405","parentId":"fld_8761c7b0aa5142cba8985868cbda3de2","modified":1666990328367,"created":1666987689187,"url":"{{url}}/item","name":"/item Create item","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Chair\",\n\t\"price\": 17.99,\n\t\"store_id\": 1\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666125104220.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_b2651043ea5e4b33b073f260712fb114","parentId":"fld_8761c7b0aa5142cba8985868cbda3de2","modified":1666987689189,"created":1666987689189,"url":"{{url}}/item/ITEM_ID","name":"/item/ Delete item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104214.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_640f313dbd5a4bfcbf98081e2fab6d4a","parentId":"fld_8761c7b0aa5142cba8985868cbda3de2","modified":1666987689192,"created":1666987689192,"url":"{{url}}/item/ITEM_ID","name":"/item/ Update item","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Another Chair\",\n\t\"price\": 20.00\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666125104208,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_892efa21f8454221972d0c77a336872c","parentId":"wrk_a6cd641e98494bca9a11fe77b66c7e37","modified":1666987689172,"created":1666987689172,"name":"Base Environment","data":{"url":"http://127.0.0.1:5005"},"dataPropertyOrder":{"&":["url"]},"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_aff586a35c4c49aa91c5defb067355bf","parentId":"wrk_a6cd641e98494bca9a11fe77b66c7e37","modified":1666987689174,"created":1666987689174,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_4e7424f78749436bacdb44d3a1eba77a","parentId":"wrk_a6cd641e98494bca9a11fe77b66c7e37","modified":1666987689205,"created":1666987689176,"fileName":"Section 6","contents":"","contentType":"yaml","_type":"api_spec"}]} \ No newline at end of file diff --git a/docs/docs/07_sqlalchemy_many_to_many/01_section_changes/README.md b/docs/docs/07_sqlalchemy_many_to_many/01_section_changes/README.md index 813f9e0f..a9086470 100644 --- a/docs/docs/07_sqlalchemy_many_to_many/01_section_changes/README.md +++ b/docs/docs/07_sqlalchemy_many_to_many/01_section_changes/README.md @@ -5,6 +5,10 @@ description: In this section we add Tags to our Stores, and link these to Items # Changes in this section +:::tip Insomnia files +Remember to get the Insomnia files for this section or for all sections [here](/insomnia-files/)! +::: + It's common for online stores to use "tags" to group items and to be able to search for them a bit more easily. For example, an item "Chair" could be tagged with "Furniture" and "Office". diff --git a/docs/docs/07_sqlalchemy_many_to_many/02_one_to_many_review/README.md b/docs/docs/07_sqlalchemy_many_to_many/02_one_to_many_review/README.md index 10e05c2d..3e25e4c1 100644 --- a/docs/docs/07_sqlalchemy_many_to_many/02_one_to_many_review/README.md +++ b/docs/docs/07_sqlalchemy_many_to_many/02_one_to_many_review/README.md @@ -25,7 +25,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") ``` diff --git a/docs/docs/07_sqlalchemy_many_to_many/02_one_to_many_review/end/models/tag.py b/docs/docs/07_sqlalchemy_many_to_many/02_one_to_many_review/end/models/tag.py index c84ee7cb..0bab33a9 100644 --- a/docs/docs/07_sqlalchemy_many_to_many/02_one_to_many_review/end/models/tag.py +++ b/docs/docs/07_sqlalchemy_many_to_many/02_one_to_many_review/end/models/tag.py @@ -6,6 +6,6 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") diff --git a/docs/docs/07_sqlalchemy_many_to_many/03_many_to_many_relationships/README.md b/docs/docs/07_sqlalchemy_many_to_many/03_many_to_many_relationships/README.md index df2ffa1e..4171bb03 100644 --- a/docs/docs/07_sqlalchemy_many_to_many/03_many_to_many_relationships/README.md +++ b/docs/docs/07_sqlalchemy_many_to_many/03_many_to_many_relationships/README.md @@ -85,7 +85,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") # highlight-start diff --git a/docs/docs/07_sqlalchemy_many_to_many/03_many_to_many_relationships/end/models/tag.py b/docs/docs/07_sqlalchemy_many_to_many/03_many_to_many_relationships/end/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/docs/docs/07_sqlalchemy_many_to_many/03_many_to_many_relationships/end/models/tag.py +++ b/docs/docs/07_sqlalchemy_many_to_many/03_many_to_many_relationships/end/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/docs/docs/07_sqlalchemy_many_to_many/03_many_to_many_relationships/start/models/tag.py b/docs/docs/07_sqlalchemy_many_to_many/03_many_to_many_relationships/start/models/tag.py index c84ee7cb..0bab33a9 100644 --- a/docs/docs/07_sqlalchemy_many_to_many/03_many_to_many_relationships/start/models/tag.py +++ b/docs/docs/07_sqlalchemy_many_to_many/03_many_to_many_relationships/start/models/tag.py @@ -6,6 +6,6 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") diff --git a/docs/docs/07_sqlalchemy_many_to_many/Insomnia_section7.json b/docs/docs/07_sqlalchemy_many_to_many/Insomnia_section7.json new file mode 100644 index 00000000..abf8c055 --- /dev/null +++ b/docs/docs/07_sqlalchemy_many_to_many/Insomnia_section7.json @@ -0,0 +1 @@ +{"_type":"export","__export_format":4,"__export_date":"2022-11-09T15:30:50.558Z","__export_source":"insomnia.desktop.app:v2022.6.0","resources":[{"_id":"req_379d0e42420f466bbad1b7481e5e7816","parentId":"fld_86b5e8072a894c409febe46716e99809","modified":1666991794866,"created":1666990973919,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Get tags in store","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990973919,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_86b5e8072a894c409febe46716e99809","parentId":"wrk_6efa5c8b8fa142a28f436b209fba66fa","modified":1666990939045,"created":1666990939045,"name":"Tags","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666990939045,"_type":"request_group"},{"_id":"wrk_6efa5c8b8fa142a28f436b209fba66fa","parentId":null,"modified":1666990745588,"created":1666990745588,"name":"Section 7","description":"","scope":"collection","_type":"workspace"},{"_id":"req_85adfd198935497bb7aedb266beb5bf3","parentId":"fld_86b5e8072a894c409febe46716e99809","modified":1666991788350,"created":1666990945502,"url":"{{url}}/tag/TAG_ID","name":"/tags/ Get tag","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945502,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_4765f7ca8e1e46308cdde255d09a2ffc","parentId":"fld_86b5e8072a894c409febe46716e99809","modified":1666991810641,"created":1666991378432,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Link an item in a store with a tag from the same store","description":"","method":"POST","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945477,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_f07aab6ead044ca7bba0de3437ab08c4","parentId":"fld_86b5e8072a894c409febe46716e99809","modified":1666991779049,"created":1666991031108,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Create tag in store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Tag name\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666990945452,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_77d1a5f225c54acbb27bac15010722ad","parentId":"fld_86b5e8072a894c409febe46716e99809","modified":1666991824192,"created":1666991489163,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Unlink a tag from an item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945427,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_d60510ab22b2499abb20a63629e30fcd","parentId":"fld_86b5e8072a894c409febe46716e99809","modified":1666991828682,"created":1666991524256,"url":"{{url}}/tag/TAG_ID","name":"/tag/ Delete a tag, which must have no associated items.","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945402,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_ab3c728a796e4b4ca51803248e1b0650","parentId":"fld_597937a09435404ebe2200cbaeed101d","modified":1666990745596,"created":1666990745596,"url":"{{url}}/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423181,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_597937a09435404ebe2200cbaeed101d","parentId":"wrk_6efa5c8b8fa142a28f436b209fba66fa","modified":1666990745596,"created":1666990745596,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528974,"_type":"request_group"},{"_id":"req_a9d43bb23e1246da94aec50b9b9ca652","parentId":"fld_597937a09435404ebe2200cbaeed101d","modified":1666990745601,"created":1666990745601,"url":"{{url}}/store/STORE_ID","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423156,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_8a36225a08bb4dfbbf98fd983b0d4a5f","parentId":"fld_597937a09435404ebe2200cbaeed101d","modified":1666991654175,"created":1666990745599,"url":"{{url}}/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store2\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666124423143.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_303507538c0f408eb6d91784b7ed8d36","parentId":"fld_597937a09435404ebe2200cbaeed101d","modified":1666990745602,"created":1666990745602,"url":"{{url}}/store/STORE_ID","name":"/store/ Delete store","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423131,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_f4776751aecc4c6eafb264dc2d2c24cb","parentId":"fld_baa111a1ff5849b4838637f09844bfde","modified":1666990745609,"created":1666990745609,"url":"{{url}}/item","name":"/item Get all items","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104308,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_baa111a1ff5849b4838637f09844bfde","parentId":"wrk_6efa5c8b8fa142a28f436b209fba66fa","modified":1666990745604,"created":1666990745604,"name":"Items","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528924,"_type":"request_group"},{"_id":"req_e6bc2422c8cf4f119c7dc10251a9af65","parentId":"fld_baa111a1ff5849b4838637f09844bfde","modified":1666990745611,"created":1666990745611,"url":"{{url}}/item/ITEM_ID","name":"/item/ Get item","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104258,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_6c72c92f81924ce7bc26ceb488fd64ff","parentId":"fld_baa111a1ff5849b4838637f09844bfde","modified":1666991658886,"created":1666990745605,"url":"{{url}}/item","name":"/item Create item","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Chair\",\n\t\"price\": 17.99,\n\t\"store_id\": 1\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666125104220.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_e86e0877045640d690454a99b176f3a2","parentId":"fld_baa111a1ff5849b4838637f09844bfde","modified":1666990745607,"created":1666990745607,"url":"{{url}}/item/ITEM_ID","name":"/item/ Delete item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104214.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_f0c4a3d747a543249131e19ceea79e56","parentId":"fld_baa111a1ff5849b4838637f09844bfde","modified":1666990745610,"created":1666990745610,"url":"{{url}}/item/ITEM_ID","name":"/item/ Update item","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Another Chair\",\n\t\"price\": 20.00\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666125104208,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_7609e8f1315a4d77af52a6ba50f48205","parentId":"wrk_6efa5c8b8fa142a28f436b209fba66fa","modified":1666990745590,"created":1666990745590,"name":"Base Environment","data":{"url":"http://127.0.0.1:5005"},"dataPropertyOrder":{"&":["url"]},"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_ce9759718e054191a685cec521ed7afc","parentId":"wrk_6efa5c8b8fa142a28f436b209fba66fa","modified":1666990745592,"created":1666990745592,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_0f62897a05a449f9845b4c71eeb892b3","parentId":"wrk_6efa5c8b8fa142a28f436b209fba66fa","modified":1666990745620,"created":1666990745594,"fileName":"Section 7","contents":"","contentType":"yaml","_type":"api_spec"}]} \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/01_section_changes/README.md b/docs/docs/08_flask_jwt_extended/01_section_changes/README.md index e83323d4..18363c61 100644 --- a/docs/docs/08_flask_jwt_extended/01_section_changes/README.md +++ b/docs/docs/08_flask_jwt_extended/01_section_changes/README.md @@ -5,6 +5,10 @@ description: Overview of the API endpoints we'll use for user registration and a # Changes in this section +:::tip Insomnia files +Remember to get the Insomnia files for this section or for all sections [here](/insomnia-files/)! +::: + In this section we will add the following endpoints: | Method | Endpoint | Description | diff --git a/docs/docs/08_flask_jwt_extended/04_flask_jwt_extended_setup/end/Dockerfile b/docs/docs/08_flask_jwt_extended/04_flask_jwt_extended_setup/end/Dockerfile index 00c70b5b..652afba1 100644 --- a/docs/docs/08_flask_jwt_extended/04_flask_jwt_extended_setup/end/Dockerfile +++ b/docs/docs/08_flask_jwt_extended/04_flask_jwt_extended_setup/end/Dockerfile @@ -1,6 +1,7 @@ FROM python:3.10 +EXPOSE 5000 WORKDIR /app COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt COPY . . -CMD ["gunicorn", "--bind", "0.0.0.0:80", "app:create_app()"] \ No newline at end of file +CMD ["flask", "run", "--host", "0.0.0.0"] \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/04_flask_jwt_extended_setup/end/models/tag.py b/docs/docs/08_flask_jwt_extended/04_flask_jwt_extended_setup/end/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/docs/docs/08_flask_jwt_extended/04_flask_jwt_extended_setup/end/models/tag.py +++ b/docs/docs/08_flask_jwt_extended/04_flask_jwt_extended_setup/end/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/docs/docs/08_flask_jwt_extended/04_flask_jwt_extended_setup/start/Dockerfile b/docs/docs/08_flask_jwt_extended/04_flask_jwt_extended_setup/start/Dockerfile index 00c70b5b..652afba1 100644 --- a/docs/docs/08_flask_jwt_extended/04_flask_jwt_extended_setup/start/Dockerfile +++ b/docs/docs/08_flask_jwt_extended/04_flask_jwt_extended_setup/start/Dockerfile @@ -1,6 +1,7 @@ FROM python:3.10 +EXPOSE 5000 WORKDIR /app COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt COPY . . -CMD ["gunicorn", "--bind", "0.0.0.0:80", "app:create_app()"] \ No newline at end of file +CMD ["flask", "run", "--host", "0.0.0.0"] \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/04_flask_jwt_extended_setup/start/models/tag.py b/docs/docs/08_flask_jwt_extended/04_flask_jwt_extended_setup/start/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/docs/docs/08_flask_jwt_extended/04_flask_jwt_extended_setup/start/models/tag.py +++ b/docs/docs/08_flask_jwt_extended/04_flask_jwt_extended_setup/start/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/docs/docs/08_flask_jwt_extended/05_user_model_and_schema/end/Dockerfile b/docs/docs/08_flask_jwt_extended/05_user_model_and_schema/end/Dockerfile index 00c70b5b..652afba1 100644 --- a/docs/docs/08_flask_jwt_extended/05_user_model_and_schema/end/Dockerfile +++ b/docs/docs/08_flask_jwt_extended/05_user_model_and_schema/end/Dockerfile @@ -1,6 +1,7 @@ FROM python:3.10 +EXPOSE 5000 WORKDIR /app COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt COPY . . -CMD ["gunicorn", "--bind", "0.0.0.0:80", "app:create_app()"] \ No newline at end of file +CMD ["flask", "run", "--host", "0.0.0.0"] \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/05_user_model_and_schema/end/models/tag.py b/docs/docs/08_flask_jwt_extended/05_user_model_and_schema/end/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/docs/docs/08_flask_jwt_extended/05_user_model_and_schema/end/models/tag.py +++ b/docs/docs/08_flask_jwt_extended/05_user_model_and_schema/end/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/docs/docs/08_flask_jwt_extended/05_user_model_and_schema/start/Dockerfile b/docs/docs/08_flask_jwt_extended/05_user_model_and_schema/start/Dockerfile index 00c70b5b..652afba1 100644 --- a/docs/docs/08_flask_jwt_extended/05_user_model_and_schema/start/Dockerfile +++ b/docs/docs/08_flask_jwt_extended/05_user_model_and_schema/start/Dockerfile @@ -1,6 +1,7 @@ FROM python:3.10 +EXPOSE 5000 WORKDIR /app COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt COPY . . -CMD ["gunicorn", "--bind", "0.0.0.0:80", "app:create_app()"] \ No newline at end of file +CMD ["flask", "run", "--host", "0.0.0.0"] \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/05_user_model_and_schema/start/models/tag.py b/docs/docs/08_flask_jwt_extended/05_user_model_and_schema/start/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/docs/docs/08_flask_jwt_extended/05_user_model_and_schema/start/models/tag.py +++ b/docs/docs/08_flask_jwt_extended/05_user_model_and_schema/start/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/docs/docs/08_flask_jwt_extended/06_registering_users_rest_api/end/Dockerfile b/docs/docs/08_flask_jwt_extended/06_registering_users_rest_api/end/Dockerfile index 00c70b5b..652afba1 100644 --- a/docs/docs/08_flask_jwt_extended/06_registering_users_rest_api/end/Dockerfile +++ b/docs/docs/08_flask_jwt_extended/06_registering_users_rest_api/end/Dockerfile @@ -1,6 +1,7 @@ FROM python:3.10 +EXPOSE 5000 WORKDIR /app COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt COPY . . -CMD ["gunicorn", "--bind", "0.0.0.0:80", "app:create_app()"] \ No newline at end of file +CMD ["flask", "run", "--host", "0.0.0.0"] \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/06_registering_users_rest_api/end/models/tag.py b/docs/docs/08_flask_jwt_extended/06_registering_users_rest_api/end/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/docs/docs/08_flask_jwt_extended/06_registering_users_rest_api/end/models/tag.py +++ b/docs/docs/08_flask_jwt_extended/06_registering_users_rest_api/end/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/docs/docs/08_flask_jwt_extended/06_registering_users_rest_api/start/Dockerfile b/docs/docs/08_flask_jwt_extended/06_registering_users_rest_api/start/Dockerfile index 00c70b5b..652afba1 100644 --- a/docs/docs/08_flask_jwt_extended/06_registering_users_rest_api/start/Dockerfile +++ b/docs/docs/08_flask_jwt_extended/06_registering_users_rest_api/start/Dockerfile @@ -1,6 +1,7 @@ FROM python:3.10 +EXPOSE 5000 WORKDIR /app COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt COPY . . -CMD ["gunicorn", "--bind", "0.0.0.0:80", "app:create_app()"] \ No newline at end of file +CMD ["flask", "run", "--host", "0.0.0.0"] \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/06_registering_users_rest_api/start/models/tag.py b/docs/docs/08_flask_jwt_extended/06_registering_users_rest_api/start/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/docs/docs/08_flask_jwt_extended/06_registering_users_rest_api/start/models/tag.py +++ b/docs/docs/08_flask_jwt_extended/06_registering_users_rest_api/start/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/docs/docs/08_flask_jwt_extended/07_login_users_rest_api/end/Dockerfile b/docs/docs/08_flask_jwt_extended/07_login_users_rest_api/end/Dockerfile index 00c70b5b..652afba1 100644 --- a/docs/docs/08_flask_jwt_extended/07_login_users_rest_api/end/Dockerfile +++ b/docs/docs/08_flask_jwt_extended/07_login_users_rest_api/end/Dockerfile @@ -1,6 +1,7 @@ FROM python:3.10 +EXPOSE 5000 WORKDIR /app COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt COPY . . -CMD ["gunicorn", "--bind", "0.0.0.0:80", "app:create_app()"] \ No newline at end of file +CMD ["flask", "run", "--host", "0.0.0.0"] \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/07_login_users_rest_api/end/models/tag.py b/docs/docs/08_flask_jwt_extended/07_login_users_rest_api/end/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/docs/docs/08_flask_jwt_extended/07_login_users_rest_api/end/models/tag.py +++ b/docs/docs/08_flask_jwt_extended/07_login_users_rest_api/end/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/docs/docs/08_flask_jwt_extended/07_login_users_rest_api/start/Dockerfile b/docs/docs/08_flask_jwt_extended/07_login_users_rest_api/start/Dockerfile index 00c70b5b..652afba1 100644 --- a/docs/docs/08_flask_jwt_extended/07_login_users_rest_api/start/Dockerfile +++ b/docs/docs/08_flask_jwt_extended/07_login_users_rest_api/start/Dockerfile @@ -1,6 +1,7 @@ FROM python:3.10 +EXPOSE 5000 WORKDIR /app COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt COPY . . -CMD ["gunicorn", "--bind", "0.0.0.0:80", "app:create_app()"] \ No newline at end of file +CMD ["flask", "run", "--host", "0.0.0.0"] \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/07_login_users_rest_api/start/models/tag.py b/docs/docs/08_flask_jwt_extended/07_login_users_rest_api/start/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/docs/docs/08_flask_jwt_extended/07_login_users_rest_api/start/models/tag.py +++ b/docs/docs/08_flask_jwt_extended/07_login_users_rest_api/start/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/end/Dockerfile b/docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/end/Dockerfile index 00c70b5b..652afba1 100644 --- a/docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/end/Dockerfile +++ b/docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/end/Dockerfile @@ -1,6 +1,7 @@ FROM python:3.10 +EXPOSE 5000 WORKDIR /app COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt COPY . . -CMD ["gunicorn", "--bind", "0.0.0.0:80", "app:create_app()"] \ No newline at end of file +CMD ["flask", "run", "--host", "0.0.0.0"] \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/end/models/tag.py b/docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/end/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/end/models/tag.py +++ b/docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/end/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/start/Dockerfile b/docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/start/Dockerfile index 00c70b5b..652afba1 100644 --- a/docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/start/Dockerfile +++ b/docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/start/Dockerfile @@ -1,6 +1,7 @@ FROM python:3.10 +EXPOSE 5000 WORKDIR /app COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt COPY . . -CMD ["gunicorn", "--bind", "0.0.0.0:80", "app:create_app()"] \ No newline at end of file +CMD ["flask", "run", "--host", "0.0.0.0"] \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/start/models/tag.py b/docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/start/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/start/models/tag.py +++ b/docs/docs/08_flask_jwt_extended/08_protect_resources_with_jwt_required/start/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/end/Dockerfile b/docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/end/Dockerfile index 00c70b5b..652afba1 100644 --- a/docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/end/Dockerfile +++ b/docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/end/Dockerfile @@ -1,6 +1,7 @@ FROM python:3.10 +EXPOSE 5000 WORKDIR /app COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt COPY . . -CMD ["gunicorn", "--bind", "0.0.0.0:80", "app:create_app()"] \ No newline at end of file +CMD ["flask", "run", "--host", "0.0.0.0"] \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/end/models/tag.py b/docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/end/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/end/models/tag.py +++ b/docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/end/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/start/Dockerfile b/docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/start/Dockerfile index 00c70b5b..652afba1 100644 --- a/docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/start/Dockerfile +++ b/docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/start/Dockerfile @@ -1,6 +1,7 @@ FROM python:3.10 +EXPOSE 5000 WORKDIR /app COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt COPY . . -CMD ["gunicorn", "--bind", "0.0.0.0:80", "app:create_app()"] \ No newline at end of file +CMD ["flask", "run", "--host", "0.0.0.0"] \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/start/models/tag.py b/docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/start/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/start/models/tag.py +++ b/docs/docs/08_flask_jwt_extended/09_jwt_claims_and_authorization/start/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/end/Dockerfile b/docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/end/Dockerfile index 00c70b5b..652afba1 100644 --- a/docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/end/Dockerfile +++ b/docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/end/Dockerfile @@ -1,6 +1,7 @@ FROM python:3.10 +EXPOSE 5000 WORKDIR /app COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt COPY . . -CMD ["gunicorn", "--bind", "0.0.0.0:80", "app:create_app()"] \ No newline at end of file +CMD ["flask", "run", "--host", "0.0.0.0"] \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/end/models/tag.py b/docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/end/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/end/models/tag.py +++ b/docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/end/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/start/Dockerfile b/docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/start/Dockerfile index 00c70b5b..652afba1 100644 --- a/docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/start/Dockerfile +++ b/docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/start/Dockerfile @@ -1,6 +1,7 @@ FROM python:3.10 +EXPOSE 5000 WORKDIR /app COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt COPY . . -CMD ["gunicorn", "--bind", "0.0.0.0:80", "app:create_app()"] \ No newline at end of file +CMD ["flask", "run", "--host", "0.0.0.0"] \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/start/models/tag.py b/docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/start/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/start/models/tag.py +++ b/docs/docs/08_flask_jwt_extended/10_logout_users_rest_api/start/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/end/Dockerfile b/docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/end/Dockerfile index 00c70b5b..652afba1 100644 --- a/docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/end/Dockerfile +++ b/docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/end/Dockerfile @@ -1,6 +1,7 @@ FROM python:3.10 +EXPOSE 5000 WORKDIR /app COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt COPY . . -CMD ["gunicorn", "--bind", "0.0.0.0:80", "app:create_app()"] \ No newline at end of file +CMD ["flask", "run", "--host", "0.0.0.0"] \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/end/models/tag.py b/docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/end/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/end/models/tag.py +++ b/docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/end/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/start/Dockerfile b/docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/start/Dockerfile index 00c70b5b..652afba1 100644 --- a/docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/start/Dockerfile +++ b/docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/start/Dockerfile @@ -1,6 +1,7 @@ FROM python:3.10 +EXPOSE 5000 WORKDIR /app COPY ./requirements.txt requirements.txt RUN pip install --no-cache-dir --upgrade -r requirements.txt COPY . . -CMD ["gunicorn", "--bind", "0.0.0.0:80", "app:create_app()"] \ No newline at end of file +CMD ["flask", "run", "--host", "0.0.0.0"] \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/start/models/tag.py b/docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/start/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/start/models/tag.py +++ b/docs/docs/08_flask_jwt_extended/12_token_refreshing_flask_jwt_extended/start/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/docs/docs/08_flask_jwt_extended/Insomnia_section8_before_chaining.json b/docs/docs/08_flask_jwt_extended/Insomnia_section8_before_chaining.json new file mode 100644 index 00000000..c884368d --- /dev/null +++ b/docs/docs/08_flask_jwt_extended/Insomnia_section8_before_chaining.json @@ -0,0 +1 @@ +{"_type":"export","__export_format":4,"__export_date":"2022-11-09T15:31:21.063Z","__export_source":"insomnia.desktop.app:v2022.6.0","resources":[{"_id":"req_adb596c3d0ee48e2b009a555297f36ac","parentId":"fld_3426c101e9094fa79fbf96cf1ec23fae","modified":1667331428779,"created":1667328670383,"url":"{{url}}/user/USER_ID","name":"/user/ Get user","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1667328670383,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_3426c101e9094fa79fbf96cf1ec23fae","parentId":"wrk_101d091b922e44c28f66528e9ef2ae37","modified":1667328596182,"created":1667328596182,"name":"Users","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1667328596182,"_type":"request_group"},{"_id":"wrk_101d091b922e44c28f66528e9ef2ae37","parentId":null,"modified":1666991842388,"created":1666991842388,"name":"Section 8","description":"","scope":"collection","_type":"workspace"},{"_id":"req_fe639dc55a2d439f9aa7a6bceee6a9fa","parentId":"fld_3426c101e9094fa79fbf96cf1ec23fae","modified":1667332404117,"created":1667328597818,"url":"{{url}}/register","name":"/register Create user","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1667328597818,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_5e7ca3df73314f8c839493d53528760b","parentId":"fld_3426c101e9094fa79fbf96cf1ec23fae","modified":1667332406439,"created":1667331560707,"url":"{{url}}/login","name":"/login Authenticate user","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_716a234feee94c3b9e79966a066fc00d"}],"authentication":{},"metaSortKey":-1667328597793,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_bc66397203734df4b4eb6d153d8d3ec3","parentId":"fld_3426c101e9094fa79fbf96cf1ec23fae","modified":1668007854634,"created":1667332459073,"url":"{{url}}/logout","name":"/logout Revoke JWT","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_716a234feee94c3b9e79966a066fc00d"},{"id":"pair_c27fa3320a6943cfbf87c40b7ca6ab73","name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2NzMzMjQwNiwianRpIjoiMTU2ZTc5MzUtMmYwYy00NDE2LThmYWItODExYzdmNjY0ZDk4IiwidHlwZSI6ImFjY2VzcyIsInN1YiI6MSwibmJmIjoxNjY3MzMyNDA2LCJleHAiOjE2NjczMzMzMDZ9.zht2vTD73oderxN4uBobsywovxHdDjohbDNGk8_Vuaw","description":""}],"authentication":{},"metaSortKey":-1667328597780.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_953d7fdcaf1f433b9b3b0cdf6453b0cd","parentId":"fld_3426c101e9094fa79fbf96cf1ec23fae","modified":1667332353929,"created":1667328704142,"url":"{{url}}/user/1","name":"/user/ Delete user","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1667328597768,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_362ff303b1054bd0b0d62522803aea64","parentId":"fld_815efb55c04548dea5dfec2e2f69ebcb","modified":1666991842419,"created":1666991842419,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Get tags in store","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990973919,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_815efb55c04548dea5dfec2e2f69ebcb","parentId":"wrk_101d091b922e44c28f66528e9ef2ae37","modified":1666991842417,"created":1666991842417,"name":"Tags","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666990939045,"_type":"request_group"},{"_id":"req_f613fc18d27648daa00d6b78deea5b66","parentId":"fld_815efb55c04548dea5dfec2e2f69ebcb","modified":1666991842418,"created":1666991842418,"url":"{{url}}/tag/TAG_ID","name":"/tags/ Get tag","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945502,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_e899763b1c0a46ad9eb47f9e628aa643","parentId":"fld_815efb55c04548dea5dfec2e2f69ebcb","modified":1666991842422,"created":1666991842422,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Link an item in a store with a tag from the same store","description":"","method":"POST","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945477,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_266cac65472a4a118929460e58893fb0","parentId":"fld_815efb55c04548dea5dfec2e2f69ebcb","modified":1666991842421,"created":1666991842421,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Create tag in store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Tag name\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666990945452,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_e63e0532c2c340aa8ed6643f0ae1b4ec","parentId":"fld_815efb55c04548dea5dfec2e2f69ebcb","modified":1666991842424,"created":1666991842424,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Unlink a tag from an item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945427,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_5c6887cfb9c94dc2aa2fe76d525fecac","parentId":"fld_815efb55c04548dea5dfec2e2f69ebcb","modified":1666991842426,"created":1666991842426,"url":"{{url}}/tag/TAG_ID","name":"/tag/ Delete a tag, which must have no associated items.","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945402,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_2ba32c3564f3456aa1c8731323508968","parentId":"fld_a18660fe822f44828b330ba9a4d3946a","modified":1666991842400,"created":1666991842400,"url":"{{url}}/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423181,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_a18660fe822f44828b330ba9a4d3946a","parentId":"wrk_101d091b922e44c28f66528e9ef2ae37","modified":1666991842399,"created":1666991842399,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528974,"_type":"request_group"},{"_id":"req_047bf72b98214de4a8f711fd46b73eb4","parentId":"fld_a18660fe822f44828b330ba9a4d3946a","modified":1666991842403,"created":1666991842403,"url":"{{url}}/store/STORE_ID","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423156,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_57daa411077044a98d3b2534ee735703","parentId":"fld_a18660fe822f44828b330ba9a4d3946a","modified":1667332324728,"created":1666991842402,"url":"{{url}}/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store22\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_2f351442a28746c98995c18ea907feaa"}],"authentication":{},"metaSortKey":-1666124423143.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_6c1af0972dbe4faebf5973d95670c241","parentId":"fld_a18660fe822f44828b330ba9a4d3946a","modified":1667332341585,"created":1666991842405,"url":"{{url}}/store/STORE_ID","name":"/store/ Delete store","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423131,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_0d1c09067c6a419a9096b32da16d01a3","parentId":"fld_b2b78ef1cd504663bef29f23cb3fd9a7","modified":1667332272845,"created":1666991842412,"url":"{{url}}/item","name":"/item Get all items","description":"","method":"GET","body":{},"parameters":[],"headers":[{"id":"pair_d42eaef671e847b2a2eadb8f3af9be22","name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2NzMzMjA3MCwianRpIjoiODA5Njk2MmUtYmNlMy00NjgyLWJkZTUtYjYzMDgwZGU3NmJjIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6MSwibmJmIjoxNjY3MzMyMDcwLCJleHAiOjE2NjczMzI5NzB9.MY-MKMh8mEaX8cWjz0RJZ2JStD7hHBD1j7nB3GT2vks","description":""}],"authentication":{},"metaSortKey":-1666125104308,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_b2b78ef1cd504663bef29f23cb3fd9a7","parentId":"wrk_101d091b922e44c28f66528e9ef2ae37","modified":1666991842407,"created":1666991842407,"name":"Items","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528924,"_type":"request_group"},{"_id":"req_dbdfc5218bf54bfab39db152b3ffe982","parentId":"fld_b2b78ef1cd504663bef29f23cb3fd9a7","modified":1667332288041,"created":1666991842414,"url":"{{url}}/item/ITEM_ID","name":"/item/ Get item","description":"","method":"GET","body":{},"parameters":[],"headers":[{"id":"pair_117512e4f7834d24ab18754279464356","name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2NzMzMjA3MCwianRpIjoiODA5Njk2MmUtYmNlMy00NjgyLWJkZTUtYjYzMDgwZGU3NmJjIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6MSwibmJmIjoxNjY3MzMyMDcwLCJleHAiOjE2NjczMzI5NzB9.MY-MKMh8mEaX8cWjz0RJZ2JStD7hHBD1j7nB3GT2vks","description":""}],"authentication":{},"metaSortKey":-1666125104258,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_32c5d69aec8f44fdb33852b456c99b7a","parentId":"fld_b2b78ef1cd504663bef29f23cb3fd9a7","modified":1667332259971,"created":1666991842408,"url":"{{url}}/item","name":"/item Create item","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Chairs\",\n\t\"price\": 17.99,\n\t\"store_id\": 1\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_c60e217df8494bf1af1c02b872b5430a"},{"id":"pair_e6b6dbc1883d4ee1a90ac154e8fbb3a7","name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2NzMzMjA3MCwianRpIjoiODA5Njk2MmUtYmNlMy00NjgyLWJkZTUtYjYzMDgwZGU3NmJjIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6MSwibmJmIjoxNjY3MzMyMDcwLCJleHAiOjE2NjczMzI5NzB9.MY-MKMh8mEaX8cWjz0RJZ2JStD7hHBD1j7nB3GT2vks","description":""}],"authentication":{},"metaSortKey":-1666125104220.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_1843f2db017842b993251abbedeb2e8b","parentId":"fld_b2b78ef1cd504663bef29f23cb3fd9a7","modified":1667332298429,"created":1666991842410,"url":"{{url}}/item/ITEM_ID","name":"/item/ Delete item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[{"id":"pair_1b62f1a1d23245439dfc1a356f67cd36","name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2NzMzMjA3MCwianRpIjoiODA5Njk2MmUtYmNlMy00NjgyLWJkZTUtYjYzMDgwZGU3NmJjIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6MSwibmJmIjoxNjY3MzMyMDcwLCJleHAiOjE2NjczMzI5NzB9.MY-MKMh8mEaX8cWjz0RJZ2JStD7hHBD1j7nB3GT2vks","description":""}],"authentication":{},"metaSortKey":-1666125104214.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_d311f219368d46a6b6d92be142a32763","parentId":"fld_b2b78ef1cd504663bef29f23cb3fd9a7","modified":1667332311745,"created":1666991842413,"url":"{{url}}/item/ITEM_ID","name":"/item/ Update item","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Another Chair\",\n\t\"price\": 20.00\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_4c9b7b960e3b499f8e94f507537195ae"}],"authentication":{},"metaSortKey":-1666125104208,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_52ad539864c4425884f6394f62627cb7","parentId":"wrk_101d091b922e44c28f66528e9ef2ae37","modified":1667329454452,"created":1666991842391,"name":"Base Environment","data":{"url":"http://127.0.0.1:5005"},"dataPropertyOrder":{"&":["url"]},"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_bc7c508b3eed4f2485782e9d7177762e","parentId":"wrk_101d091b922e44c28f66528e9ef2ae37","modified":1666991842395,"created":1666991842395,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_75bd139c1688445faff87b21105f8df1","parentId":"wrk_101d091b922e44c28f66528e9ef2ae37","modified":1666991842435,"created":1666991842397,"fileName":"Section 8","contents":"","contentType":"yaml","_type":"api_spec"}]} \ No newline at end of file diff --git a/docs/docs/08_flask_jwt_extended/Insomnia_section8_chaining.json b/docs/docs/08_flask_jwt_extended/Insomnia_section8_chaining.json new file mode 100644 index 00000000..a0a0f60f --- /dev/null +++ b/docs/docs/08_flask_jwt_extended/Insomnia_section8_chaining.json @@ -0,0 +1 @@ +{"_type":"export","__export_format":4,"__export_date":"2022-11-09T15:31:42.216Z","__export_source":"insomnia.desktop.app:v2022.6.0","resources":[{"_id":"req_00cda5fbc60a4905bf5b8e67aa7dadb4","parentId":"fld_f0dbcc5050af40dbaabdd9bfe69a098f","modified":1667332566874,"created":1667332566874,"url":"{{url}}/user/USER_ID","name":"/user/ Get user","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1667328670383,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_f0dbcc5050af40dbaabdd9bfe69a098f","parentId":"wrk_5d43c6fa3d9a4ba8817aa2e2767d791a","modified":1667332566872,"created":1667332566872,"name":"Users","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1667328596182,"_type":"request_group"},{"_id":"wrk_5d43c6fa3d9a4ba8817aa2e2767d791a","parentId":null,"modified":1667332566837,"created":1667332566837,"name":"Section 8 - Chaining","description":"","scope":"collection","_type":"workspace"},{"_id":"req_0ae766df1c25481e83bd6ade061a919b","parentId":"fld_f0dbcc5050af40dbaabdd9bfe69a098f","modified":1667676377948,"created":1667650753174,"url":"{{url}}/refresh","name":"/refresh Get non-fresh token","description":"","method":"POST","body":{},"parameters":[],"headers":[{"id":"pair_d002eea6b22e4190909fc8366b5a4704","name":"Authorization","value":"Bearer {{refresh_token}}","description":""}],"authentication":{},"metaSortKey":-1667328634100.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_252ddd492b9242ffb1a6fe21e25534c5","parentId":"fld_f0dbcc5050af40dbaabdd9bfe69a098f","modified":1667650976611,"created":1667332566872,"url":"{{url}}/register","name":"/register Create user","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_975ec20d9bec44538591da08c95ccd63"}],"authentication":{},"metaSortKey":-1667328597818,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_fe8e836ebd4a44cd9f37ff8738e7ed98","parentId":"fld_f0dbcc5050af40dbaabdd9bfe69a098f","modified":1667650979775,"created":1667332566877,"url":"{{url}}/login","name":"/login Authenticate user","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_716a234feee94c3b9e79966a066fc00d"}],"authentication":{},"metaSortKey":-1667328597793,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_6a638b0dfd3040118a0282fe5a49b5fb","parentId":"fld_f0dbcc5050af40dbaabdd9bfe69a098f","modified":1667332566878,"created":1667332566878,"url":"{{url}}/logout","name":"/logout Revoke JWT","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_716a234feee94c3b9e79966a066fc00d"},{"id":"pair_c27fa3320a6943cfbf87c40b7ca6ab73","name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2NzMzMjQwNiwianRpIjoiMTU2ZTc5MzUtMmYwYy00NDE2LThmYWItODExYzdmNjY0ZDk4IiwidHlwZSI6ImFjY2VzcyIsInN1YiI6MSwibmJmIjoxNjY3MzMyNDA2LCJleHAiOjE2NjczMzMzMDZ9.zht2vTD73oderxN4uBobsywovxHdDjohbDNGk8_Vuaw","description":""}],"authentication":{},"metaSortKey":-1667328597780.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_229bc7e2601e44cb82eb3e5eafa90202","parentId":"fld_f0dbcc5050af40dbaabdd9bfe69a098f","modified":1667332566875,"created":1667332566875,"url":"{{url}}/user/1","name":"/user/ Delete user","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1667328597768,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_ba56440f8f204525a13fbdfbd2273ae0","parentId":"fld_db9477d576514920b5a9e1d2d82d2254","modified":1667332566864,"created":1667332566864,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Get tags in store","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990973919,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_db9477d576514920b5a9e1d2d82d2254","parentId":"wrk_5d43c6fa3d9a4ba8817aa2e2767d791a","modified":1667332566861,"created":1667332566861,"name":"Tags","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666990939045,"_type":"request_group"},{"_id":"req_e2bc3c7dd1c240baad60b3881359bf38","parentId":"fld_db9477d576514920b5a9e1d2d82d2254","modified":1667332566862,"created":1667332566862,"url":"{{url}}/tag/TAG_ID","name":"/tags/ Get tag","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945502,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_ae7151238fe84a65b5b1064b87cef5bd","parentId":"fld_db9477d576514920b5a9e1d2d82d2254","modified":1667332566867,"created":1667332566867,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Link an item in a store with a tag from the same store","description":"","method":"POST","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945477,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_9237adf4f3e74e1b9aa8dbb15680c2f3","parentId":"fld_db9477d576514920b5a9e1d2d82d2254","modified":1667332566866,"created":1667332566866,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Create tag in store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Tag name\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666990945452,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_c11ab9d081754c3e95f0eed61219454a","parentId":"fld_db9477d576514920b5a9e1d2d82d2254","modified":1667332566868,"created":1667332566868,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Unlink a tag from an item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945427,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_03468f66652a42dcbd34ef05ce4fd714","parentId":"fld_db9477d576514920b5a9e1d2d82d2254","modified":1667332566870,"created":1667332566870,"url":"{{url}}/tag/TAG_ID","name":"/tag/ Delete a tag, which must have no associated items.","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945402,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_22eb90da9d974ac2880b9207d6d11c01","parentId":"fld_6315121566934d098d5f963bb2b25679","modified":1667332566845,"created":1667332566845,"url":"{{url}}/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423181,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_6315121566934d098d5f963bb2b25679","parentId":"wrk_5d43c6fa3d9a4ba8817aa2e2767d791a","modified":1667332566844,"created":1667332566844,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528974,"_type":"request_group"},{"_id":"req_44b8b847e3bd4b35bb7c5d2df5e0ee94","parentId":"fld_6315121566934d098d5f963bb2b25679","modified":1667332566849,"created":1667332566849,"url":"{{url}}/store/STORE_ID","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423156,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_3efb83da0cb34711961a59b6b3b39278","parentId":"fld_6315121566934d098d5f963bb2b25679","modified":1667332566848,"created":1667332566848,"url":"{{url}}/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store22\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_2f351442a28746c98995c18ea907feaa"}],"authentication":{},"metaSortKey":-1666124423143.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_24669eae6530416094eb2c746ae577ed","parentId":"fld_6315121566934d098d5f963bb2b25679","modified":1667332566851,"created":1667332566851,"url":"{{url}}/store/STORE_ID","name":"/store/ Delete store","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423131,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_41e02aac89e5447fb70b42a5fbb6e42d","parentId":"fld_68ade160b31f446995815fec3dc30a93","modified":1667650833785,"created":1667332566857,"url":"{{url}}/item","name":"/item Get all items","description":"","method":"GET","body":{},"parameters":[],"headers":[{"id":"pair_d42eaef671e847b2a2eadb8f3af9be22","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104308,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_68ade160b31f446995815fec3dc30a93","parentId":"wrk_5d43c6fa3d9a4ba8817aa2e2767d791a","modified":1667332566853,"created":1667332566853,"name":"Items","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528924,"_type":"request_group"},{"_id":"req_51ea1a9b34584746a8368ede6f6bfadf","parentId":"fld_68ade160b31f446995815fec3dc30a93","modified":1667332848385,"created":1667332566859,"url":"{{url}}/item/ITEM_ID","name":"/item/ Get item","description":"","method":"GET","body":{},"parameters":[],"headers":[{"id":"pair_117512e4f7834d24ab18754279464356","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104258,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_69cc615e910a4ca7a91382b455c3ceb5","parentId":"fld_68ade160b31f446995815fec3dc30a93","modified":1667332840222,"created":1667332566854,"url":"{{url}}/item","name":"/item Create item","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Chairs\",\n\t\"price\": 17.99,\n\t\"store_id\": 1\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_c60e217df8494bf1af1c02b872b5430a"},{"id":"pair_e6b6dbc1883d4ee1a90ac154e8fbb3a7","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104220.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_310092462fe44643bdbcf671dd488033","parentId":"fld_68ade160b31f446995815fec3dc30a93","modified":1667332838232,"created":1667332566855,"url":"{{url}}/item/ITEM_ID","name":"/item/ Delete item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[{"id":"pair_1b62f1a1d23245439dfc1a356f67cd36","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104214.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_260395e8e71c47559f2c70f50618ea38","parentId":"fld_68ade160b31f446995815fec3dc30a93","modified":1667332566858,"created":1667332566858,"url":"{{url}}/item/ITEM_ID","name":"/item/ Update item","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Another Chair\",\n\t\"price\": 20.00\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_4c9b7b960e3b499f8e94f507537195ae"}],"authentication":{},"metaSortKey":-1666125104208,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_c2a4191124a544e9a440f8042644c7b9","parentId":"wrk_5d43c6fa3d9a4ba8817aa2e2767d791a","modified":1667651225760,"created":1667332566839,"name":"Base Environment","data":{"url":"http://127.0.0.1:5005","access_token":"{% response 'body', 'req_fe8e836ebd4a44cd9f37ff8738e7ed98', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 300 %}","refresh_token":"{% response 'body', 'req_fe8e836ebd4a44cd9f37ff8738e7ed98', 'b64::JC5yZWZyZXNoX3Rva2Vu::46b', 'when-expired', NaN %}"},"dataPropertyOrder":{"&":["url","access_token","refresh_token"]},"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_8a4500f913d7401fa00168eaf32dcb4c","parentId":"wrk_5d43c6fa3d9a4ba8817aa2e2767d791a","modified":1667332566841,"created":1667332566841,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_2d4dfbfd115b4f91b44d09ad3c6d0b5b","parentId":"wrk_5d43c6fa3d9a4ba8817aa2e2767d791a","modified":1667332566888,"created":1667332566842,"fileName":"Section 8 - Chaining","contents":"","contentType":"yaml","_type":"api_spec"}]} \ No newline at end of file diff --git a/docs/docs/11_deploy_to_render/01_section_overview/README.md b/docs/docs/11_deploy_to_render/01_section_overview/README.md index f27a269f..03176785 100644 --- a/docs/docs/11_deploy_to_render/01_section_overview/README.md +++ b/docs/docs/11_deploy_to_render/01_section_overview/README.md @@ -1,5 +1,9 @@ # Overview of this section +:::tip Insomnia files +Remember to get the Insomnia files for this section or for all sections [here](/insomnia-files/)! +::: + In this section, we will figure out how to get our Flask app and put it on a public server so other people can interact with it! This is called "deploying". There are many services we can use to deploy our app. Most of them have some sort of "free tier" so that you can try the deployment without having to pay anything. Usually, if you want better performance or unlimited usage, you have to pay. diff --git a/docs/docs/11_deploy_to_render/Insomnia_section11.json b/docs/docs/11_deploy_to_render/Insomnia_section11.json new file mode 100644 index 00000000..f32ecb97 --- /dev/null +++ b/docs/docs/11_deploy_to_render/Insomnia_section11.json @@ -0,0 +1 @@ +{"_type":"export","__export_format":4,"__export_date":"2022-11-18T22:14:08.036Z","__export_source":"insomnia.desktop.app:v2022.6.0","resources":[{"_id":"req_92cec23efa0d47a582b4cf476fbe1c7d","parentId":"fld_8173221215364faa9eaf4de28d0b227d","modified":1668007660695,"created":1668007660695,"url":"{{url}}/user/USER_ID","name":"/user/ Get user","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1667328670383,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_8173221215364faa9eaf4de28d0b227d","parentId":"wrk_f14186e0f24a4da9ab3ab8d628227a36","modified":1668007660692,"created":1668007660692,"name":"Users","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1667328596182,"_type":"request_group"},{"_id":"wrk_f14186e0f24a4da9ab3ab8d628227a36","parentId":null,"modified":1668007660646,"created":1668007660646,"name":"Section 11","description":"","scope":"collection","_type":"workspace"},{"_id":"req_70c9c31ae27e47b684428bb88932f96d","parentId":"fld_8173221215364faa9eaf4de28d0b227d","modified":1668007660702,"created":1668007660702,"url":"{{url}}/refresh","name":"/refresh Get non-fresh token","description":"","method":"POST","body":{},"parameters":[],"headers":[{"id":"pair_d002eea6b22e4190909fc8366b5a4704","name":"Authorization","value":"Bearer {{refresh_token}}","description":""}],"authentication":{},"metaSortKey":-1667328634100.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_a9790bade2c14dd5a87b85088017aa92","parentId":"fld_8173221215364faa9eaf4de28d0b227d","modified":1668809637607,"created":1668007660694,"url":"{{url}}/register","name":"/register Create user","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_975ec20d9bec44538591da08c95ccd63"}],"authentication":{},"metaSortKey":-1667328597818,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_0aa8a2f045e94cea96ba0f7061a26c41","parentId":"fld_8173221215364faa9eaf4de28d0b227d","modified":1668678383934,"created":1668007660698,"url":"{{url}}/login","name":"/login Authenticate user","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_716a234feee94c3b9e79966a066fc00d"}],"authentication":{},"metaSortKey":-1667328597793,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_1a5f0c9aa22841e0a60e47c6a5f65edc","parentId":"fld_8173221215364faa9eaf4de28d0b227d","modified":1668678384453,"created":1668007660701,"url":"{{url}}/logout","name":"/logout Revoke JWT","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_716a234feee94c3b9e79966a066fc00d"},{"id":"pair_c27fa3320a6943cfbf87c40b7ca6ab73","name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2NzMzMjQwNiwianRpIjoiMTU2ZTc5MzUtMmYwYy00NDE2LThmYWItODExYzdmNjY0ZDk4IiwidHlwZSI6ImFjY2VzcyIsInN1YiI6MSwibmJmIjoxNjY3MzMyNDA2LCJleHAiOjE2NjczMzMzMDZ9.zht2vTD73oderxN4uBobsywovxHdDjohbDNGk8_Vuaw","description":""}],"authentication":{},"metaSortKey":-1667328597780.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_969a6a61d9b74bd3ad27623663999dca","parentId":"fld_8173221215364faa9eaf4de28d0b227d","modified":1668007660697,"created":1668007660697,"url":"{{url}}/user/1","name":"/user/ Delete user","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1667328597768,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_8b7c05ec34874814bbb1ed17f23d7ea3","parentId":"fld_3083883073354f11bb6c2aa2fcbe76d3","modified":1668007660682,"created":1668007660682,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Get tags in store","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990973919,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_3083883073354f11bb6c2aa2fcbe76d3","parentId":"wrk_f14186e0f24a4da9ab3ab8d628227a36","modified":1668007660679,"created":1668007660679,"name":"Tags","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666990939045,"_type":"request_group"},{"_id":"req_c063f1996fde409f81d62a0e3d20b631","parentId":"fld_3083883073354f11bb6c2aa2fcbe76d3","modified":1668007660681,"created":1668007660681,"url":"{{url}}/tag/TAG_ID","name":"/tags/ Get tag","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945502,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_007ed54990944618a9e4bbf4fed9bdc8","parentId":"fld_3083883073354f11bb6c2aa2fcbe76d3","modified":1668007660686,"created":1668007660686,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Link an item in a store with a tag from the same store","description":"","method":"POST","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945477,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_5739a9e1be2e4fcd8ecdac5142b5e76d","parentId":"fld_3083883073354f11bb6c2aa2fcbe76d3","modified":1668678381399,"created":1668007660684,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Create tag in store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Tag name\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666990945452,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_fbc4905447b04feca058e6f8c0428acf","parentId":"fld_3083883073354f11bb6c2aa2fcbe76d3","modified":1668007660688,"created":1668007660688,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Unlink a tag from an item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945427,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_839409cd69e945b694d46f3101eec0d5","parentId":"fld_3083883073354f11bb6c2aa2fcbe76d3","modified":1668007660690,"created":1668007660690,"url":"{{url}}/tag/TAG_ID","name":"/tag/ Delete a tag, which must have no associated items.","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945402,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_fe2a4b3d67664cd194efe09393b9fd02","parentId":"fld_db95f405b201413889d2ae8918eee2d4","modified":1668007660660,"created":1668007660660,"url":"{{url}}/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423181,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_db95f405b201413889d2ae8918eee2d4","parentId":"wrk_f14186e0f24a4da9ab3ab8d628227a36","modified":1668007660658,"created":1668007660658,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528974,"_type":"request_group"},{"_id":"req_b34295f6d8b24000b77f812c9cc2c2cc","parentId":"fld_db95f405b201413889d2ae8918eee2d4","modified":1668007660663,"created":1668007660663,"url":"{{url}}/store/STORE_ID","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423156,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_90015fc3fcae4301b0d8a5c0355a3d83","parentId":"fld_db95f405b201413889d2ae8918eee2d4","modified":1668678375918,"created":1668007660661,"url":"{{url}}/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store22\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_2f351442a28746c98995c18ea907feaa"}],"authentication":{},"metaSortKey":-1666124423143.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_0e20a55b16034f06a3246c4e76f1c387","parentId":"fld_db95f405b201413889d2ae8918eee2d4","modified":1668007660665,"created":1668007660665,"url":"{{url}}/store/STORE_ID","name":"/store/ Delete store","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423131,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_671694da515a4c4e877008b02cd17f57","parentId":"fld_11fd3ae720264f0b9480c6277f1a7633","modified":1668007660673,"created":1668007660673,"url":"{{url}}/item","name":"/item Get all items","description":"","method":"GET","body":{},"parameters":[],"headers":[{"id":"pair_d42eaef671e847b2a2eadb8f3af9be22","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104308,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_11fd3ae720264f0b9480c6277f1a7633","parentId":"wrk_f14186e0f24a4da9ab3ab8d628227a36","modified":1668007660668,"created":1668007660668,"name":"Items","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528924,"_type":"request_group"},{"_id":"req_a55050436885439f8393e70546d75641","parentId":"fld_11fd3ae720264f0b9480c6277f1a7633","modified":1668007660676,"created":1668007660676,"url":"{{url}}/item/ITEM_ID","name":"/item/ Get item","description":"","method":"GET","body":{},"parameters":[],"headers":[{"id":"pair_117512e4f7834d24ab18754279464356","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104258,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_b8cc399abc8749eea66c6967522f8a36","parentId":"fld_11fd3ae720264f0b9480c6277f1a7633","modified":1668678378059,"created":1668007660669,"url":"{{url}}/item","name":"/item Create item","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Chairs\",\n\t\"price\": 17.99,\n\t\"store_id\": 1\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_c60e217df8494bf1af1c02b872b5430a"},{"id":"pair_e6b6dbc1883d4ee1a90ac154e8fbb3a7","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104220.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_8e9e92854eab4e74af765725b54c7d31","parentId":"fld_11fd3ae720264f0b9480c6277f1a7633","modified":1668007660671,"created":1668007660671,"url":"{{url}}/item/ITEM_ID","name":"/item/ Delete item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[{"id":"pair_1b62f1a1d23245439dfc1a356f67cd36","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104214.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_5303d646b4c44843bc9c8322675f9c54","parentId":"fld_11fd3ae720264f0b9480c6277f1a7633","modified":1668678378608,"created":1668007660675,"url":"{{url}}/item/ITEM_ID","name":"/item/ Update item","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Another Chair\",\n\t\"price\": 20.00\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_4c9b7b960e3b499f8e94f507537195ae"}],"authentication":{},"metaSortKey":-1666125104208,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_e09818240d524d079150f6fc00963c54","parentId":"wrk_f14186e0f24a4da9ab3ab8d628227a36","modified":1668007660648,"created":1668007660648,"name":"Base Environment","data":{"url":"http://127.0.0.1:5005","access_token":"{% response 'body', 'req_fe8e836ebd4a44cd9f37ff8738e7ed98', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 300 %}","refresh_token":"{% response 'body', 'req_fe8e836ebd4a44cd9f37ff8738e7ed98', 'b64::JC5yZWZyZXNoX3Rva2Vu::46b', 'when-expired', NaN %}"},"dataPropertyOrder":{"&":["url","access_token","refresh_token"]},"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_9aa71c77793345cabd413a66ad557bd7","parentId":"wrk_f14186e0f24a4da9ab3ab8d628227a36","modified":1668007660652,"created":1668007660652,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_2f42797dc9c6441fb3d3e7b23780dc27","parentId":"wrk_f14186e0f24a4da9ab3ab8d628227a36","modified":1668007660725,"created":1668007660654,"fileName":"Section 11","contents":"","contentType":"yaml","_type":"api_spec"}]} \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/README.md b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/README.md index 66b32f46..ac94d5e1 100644 --- a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/README.md +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/README.md @@ -1,5 +1,9 @@ # How to send emails with Python and Mailgun +:::tip Insomnia files +Remember to get the Insomnia files for this section or for all sections [here](/insomnia-files/)! +::: + To send e-mails using Python, we are going to use Mailgun, a third party service which actually delivers the messages. You could use [your own personal account and the built-in `email` and `smtp` libraries](https://blog.teclado.com/learn-python-send-emails/), but most personal e-mail providers will limit how many e-mails you can send per day. Plus, you won't get analytics and a host of other features that you can get with an email service like Mailgun. diff --git a/docs/docs/12_task_queues_emails/Insomnia_section12.json b/docs/docs/12_task_queues_emails/Insomnia_section12.json new file mode 100644 index 00000000..d74a68ff --- /dev/null +++ b/docs/docs/12_task_queues_emails/Insomnia_section12.json @@ -0,0 +1 @@ +{"_type":"export","__export_format":4,"__export_date":"2022-11-18T22:12:58.901Z","__export_source":"insomnia.desktop.app:v2022.6.0","resources":[{"_id":"req_349d1cc5283848fb92a4911bd38bebc6","parentId":"fld_86d10d221e114aa2be9542daf31009ec","modified":1668809491718,"created":1668809491718,"url":"{{url}}/user/USER_ID","name":"/user/ Get user","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1667328670383,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_86d10d221e114aa2be9542daf31009ec","parentId":"wrk_3626a93c829b4cf683cbf49c61bdaaef","modified":1668809491715,"created":1668809491715,"name":"Users","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1667328596182,"_type":"request_group"},{"_id":"wrk_3626a93c829b4cf683cbf49c61bdaaef","parentId":null,"modified":1668809491665,"created":1668809491665,"name":"Section 12","description":"","scope":"collection","_type":"workspace"},{"_id":"req_94b040afec0a43e098320c3b03d5f0d7","parentId":"fld_86d10d221e114aa2be9542daf31009ec","modified":1668809491725,"created":1668809491725,"url":"{{url}}/refresh","name":"/refresh Get non-fresh token","description":"","method":"POST","body":{},"parameters":[],"headers":[{"id":"pair_d002eea6b22e4190909fc8366b5a4704","name":"Authorization","value":"Bearer {{refresh_token}}","description":""}],"authentication":{},"metaSortKey":-1667328634100.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_ea98179fc95645199746896edbe91c33","parentId":"fld_86d10d221e114aa2be9542daf31009ec","modified":1668809520188,"created":1668809491716,"url":"{{url}}/register","name":"/register Create user","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"email\": \"example@gmail.com\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_975ec20d9bec44538591da08c95ccd63"}],"authentication":{},"metaSortKey":-1667328597818,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_82977ddde2e14e7c8ca337842483a5f2","parentId":"fld_86d10d221e114aa2be9542daf31009ec","modified":1668809491722,"created":1668809491722,"url":"{{url}}/login","name":"/login Authenticate user","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_716a234feee94c3b9e79966a066fc00d"}],"authentication":{},"metaSortKey":-1667328597793,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_d0cb7e79bbfd4e97a88ef48ab0ddab14","parentId":"fld_86d10d221e114aa2be9542daf31009ec","modified":1668809491723,"created":1668809491723,"url":"{{url}}/logout","name":"/logout Revoke JWT","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_716a234feee94c3b9e79966a066fc00d"},{"id":"pair_c27fa3320a6943cfbf87c40b7ca6ab73","name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2NzMzMjQwNiwianRpIjoiMTU2ZTc5MzUtMmYwYy00NDE2LThmYWItODExYzdmNjY0ZDk4IiwidHlwZSI6ImFjY2VzcyIsInN1YiI6MSwibmJmIjoxNjY3MzMyNDA2LCJleHAiOjE2NjczMzMzMDZ9.zht2vTD73oderxN4uBobsywovxHdDjohbDNGk8_Vuaw","description":""}],"authentication":{},"metaSortKey":-1667328597780.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_88445b44c1074ac091314fa911a6e0cf","parentId":"fld_86d10d221e114aa2be9542daf31009ec","modified":1668809491720,"created":1668809491720,"url":"{{url}}/user/1","name":"/user/ Delete user","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1667328597768,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_23333e08fd834798b6cb5ae3fb9a4831","parentId":"fld_a2feddc6ef5e44a495722d631fb86a4e","modified":1668809491705,"created":1668809491705,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Get tags in store","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990973919,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_a2feddc6ef5e44a495722d631fb86a4e","parentId":"wrk_3626a93c829b4cf683cbf49c61bdaaef","modified":1668809491701,"created":1668809491701,"name":"Tags","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666990939045,"_type":"request_group"},{"_id":"req_fbda11a32a194f8986c6a09bf6368f71","parentId":"fld_a2feddc6ef5e44a495722d631fb86a4e","modified":1668809491703,"created":1668809491703,"url":"{{url}}/tag/TAG_ID","name":"/tags/ Get tag","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945502,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_4cf6d863192347d2beb9738fffc06aa6","parentId":"fld_a2feddc6ef5e44a495722d631fb86a4e","modified":1668809491708,"created":1668809491708,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Link an item in a store with a tag from the same store","description":"","method":"POST","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945477,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_1f08a251169c46e8bbe9aa3b9ef34069","parentId":"fld_a2feddc6ef5e44a495722d631fb86a4e","modified":1668809491706,"created":1668809491706,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Create tag in store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Tag name\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666990945452,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_fed862a14dfb4fbca5c16a361e9337b2","parentId":"fld_a2feddc6ef5e44a495722d631fb86a4e","modified":1668809491710,"created":1668809491710,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Unlink a tag from an item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945427,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_2ebdc85b06354c5c8a2ac2a12b9f74d6","parentId":"fld_a2feddc6ef5e44a495722d631fb86a4e","modified":1668809491711,"created":1668809491711,"url":"{{url}}/tag/TAG_ID","name":"/tag/ Delete a tag, which must have no associated items.","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945402,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_84fcf23f2c94480db2771b7fdd981998","parentId":"fld_020cd4f64dbc4a31921e85c95a49d633","modified":1668809491679,"created":1668809491679,"url":"{{url}}/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423181,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_020cd4f64dbc4a31921e85c95a49d633","parentId":"wrk_3626a93c829b4cf683cbf49c61bdaaef","modified":1668809491678,"created":1668809491678,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528974,"_type":"request_group"},{"_id":"req_290cb9eb4d684279aa9735f946009e32","parentId":"fld_020cd4f64dbc4a31921e85c95a49d633","modified":1668809491683,"created":1668809491683,"url":"{{url}}/store/STORE_ID","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423156,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_e691135e8b7840a188b9b8a6ffee6082","parentId":"fld_020cd4f64dbc4a31921e85c95a49d633","modified":1668809491681,"created":1668809491681,"url":"{{url}}/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store22\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_2f351442a28746c98995c18ea907feaa"}],"authentication":{},"metaSortKey":-1666124423143.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_4b8b6a31400046d9af34c3420bcb5f1d","parentId":"fld_020cd4f64dbc4a31921e85c95a49d633","modified":1668809491685,"created":1668809491685,"url":"{{url}}/store/STORE_ID","name":"/store/ Delete store","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423131,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_eea8d6e13fcb44ca99f683f25e9d7e9f","parentId":"fld_23d1586241d44ecda90d772f973ee792","modified":1668809491694,"created":1668809491694,"url":"{{url}}/item","name":"/item Get all items","description":"","method":"GET","body":{},"parameters":[],"headers":[{"id":"pair_d42eaef671e847b2a2eadb8f3af9be22","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104308,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_23d1586241d44ecda90d772f973ee792","parentId":"wrk_3626a93c829b4cf683cbf49c61bdaaef","modified":1668809491689,"created":1668809491689,"name":"Items","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528924,"_type":"request_group"},{"_id":"req_732f07562b5849b6ae03ee7a327d34d1","parentId":"fld_23d1586241d44ecda90d772f973ee792","modified":1668809491699,"created":1668809491699,"url":"{{url}}/item/ITEM_ID","name":"/item/ Get item","description":"","method":"GET","body":{},"parameters":[],"headers":[{"id":"pair_117512e4f7834d24ab18754279464356","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104258,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_e67af8716d3e46849f0632c6f9cc845f","parentId":"fld_23d1586241d44ecda90d772f973ee792","modified":1668809491690,"created":1668809491690,"url":"{{url}}/item","name":"/item Create item","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Chairs\",\n\t\"price\": 17.99,\n\t\"store_id\": 1\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_c60e217df8494bf1af1c02b872b5430a"},{"id":"pair_e6b6dbc1883d4ee1a90ac154e8fbb3a7","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104220.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_0e44aa1615284e2b9469a5129ba11b9f","parentId":"fld_23d1586241d44ecda90d772f973ee792","modified":1668809491692,"created":1668809491692,"url":"{{url}}/item/ITEM_ID","name":"/item/ Delete item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[{"id":"pair_1b62f1a1d23245439dfc1a356f67cd36","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104214.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_ce38744e96c24a63ac7cb0b14cfb72ec","parentId":"fld_23d1586241d44ecda90d772f973ee792","modified":1668809491697,"created":1668809491697,"url":"{{url}}/item/ITEM_ID","name":"/item/ Update item","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Another Chair\",\n\t\"price\": 20.00\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_4c9b7b960e3b499f8e94f507537195ae"}],"authentication":{},"metaSortKey":-1666125104208,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_05389734f73848a3922232b339a3d34d","parentId":"wrk_3626a93c829b4cf683cbf49c61bdaaef","modified":1668809491667,"created":1668809491667,"name":"Base Environment","data":{"url":"http://127.0.0.1:5005","access_token":"{% response 'body', 'req_fe8e836ebd4a44cd9f37ff8738e7ed98', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 300 %}","refresh_token":"{% response 'body', 'req_fe8e836ebd4a44cd9f37ff8738e7ed98', 'b64::JC5yZWZyZXNoX3Rva2Vu::46b', 'when-expired', NaN %}"},"dataPropertyOrder":{"&":["url","access_token","refresh_token"]},"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_a60cc8f7a1dc4acfa31828ea71765d5e","parentId":"wrk_3626a93c829b4cf683cbf49c61bdaaef","modified":1668809491673,"created":1668809491673,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_b684ea4fa67c4d13befbc1e6ee30fdb6","parentId":"wrk_3626a93c829b4cf683cbf49c61bdaaef","modified":1668809491739,"created":1668809491675,"fileName":"Section 12","contents":"","contentType":"yaml","_type":"api_spec"}]} \ No newline at end of file diff --git a/docs/docs/Insomnia_all_sections.json b/docs/docs/Insomnia_all_sections.json new file mode 100644 index 00000000..afa5603f --- /dev/null +++ b/docs/docs/Insomnia_all_sections.json @@ -0,0 +1 @@ +{"_type":"export","__export_format":4,"__export_date":"2022-11-18T22:13:36.391Z","__export_source":"insomnia.desktop.app:v2022.6.0","resources":[{"_id":"req_9451df3aae714e93a8ed529b3a1f99c2","parentId":"fld_8b9c03412d0e463fabe784d205f1d604","modified":1666124555354,"created":1666122990495,"url":"http://127.0.0.1:5000/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423031,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_8b9c03412d0e463fabe784d205f1d604","parentId":"wrk_6aa19b7d9ecd4f93a3602d257e54a163","modified":1666124528874,"created":1666124528874,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528874,"_type":"request_group"},{"_id":"wrk_6aa19b7d9ecd4f93a3602d257e54a163","parentId":null,"modified":1666991857781,"created":1666122928011,"name":"Section 3","description":"","scope":"collection","_type":"workspace"},{"_id":"req_0a9c4822679b4eae92dec7432fe144b8","parentId":"fld_8b9c03412d0e463fabe784d205f1d604","modified":1666900810115,"created":1666123651275,"url":"http://127.0.0.1:5000/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store3\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666124422881,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_e15dafc098ac4a2198304d2aead2a5b9","parentId":"fld_8b9c03412d0e463fabe784d205f1d604","modified":1666900815265,"created":1666123912423,"url":"http://127.0.0.1:5000/store/My Store/item","name":"/store//item Create item in store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Table\",\n\t\"price\": 17.99\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666124423081,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_6363c8d4deb74b5bbccb1e2105277dac","parentId":"fld_8b9c03412d0e463fabe784d205f1d604","modified":1666900812784,"created":1666124168137,"url":"http://127.0.0.1:5000/store/My store3","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124422956,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_697ca0714a3d4e94819411e3df0a2a17","parentId":"fld_8b9c03412d0e463fabe784d205f1d604","modified":1666900846590,"created":1666124316888,"url":"http://127.0.0.1:5000/store/My store3/item","name":"/store//item","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423056,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_3d2b5cd58a4b4a6983c133118c5f8027","parentId":"fld_afac4dd2683746c586c6ff61228611de","modified":1666125193227,"created":1666124761134,"url":"http://127.0.0.1:5000/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423181,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_afac4dd2683746c586c6ff61228611de","parentId":"wrk_acbd4ac11e8a40e5be2e6dad8ec6174a","modified":1666125229064,"created":1666124761133,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528974,"_type":"request_group"},{"_id":"wrk_acbd4ac11e8a40e5be2e6dad8ec6174a","parentId":null,"modified":1666991873213,"created":1666124761123,"name":"Section 5 before Docker","description":"","scope":"collection","_type":"workspace"},{"_id":"req_b9dafd45675e4c478fa4dd125f4827b3","parentId":"fld_afac4dd2683746c586c6ff61228611de","modified":1666902941803,"created":1666124761136,"url":"http://127.0.0.1:5000/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store2\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666124423143.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_bd3ecff11e5b49baa489812528235afb","parentId":"fld_afac4dd2683746c586c6ff61228611de","modified":1666902781180,"created":1666124761139,"url":"http://127.0.0.1:5000/store/STORE_ID","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423156,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_34cbd59313d44bbfa4fd70166e341b05","parentId":"fld_afac4dd2683746c586c6ff61228611de","modified":1666902749338,"created":1666124977832,"url":"http://127.0.0.1:5000/store/STORE_ID","name":"/store/ Delete store","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423131,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_d48cf679c2664c9bb566b600634b966f","parentId":"fld_91ec9103821245f69f82aa78362f81e1","modified":1666902939274,"created":1666124761145,"url":"http://127.0.0.1:5000/item","name":"/item Create item","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Chair\",\n\t\"price\": 17.99,\n\t\"store_id\": \"f48f94a4760e40d39debf155396a9dec\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666125104220.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_91ec9103821245f69f82aa78362f81e1","parentId":"wrk_acbd4ac11e8a40e5be2e6dad8ec6174a","modified":1666125224286,"created":1666124761144,"name":"Items","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528924,"_type":"request_group"},{"_id":"req_8982d9bcce734f60a9f27a8eb1fc748c","parentId":"fld_91ec9103821245f69f82aa78362f81e1","modified":1666125332019,"created":1666124928966,"url":"http://127.0.0.1:5000/item/ITEM_ID","name":"/item/ Delete item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104214.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_637d0fb6ba9d4c25b6ad9f5bdda73036","parentId":"fld_91ec9103821245f69f82aa78362f81e1","modified":1666902961406,"created":1666125038450,"url":"http://127.0.0.1:5000/item","name":"/item Get all items","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104308,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_99fbb0c34cd049f1bb8ac4e944f0ae6d","parentId":"fld_91ec9103821245f69f82aa78362f81e1","modified":1666902838552,"created":1666125104208,"url":"http://127.0.0.1:5000/item/ITEM_ID","name":"/item/ Update item","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Another Chair\",\n\t\"price\": 20.00\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666125104208,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_e581f2420345418c84d71dbed226b6da","parentId":"fld_91ec9103821245f69f82aa78362f81e1","modified":1666125710431,"created":1666125184534,"url":"http://127.0.0.1:5000/item/ITEM_ID","name":"/item/ Get item","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104258,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_08302ba35f784bdc9fa2edc0cb080287","parentId":"fld_0bc4d91251f54e1d8e00966a259b35bc","modified":1666985452213,"created":1666905719010,"url":"{{url}}/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423181,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_0bc4d91251f54e1d8e00966a259b35bc","parentId":"wrk_e6c8aab80c134d35810fd37d43cce51e","modified":1666905719008,"created":1666905719008,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528974,"_type":"request_group"},{"_id":"wrk_e6c8aab80c134d35810fd37d43cce51e","parentId":null,"modified":1666991880304,"created":1666905718998,"name":"Section 5 - Docker","description":"","scope":"collection","_type":"workspace"},{"_id":"req_0c240b23280746a6a1a56d7644fb89ce","parentId":"fld_0bc4d91251f54e1d8e00966a259b35bc","modified":1666987464108,"created":1666905719011,"url":"{{url}}/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store2\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666124423143.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_6fdedbe47a9941af9b8459816f179274","parentId":"fld_0bc4d91251f54e1d8e00966a259b35bc","modified":1666985886605,"created":1666905719013,"url":"{{url}}/store/STORE_ID","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423156,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_fc255f6789fe45ed80b2ef83e6bb6645","parentId":"fld_0bc4d91251f54e1d8e00966a259b35bc","modified":1666985462540,"created":1666905719014,"url":"{{url}}/store/STORE_ID","name":"/store/ Delete store","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423131,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_3d189bf5d88349e3bce363a420407f65","parentId":"fld_80dee5df10c347198d8f12d85703d582","modified":1666987468265,"created":1666905719018,"url":"{{url}}/item","name":"/item Create item","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Chair\",\n\t\"price\": 17.99,\n\t\"store_id\": \"8efca659f8674c56b5cd035ecc0d42ec\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666125104220.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_80dee5df10c347198d8f12d85703d582","parentId":"wrk_e6c8aab80c134d35810fd37d43cce51e","modified":1666905719016,"created":1666905719016,"name":"Items","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528924,"_type":"request_group"},{"_id":"req_35d865c76bce4e1b9c378d82ece413f7","parentId":"fld_80dee5df10c347198d8f12d85703d582","modified":1666985474126,"created":1666905719019,"url":"{{url}}/item/ITEM_ID","name":"/item/ Delete item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104214.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_b42e3c4d855a433394ac1a8a60c2b91b","parentId":"fld_80dee5df10c347198d8f12d85703d582","modified":1666985467338,"created":1666905719020,"url":"{{url}}/item","name":"/item Get all items","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104308,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_c2bf495d5cbb49d8b933b832a717662a","parentId":"fld_80dee5df10c347198d8f12d85703d582","modified":1666987071504,"created":1666905719022,"url":"{{url}}/item/ITEM_ID","name":"/item/ Update item","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Another Chair\",\n\t\"price\": 20.00\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666125104208,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_9a89b2ecfc61457d8cac15985597c0a0","parentId":"fld_80dee5df10c347198d8f12d85703d582","modified":1666986841489,"created":1666905719023,"url":"{{url}}/item/ITEM_ID","name":"/item/ Get item","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104258,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_8612530e54144a039af84006ee8c882d","parentId":"fld_7ed8d16fd87545519f2f64b2613ea84a","modified":1666987689179,"created":1666987689179,"url":"{{url}}/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423181,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_7ed8d16fd87545519f2f64b2613ea84a","parentId":"wrk_a6cd641e98494bca9a11fe77b66c7e37","modified":1666987689178,"created":1666987689178,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528974,"_type":"request_group"},{"_id":"wrk_a6cd641e98494bca9a11fe77b66c7e37","parentId":null,"modified":1666987689171,"created":1666987689171,"name":"Section 6","description":"","scope":"collection","_type":"workspace"},{"_id":"req_4f7b9d616b0e44ca94ca51cc71660da0","parentId":"fld_7ed8d16fd87545519f2f64b2613ea84a","modified":1666990320166,"created":1666987689181,"url":"{{url}}/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store2\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666124423143.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_335002433e9745068d074f1f942ddde2","parentId":"fld_7ed8d16fd87545519f2f64b2613ea84a","modified":1666987689183,"created":1666987689183,"url":"{{url}}/store/STORE_ID","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423156,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_9228903cf7a54601a51a59f6a6692363","parentId":"fld_7ed8d16fd87545519f2f64b2613ea84a","modified":1666987689184,"created":1666987689184,"url":"{{url}}/store/STORE_ID","name":"/store/ Delete store","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423131,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_0624b67ef6b841f482b7e7522fb6f405","parentId":"fld_8761c7b0aa5142cba8985868cbda3de2","modified":1666990328367,"created":1666987689187,"url":"{{url}}/item","name":"/item Create item","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Chair\",\n\t\"price\": 17.99,\n\t\"store_id\": 1\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666125104220.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_8761c7b0aa5142cba8985868cbda3de2","parentId":"wrk_a6cd641e98494bca9a11fe77b66c7e37","modified":1666987689186,"created":1666987689186,"name":"Items","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528924,"_type":"request_group"},{"_id":"req_b2651043ea5e4b33b073f260712fb114","parentId":"fld_8761c7b0aa5142cba8985868cbda3de2","modified":1666987689189,"created":1666987689189,"url":"{{url}}/item/ITEM_ID","name":"/item/ Delete item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104214.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_d1d499ead63e469ca04571899cc4759f","parentId":"fld_8761c7b0aa5142cba8985868cbda3de2","modified":1666987689190,"created":1666987689190,"url":"{{url}}/item","name":"/item Get all items","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104308,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_640f313dbd5a4bfcbf98081e2fab6d4a","parentId":"fld_8761c7b0aa5142cba8985868cbda3de2","modified":1666987689192,"created":1666987689192,"url":"{{url}}/item/ITEM_ID","name":"/item/ Update item","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Another Chair\",\n\t\"price\": 20.00\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666125104208,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_94738c7e8c774bd597ffe97bf7b921b6","parentId":"fld_8761c7b0aa5142cba8985868cbda3de2","modified":1666987689194,"created":1666987689194,"url":"{{url}}/item/ITEM_ID","name":"/item/ Get item","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104258,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_ab3c728a796e4b4ca51803248e1b0650","parentId":"fld_597937a09435404ebe2200cbaeed101d","modified":1666990745596,"created":1666990745596,"url":"{{url}}/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423181,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_597937a09435404ebe2200cbaeed101d","parentId":"wrk_6efa5c8b8fa142a28f436b209fba66fa","modified":1666990745596,"created":1666990745596,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528974,"_type":"request_group"},{"_id":"wrk_6efa5c8b8fa142a28f436b209fba66fa","parentId":null,"modified":1666990745588,"created":1666990745588,"name":"Section 7","description":"","scope":"collection","_type":"workspace"},{"_id":"req_8a36225a08bb4dfbbf98fd983b0d4a5f","parentId":"fld_597937a09435404ebe2200cbaeed101d","modified":1666991654175,"created":1666990745599,"url":"{{url}}/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store2\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666124423143.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_a9d43bb23e1246da94aec50b9b9ca652","parentId":"fld_597937a09435404ebe2200cbaeed101d","modified":1666990745601,"created":1666990745601,"url":"{{url}}/store/STORE_ID","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423156,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_303507538c0f408eb6d91784b7ed8d36","parentId":"fld_597937a09435404ebe2200cbaeed101d","modified":1666990745602,"created":1666990745602,"url":"{{url}}/store/STORE_ID","name":"/store/ Delete store","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423131,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_6c72c92f81924ce7bc26ceb488fd64ff","parentId":"fld_baa111a1ff5849b4838637f09844bfde","modified":1666991658886,"created":1666990745605,"url":"{{url}}/item","name":"/item Create item","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Chair\",\n\t\"price\": 17.99,\n\t\"store_id\": 1\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666125104220.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_baa111a1ff5849b4838637f09844bfde","parentId":"wrk_6efa5c8b8fa142a28f436b209fba66fa","modified":1666990745604,"created":1666990745604,"name":"Items","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528924,"_type":"request_group"},{"_id":"req_e86e0877045640d690454a99b176f3a2","parentId":"fld_baa111a1ff5849b4838637f09844bfde","modified":1666990745607,"created":1666990745607,"url":"{{url}}/item/ITEM_ID","name":"/item/ Delete item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104214.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_f4776751aecc4c6eafb264dc2d2c24cb","parentId":"fld_baa111a1ff5849b4838637f09844bfde","modified":1666990745609,"created":1666990745609,"url":"{{url}}/item","name":"/item Get all items","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104308,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_f0c4a3d747a543249131e19ceea79e56","parentId":"fld_baa111a1ff5849b4838637f09844bfde","modified":1666990745610,"created":1666990745610,"url":"{{url}}/item/ITEM_ID","name":"/item/ Update item","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Another Chair\",\n\t\"price\": 20.00\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666125104208,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_e6bc2422c8cf4f119c7dc10251a9af65","parentId":"fld_baa111a1ff5849b4838637f09844bfde","modified":1666990745611,"created":1666990745611,"url":"{{url}}/item/ITEM_ID","name":"/item/ Get item","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666125104258,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_85adfd198935497bb7aedb266beb5bf3","parentId":"fld_86b5e8072a894c409febe46716e99809","modified":1666991788350,"created":1666990945502,"url":"{{url}}/tag/TAG_ID","name":"/tags/ Get tag","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945502,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_86b5e8072a894c409febe46716e99809","parentId":"wrk_6efa5c8b8fa142a28f436b209fba66fa","modified":1666990939045,"created":1666990939045,"name":"Tags","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666990939045,"_type":"request_group"},{"_id":"req_379d0e42420f466bbad1b7481e5e7816","parentId":"fld_86b5e8072a894c409febe46716e99809","modified":1666991794866,"created":1666990973919,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Get tags in store","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990973919,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_f07aab6ead044ca7bba0de3437ab08c4","parentId":"fld_86b5e8072a894c409febe46716e99809","modified":1666991779049,"created":1666991031108,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Create tag in store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Tag name\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666990945452,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_4765f7ca8e1e46308cdde255d09a2ffc","parentId":"fld_86b5e8072a894c409febe46716e99809","modified":1666991810641,"created":1666991378432,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Link an item in a store with a tag from the same store","description":"","method":"POST","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945477,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_77d1a5f225c54acbb27bac15010722ad","parentId":"fld_86b5e8072a894c409febe46716e99809","modified":1666991824192,"created":1666991489163,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Unlink a tag from an item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945427,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_d60510ab22b2499abb20a63629e30fcd","parentId":"fld_86b5e8072a894c409febe46716e99809","modified":1666991828682,"created":1666991524256,"url":"{{url}}/tag/TAG_ID","name":"/tag/ Delete a tag, which must have no associated items.","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945402,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_2ba32c3564f3456aa1c8731323508968","parentId":"fld_a18660fe822f44828b330ba9a4d3946a","modified":1666991842400,"created":1666991842400,"url":"{{url}}/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423181,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_a18660fe822f44828b330ba9a4d3946a","parentId":"wrk_101d091b922e44c28f66528e9ef2ae37","modified":1666991842399,"created":1666991842399,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528974,"_type":"request_group"},{"_id":"wrk_101d091b922e44c28f66528e9ef2ae37","parentId":null,"modified":1666991842388,"created":1666991842388,"name":"Section 8","description":"","scope":"collection","_type":"workspace"},{"_id":"req_57daa411077044a98d3b2534ee735703","parentId":"fld_a18660fe822f44828b330ba9a4d3946a","modified":1667332324728,"created":1666991842402,"url":"{{url}}/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store22\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_2f351442a28746c98995c18ea907feaa"}],"authentication":{},"metaSortKey":-1666124423143.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_047bf72b98214de4a8f711fd46b73eb4","parentId":"fld_a18660fe822f44828b330ba9a4d3946a","modified":1666991842403,"created":1666991842403,"url":"{{url}}/store/STORE_ID","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423156,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_6c1af0972dbe4faebf5973d95670c241","parentId":"fld_a18660fe822f44828b330ba9a4d3946a","modified":1667332341585,"created":1666991842405,"url":"{{url}}/store/STORE_ID","name":"/store/ Delete store","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423131,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_32c5d69aec8f44fdb33852b456c99b7a","parentId":"fld_b2b78ef1cd504663bef29f23cb3fd9a7","modified":1667332259971,"created":1666991842408,"url":"{{url}}/item","name":"/item Create item","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Chairs\",\n\t\"price\": 17.99,\n\t\"store_id\": 1\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_c60e217df8494bf1af1c02b872b5430a"},{"id":"pair_e6b6dbc1883d4ee1a90ac154e8fbb3a7","name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2NzMzMjA3MCwianRpIjoiODA5Njk2MmUtYmNlMy00NjgyLWJkZTUtYjYzMDgwZGU3NmJjIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6MSwibmJmIjoxNjY3MzMyMDcwLCJleHAiOjE2NjczMzI5NzB9.MY-MKMh8mEaX8cWjz0RJZ2JStD7hHBD1j7nB3GT2vks","description":""}],"authentication":{},"metaSortKey":-1666125104220.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_b2b78ef1cd504663bef29f23cb3fd9a7","parentId":"wrk_101d091b922e44c28f66528e9ef2ae37","modified":1666991842407,"created":1666991842407,"name":"Items","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528924,"_type":"request_group"},{"_id":"req_1843f2db017842b993251abbedeb2e8b","parentId":"fld_b2b78ef1cd504663bef29f23cb3fd9a7","modified":1667332298429,"created":1666991842410,"url":"{{url}}/item/ITEM_ID","name":"/item/ Delete item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[{"id":"pair_1b62f1a1d23245439dfc1a356f67cd36","name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2NzMzMjA3MCwianRpIjoiODA5Njk2MmUtYmNlMy00NjgyLWJkZTUtYjYzMDgwZGU3NmJjIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6MSwibmJmIjoxNjY3MzMyMDcwLCJleHAiOjE2NjczMzI5NzB9.MY-MKMh8mEaX8cWjz0RJZ2JStD7hHBD1j7nB3GT2vks","description":""}],"authentication":{},"metaSortKey":-1666125104214.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_0d1c09067c6a419a9096b32da16d01a3","parentId":"fld_b2b78ef1cd504663bef29f23cb3fd9a7","modified":1667332272845,"created":1666991842412,"url":"{{url}}/item","name":"/item Get all items","description":"","method":"GET","body":{},"parameters":[],"headers":[{"id":"pair_d42eaef671e847b2a2eadb8f3af9be22","name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2NzMzMjA3MCwianRpIjoiODA5Njk2MmUtYmNlMy00NjgyLWJkZTUtYjYzMDgwZGU3NmJjIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6MSwibmJmIjoxNjY3MzMyMDcwLCJleHAiOjE2NjczMzI5NzB9.MY-MKMh8mEaX8cWjz0RJZ2JStD7hHBD1j7nB3GT2vks","description":""}],"authentication":{},"metaSortKey":-1666125104308,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_d311f219368d46a6b6d92be142a32763","parentId":"fld_b2b78ef1cd504663bef29f23cb3fd9a7","modified":1667332311745,"created":1666991842413,"url":"{{url}}/item/ITEM_ID","name":"/item/ Update item","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Another Chair\",\n\t\"price\": 20.00\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_4c9b7b960e3b499f8e94f507537195ae"}],"authentication":{},"metaSortKey":-1666125104208,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_dbdfc5218bf54bfab39db152b3ffe982","parentId":"fld_b2b78ef1cd504663bef29f23cb3fd9a7","modified":1667332288041,"created":1666991842414,"url":"{{url}}/item/ITEM_ID","name":"/item/ Get item","description":"","method":"GET","body":{},"parameters":[],"headers":[{"id":"pair_117512e4f7834d24ab18754279464356","name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2NzMzMjA3MCwianRpIjoiODA5Njk2MmUtYmNlMy00NjgyLWJkZTUtYjYzMDgwZGU3NmJjIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6MSwibmJmIjoxNjY3MzMyMDcwLCJleHAiOjE2NjczMzI5NzB9.MY-MKMh8mEaX8cWjz0RJZ2JStD7hHBD1j7nB3GT2vks","description":""}],"authentication":{},"metaSortKey":-1666125104258,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_f613fc18d27648daa00d6b78deea5b66","parentId":"fld_815efb55c04548dea5dfec2e2f69ebcb","modified":1666991842418,"created":1666991842418,"url":"{{url}}/tag/TAG_ID","name":"/tags/ Get tag","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945502,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_815efb55c04548dea5dfec2e2f69ebcb","parentId":"wrk_101d091b922e44c28f66528e9ef2ae37","modified":1666991842417,"created":1666991842417,"name":"Tags","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666990939045,"_type":"request_group"},{"_id":"req_362ff303b1054bd0b0d62522803aea64","parentId":"fld_815efb55c04548dea5dfec2e2f69ebcb","modified":1666991842419,"created":1666991842419,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Get tags in store","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990973919,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_266cac65472a4a118929460e58893fb0","parentId":"fld_815efb55c04548dea5dfec2e2f69ebcb","modified":1666991842421,"created":1666991842421,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Create tag in store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Tag name\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666990945452,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_e899763b1c0a46ad9eb47f9e628aa643","parentId":"fld_815efb55c04548dea5dfec2e2f69ebcb","modified":1666991842422,"created":1666991842422,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Link an item in a store with a tag from the same store","description":"","method":"POST","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945477,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_e63e0532c2c340aa8ed6643f0ae1b4ec","parentId":"fld_815efb55c04548dea5dfec2e2f69ebcb","modified":1666991842424,"created":1666991842424,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Unlink a tag from an item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945427,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_5c6887cfb9c94dc2aa2fe76d525fecac","parentId":"fld_815efb55c04548dea5dfec2e2f69ebcb","modified":1666991842426,"created":1666991842426,"url":"{{url}}/tag/TAG_ID","name":"/tag/ Delete a tag, which must have no associated items.","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945402,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_fe639dc55a2d439f9aa7a6bceee6a9fa","parentId":"fld_3426c101e9094fa79fbf96cf1ec23fae","modified":1667332404117,"created":1667328597818,"url":"{{url}}/register","name":"/register Create user","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1667328597818,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_3426c101e9094fa79fbf96cf1ec23fae","parentId":"wrk_101d091b922e44c28f66528e9ef2ae37","modified":1667328596182,"created":1667328596182,"name":"Users","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1667328596182,"_type":"request_group"},{"_id":"req_adb596c3d0ee48e2b009a555297f36ac","parentId":"fld_3426c101e9094fa79fbf96cf1ec23fae","modified":1667331428779,"created":1667328670383,"url":"{{url}}/user/USER_ID","name":"/user/ Get user","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1667328670383,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_953d7fdcaf1f433b9b3b0cdf6453b0cd","parentId":"fld_3426c101e9094fa79fbf96cf1ec23fae","modified":1667332353929,"created":1667328704142,"url":"{{url}}/user/1","name":"/user/ Delete user","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1667328597768,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_5e7ca3df73314f8c839493d53528760b","parentId":"fld_3426c101e9094fa79fbf96cf1ec23fae","modified":1667332406439,"created":1667331560707,"url":"{{url}}/login","name":"/login Authenticate user","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_716a234feee94c3b9e79966a066fc00d"}],"authentication":{},"metaSortKey":-1667328597793,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_bc66397203734df4b4eb6d153d8d3ec3","parentId":"fld_3426c101e9094fa79fbf96cf1ec23fae","modified":1668007854634,"created":1667332459073,"url":"{{url}}/logout","name":"/logout Revoke JWT","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_716a234feee94c3b9e79966a066fc00d"},{"id":"pair_c27fa3320a6943cfbf87c40b7ca6ab73","name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2NzMzMjQwNiwianRpIjoiMTU2ZTc5MzUtMmYwYy00NDE2LThmYWItODExYzdmNjY0ZDk4IiwidHlwZSI6ImFjY2VzcyIsInN1YiI6MSwibmJmIjoxNjY3MzMyNDA2LCJleHAiOjE2NjczMzMzMDZ9.zht2vTD73oderxN4uBobsywovxHdDjohbDNGk8_Vuaw","description":""}],"authentication":{},"metaSortKey":-1667328597780.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_22eb90da9d974ac2880b9207d6d11c01","parentId":"fld_6315121566934d098d5f963bb2b25679","modified":1667332566845,"created":1667332566845,"url":"{{url}}/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423181,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_6315121566934d098d5f963bb2b25679","parentId":"wrk_5d43c6fa3d9a4ba8817aa2e2767d791a","modified":1667332566844,"created":1667332566844,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528974,"_type":"request_group"},{"_id":"wrk_5d43c6fa3d9a4ba8817aa2e2767d791a","parentId":null,"modified":1667332566837,"created":1667332566837,"name":"Section 8 - Chaining","description":"","scope":"collection","_type":"workspace"},{"_id":"req_3efb83da0cb34711961a59b6b3b39278","parentId":"fld_6315121566934d098d5f963bb2b25679","modified":1667332566848,"created":1667332566848,"url":"{{url}}/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store22\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_2f351442a28746c98995c18ea907feaa"}],"authentication":{},"metaSortKey":-1666124423143.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_44b8b847e3bd4b35bb7c5d2df5e0ee94","parentId":"fld_6315121566934d098d5f963bb2b25679","modified":1667332566849,"created":1667332566849,"url":"{{url}}/store/STORE_ID","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423156,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_24669eae6530416094eb2c746ae577ed","parentId":"fld_6315121566934d098d5f963bb2b25679","modified":1667332566851,"created":1667332566851,"url":"{{url}}/store/STORE_ID","name":"/store/ Delete store","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423131,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_69cc615e910a4ca7a91382b455c3ceb5","parentId":"fld_68ade160b31f446995815fec3dc30a93","modified":1667332840222,"created":1667332566854,"url":"{{url}}/item","name":"/item Create item","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Chairs\",\n\t\"price\": 17.99,\n\t\"store_id\": 1\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_c60e217df8494bf1af1c02b872b5430a"},{"id":"pair_e6b6dbc1883d4ee1a90ac154e8fbb3a7","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104220.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_68ade160b31f446995815fec3dc30a93","parentId":"wrk_5d43c6fa3d9a4ba8817aa2e2767d791a","modified":1667332566853,"created":1667332566853,"name":"Items","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528924,"_type":"request_group"},{"_id":"req_310092462fe44643bdbcf671dd488033","parentId":"fld_68ade160b31f446995815fec3dc30a93","modified":1667332838232,"created":1667332566855,"url":"{{url}}/item/ITEM_ID","name":"/item/ Delete item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[{"id":"pair_1b62f1a1d23245439dfc1a356f67cd36","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104214.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_41e02aac89e5447fb70b42a5fbb6e42d","parentId":"fld_68ade160b31f446995815fec3dc30a93","modified":1667650833785,"created":1667332566857,"url":"{{url}}/item","name":"/item Get all items","description":"","method":"GET","body":{},"parameters":[],"headers":[{"id":"pair_d42eaef671e847b2a2eadb8f3af9be22","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104308,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_260395e8e71c47559f2c70f50618ea38","parentId":"fld_68ade160b31f446995815fec3dc30a93","modified":1667332566858,"created":1667332566858,"url":"{{url}}/item/ITEM_ID","name":"/item/ Update item","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Another Chair\",\n\t\"price\": 20.00\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_4c9b7b960e3b499f8e94f507537195ae"}],"authentication":{},"metaSortKey":-1666125104208,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_51ea1a9b34584746a8368ede6f6bfadf","parentId":"fld_68ade160b31f446995815fec3dc30a93","modified":1667332848385,"created":1667332566859,"url":"{{url}}/item/ITEM_ID","name":"/item/ Get item","description":"","method":"GET","body":{},"parameters":[],"headers":[{"id":"pair_117512e4f7834d24ab18754279464356","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104258,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_e2bc3c7dd1c240baad60b3881359bf38","parentId":"fld_db9477d576514920b5a9e1d2d82d2254","modified":1667332566862,"created":1667332566862,"url":"{{url}}/tag/TAG_ID","name":"/tags/ Get tag","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945502,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_db9477d576514920b5a9e1d2d82d2254","parentId":"wrk_5d43c6fa3d9a4ba8817aa2e2767d791a","modified":1667332566861,"created":1667332566861,"name":"Tags","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666990939045,"_type":"request_group"},{"_id":"req_ba56440f8f204525a13fbdfbd2273ae0","parentId":"fld_db9477d576514920b5a9e1d2d82d2254","modified":1667332566864,"created":1667332566864,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Get tags in store","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990973919,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_9237adf4f3e74e1b9aa8dbb15680c2f3","parentId":"fld_db9477d576514920b5a9e1d2d82d2254","modified":1667332566866,"created":1667332566866,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Create tag in store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Tag name\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666990945452,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_ae7151238fe84a65b5b1064b87cef5bd","parentId":"fld_db9477d576514920b5a9e1d2d82d2254","modified":1667332566867,"created":1667332566867,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Link an item in a store with a tag from the same store","description":"","method":"POST","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945477,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_c11ab9d081754c3e95f0eed61219454a","parentId":"fld_db9477d576514920b5a9e1d2d82d2254","modified":1667332566868,"created":1667332566868,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Unlink a tag from an item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945427,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_03468f66652a42dcbd34ef05ce4fd714","parentId":"fld_db9477d576514920b5a9e1d2d82d2254","modified":1667332566870,"created":1667332566870,"url":"{{url}}/tag/TAG_ID","name":"/tag/ Delete a tag, which must have no associated items.","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945402,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_252ddd492b9242ffb1a6fe21e25534c5","parentId":"fld_f0dbcc5050af40dbaabdd9bfe69a098f","modified":1667650976611,"created":1667332566872,"url":"{{url}}/register","name":"/register Create user","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_975ec20d9bec44538591da08c95ccd63"}],"authentication":{},"metaSortKey":-1667328597818,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_f0dbcc5050af40dbaabdd9bfe69a098f","parentId":"wrk_5d43c6fa3d9a4ba8817aa2e2767d791a","modified":1667332566872,"created":1667332566872,"name":"Users","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1667328596182,"_type":"request_group"},{"_id":"req_00cda5fbc60a4905bf5b8e67aa7dadb4","parentId":"fld_f0dbcc5050af40dbaabdd9bfe69a098f","modified":1667332566874,"created":1667332566874,"url":"{{url}}/user/USER_ID","name":"/user/ Get user","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1667328670383,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_229bc7e2601e44cb82eb3e5eafa90202","parentId":"fld_f0dbcc5050af40dbaabdd9bfe69a098f","modified":1667332566875,"created":1667332566875,"url":"{{url}}/user/1","name":"/user/ Delete user","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1667328597768,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_fe8e836ebd4a44cd9f37ff8738e7ed98","parentId":"fld_f0dbcc5050af40dbaabdd9bfe69a098f","modified":1667650979775,"created":1667332566877,"url":"{{url}}/login","name":"/login Authenticate user","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_716a234feee94c3b9e79966a066fc00d"}],"authentication":{},"metaSortKey":-1667328597793,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_6a638b0dfd3040118a0282fe5a49b5fb","parentId":"fld_f0dbcc5050af40dbaabdd9bfe69a098f","modified":1667332566878,"created":1667332566878,"url":"{{url}}/logout","name":"/logout Revoke JWT","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_716a234feee94c3b9e79966a066fc00d"},{"id":"pair_c27fa3320a6943cfbf87c40b7ca6ab73","name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2NzMzMjQwNiwianRpIjoiMTU2ZTc5MzUtMmYwYy00NDE2LThmYWItODExYzdmNjY0ZDk4IiwidHlwZSI6ImFjY2VzcyIsInN1YiI6MSwibmJmIjoxNjY3MzMyNDA2LCJleHAiOjE2NjczMzMzMDZ9.zht2vTD73oderxN4uBobsywovxHdDjohbDNGk8_Vuaw","description":""}],"authentication":{},"metaSortKey":-1667328597780.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_0ae766df1c25481e83bd6ade061a919b","parentId":"fld_f0dbcc5050af40dbaabdd9bfe69a098f","modified":1667676377948,"created":1667650753174,"url":"{{url}}/refresh","name":"/refresh Get non-fresh token","description":"","method":"POST","body":{},"parameters":[],"headers":[{"id":"pair_d002eea6b22e4190909fc8366b5a4704","name":"Authorization","value":"Bearer {{refresh_token}}","description":""}],"authentication":{},"metaSortKey":-1667328634100.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_fe2a4b3d67664cd194efe09393b9fd02","parentId":"fld_db95f405b201413889d2ae8918eee2d4","modified":1668007660660,"created":1668007660660,"url":"{{url}}/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423181,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_db95f405b201413889d2ae8918eee2d4","parentId":"wrk_f14186e0f24a4da9ab3ab8d628227a36","modified":1668007660658,"created":1668007660658,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528974,"_type":"request_group"},{"_id":"wrk_f14186e0f24a4da9ab3ab8d628227a36","parentId":null,"modified":1668007660646,"created":1668007660646,"name":"Section 11","description":"","scope":"collection","_type":"workspace"},{"_id":"req_90015fc3fcae4301b0d8a5c0355a3d83","parentId":"fld_db95f405b201413889d2ae8918eee2d4","modified":1668678375918,"created":1668007660661,"url":"{{url}}/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store22\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_2f351442a28746c98995c18ea907feaa"}],"authentication":{},"metaSortKey":-1666124423143.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_b34295f6d8b24000b77f812c9cc2c2cc","parentId":"fld_db95f405b201413889d2ae8918eee2d4","modified":1668007660663,"created":1668007660663,"url":"{{url}}/store/STORE_ID","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423156,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_0e20a55b16034f06a3246c4e76f1c387","parentId":"fld_db95f405b201413889d2ae8918eee2d4","modified":1668007660665,"created":1668007660665,"url":"{{url}}/store/STORE_ID","name":"/store/ Delete store","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423131,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_b8cc399abc8749eea66c6967522f8a36","parentId":"fld_11fd3ae720264f0b9480c6277f1a7633","modified":1668678378059,"created":1668007660669,"url":"{{url}}/item","name":"/item Create item","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Chairs\",\n\t\"price\": 17.99,\n\t\"store_id\": 1\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_c60e217df8494bf1af1c02b872b5430a"},{"id":"pair_e6b6dbc1883d4ee1a90ac154e8fbb3a7","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104220.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_11fd3ae720264f0b9480c6277f1a7633","parentId":"wrk_f14186e0f24a4da9ab3ab8d628227a36","modified":1668007660668,"created":1668007660668,"name":"Items","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528924,"_type":"request_group"},{"_id":"req_8e9e92854eab4e74af765725b54c7d31","parentId":"fld_11fd3ae720264f0b9480c6277f1a7633","modified":1668007660671,"created":1668007660671,"url":"{{url}}/item/ITEM_ID","name":"/item/ Delete item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[{"id":"pair_1b62f1a1d23245439dfc1a356f67cd36","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104214.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_671694da515a4c4e877008b02cd17f57","parentId":"fld_11fd3ae720264f0b9480c6277f1a7633","modified":1668007660673,"created":1668007660673,"url":"{{url}}/item","name":"/item Get all items","description":"","method":"GET","body":{},"parameters":[],"headers":[{"id":"pair_d42eaef671e847b2a2eadb8f3af9be22","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104308,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_5303d646b4c44843bc9c8322675f9c54","parentId":"fld_11fd3ae720264f0b9480c6277f1a7633","modified":1668678378608,"created":1668007660675,"url":"{{url}}/item/ITEM_ID","name":"/item/ Update item","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Another Chair\",\n\t\"price\": 20.00\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_4c9b7b960e3b499f8e94f507537195ae"}],"authentication":{},"metaSortKey":-1666125104208,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_a55050436885439f8393e70546d75641","parentId":"fld_11fd3ae720264f0b9480c6277f1a7633","modified":1668007660676,"created":1668007660676,"url":"{{url}}/item/ITEM_ID","name":"/item/ Get item","description":"","method":"GET","body":{},"parameters":[],"headers":[{"id":"pair_117512e4f7834d24ab18754279464356","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104258,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_c063f1996fde409f81d62a0e3d20b631","parentId":"fld_3083883073354f11bb6c2aa2fcbe76d3","modified":1668007660681,"created":1668007660681,"url":"{{url}}/tag/TAG_ID","name":"/tags/ Get tag","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945502,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_3083883073354f11bb6c2aa2fcbe76d3","parentId":"wrk_f14186e0f24a4da9ab3ab8d628227a36","modified":1668007660679,"created":1668007660679,"name":"Tags","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666990939045,"_type":"request_group"},{"_id":"req_8b7c05ec34874814bbb1ed17f23d7ea3","parentId":"fld_3083883073354f11bb6c2aa2fcbe76d3","modified":1668007660682,"created":1668007660682,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Get tags in store","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990973919,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_5739a9e1be2e4fcd8ecdac5142b5e76d","parentId":"fld_3083883073354f11bb6c2aa2fcbe76d3","modified":1668678381399,"created":1668007660684,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Create tag in store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Tag name\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666990945452,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_007ed54990944618a9e4bbf4fed9bdc8","parentId":"fld_3083883073354f11bb6c2aa2fcbe76d3","modified":1668007660686,"created":1668007660686,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Link an item in a store with a tag from the same store","description":"","method":"POST","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945477,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_fbc4905447b04feca058e6f8c0428acf","parentId":"fld_3083883073354f11bb6c2aa2fcbe76d3","modified":1668007660688,"created":1668007660688,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Unlink a tag from an item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945427,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_839409cd69e945b694d46f3101eec0d5","parentId":"fld_3083883073354f11bb6c2aa2fcbe76d3","modified":1668007660690,"created":1668007660690,"url":"{{url}}/tag/TAG_ID","name":"/tag/ Delete a tag, which must have no associated items.","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945402,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_a9790bade2c14dd5a87b85088017aa92","parentId":"fld_8173221215364faa9eaf4de28d0b227d","modified":1668809417998,"created":1668007660694,"url":"{{url}}/register","name":"/register Create user","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_975ec20d9bec44538591da08c95ccd63"}],"authentication":{},"metaSortKey":-1667328597818,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_8173221215364faa9eaf4de28d0b227d","parentId":"wrk_f14186e0f24a4da9ab3ab8d628227a36","modified":1668007660692,"created":1668007660692,"name":"Users","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1667328596182,"_type":"request_group"},{"_id":"req_92cec23efa0d47a582b4cf476fbe1c7d","parentId":"fld_8173221215364faa9eaf4de28d0b227d","modified":1668007660695,"created":1668007660695,"url":"{{url}}/user/USER_ID","name":"/user/ Get user","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1667328670383,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_969a6a61d9b74bd3ad27623663999dca","parentId":"fld_8173221215364faa9eaf4de28d0b227d","modified":1668007660697,"created":1668007660697,"url":"{{url}}/user/1","name":"/user/ Delete user","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1667328597768,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_0aa8a2f045e94cea96ba0f7061a26c41","parentId":"fld_8173221215364faa9eaf4de28d0b227d","modified":1668678383934,"created":1668007660698,"url":"{{url}}/login","name":"/login Authenticate user","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_716a234feee94c3b9e79966a066fc00d"}],"authentication":{},"metaSortKey":-1667328597793,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_1a5f0c9aa22841e0a60e47c6a5f65edc","parentId":"fld_8173221215364faa9eaf4de28d0b227d","modified":1668678384453,"created":1668007660701,"url":"{{url}}/logout","name":"/logout Revoke JWT","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_716a234feee94c3b9e79966a066fc00d"},{"id":"pair_c27fa3320a6943cfbf87c40b7ca6ab73","name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2NzMzMjQwNiwianRpIjoiMTU2ZTc5MzUtMmYwYy00NDE2LThmYWItODExYzdmNjY0ZDk4IiwidHlwZSI6ImFjY2VzcyIsInN1YiI6MSwibmJmIjoxNjY3MzMyNDA2LCJleHAiOjE2NjczMzMzMDZ9.zht2vTD73oderxN4uBobsywovxHdDjohbDNGk8_Vuaw","description":""}],"authentication":{},"metaSortKey":-1667328597780.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_70c9c31ae27e47b684428bb88932f96d","parentId":"fld_8173221215364faa9eaf4de28d0b227d","modified":1668007660702,"created":1668007660702,"url":"{{url}}/refresh","name":"/refresh Get non-fresh token","description":"","method":"POST","body":{},"parameters":[],"headers":[{"id":"pair_d002eea6b22e4190909fc8366b5a4704","name":"Authorization","value":"Bearer {{refresh_token}}","description":""}],"authentication":{},"metaSortKey":-1667328634100.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_84fcf23f2c94480db2771b7fdd981998","parentId":"fld_020cd4f64dbc4a31921e85c95a49d633","modified":1668809491679,"created":1668809491679,"url":"{{url}}/store","name":"/store Get all store data","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423181,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_020cd4f64dbc4a31921e85c95a49d633","parentId":"wrk_3626a93c829b4cf683cbf49c61bdaaef","modified":1668809491678,"created":1668809491678,"name":"Stores","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528974,"_type":"request_group"},{"_id":"wrk_3626a93c829b4cf683cbf49c61bdaaef","parentId":null,"modified":1668809491665,"created":1668809491665,"name":"Section 12","description":"","scope":"collection","_type":"workspace"},{"_id":"req_e691135e8b7840a188b9b8a6ffee6082","parentId":"fld_020cd4f64dbc4a31921e85c95a49d633","modified":1668809491681,"created":1668809491681,"url":"{{url}}/store","name":"/store Create new store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"My store22\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_2f351442a28746c98995c18ea907feaa"}],"authentication":{},"metaSortKey":-1666124423143.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_290cb9eb4d684279aa9735f946009e32","parentId":"fld_020cd4f64dbc4a31921e85c95a49d633","modified":1668809491683,"created":1668809491683,"url":"{{url}}/store/STORE_ID","name":"/store/","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423156,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_4b8b6a31400046d9af34c3420bcb5f1d","parentId":"fld_020cd4f64dbc4a31921e85c95a49d633","modified":1668809491685,"created":1668809491685,"url":"{{url}}/store/STORE_ID","name":"/store/ Delete store","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666124423131,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_e67af8716d3e46849f0632c6f9cc845f","parentId":"fld_23d1586241d44ecda90d772f973ee792","modified":1668809491690,"created":1668809491690,"url":"{{url}}/item","name":"/item Create item","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Chairs\",\n\t\"price\": 17.99,\n\t\"store_id\": 1\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_c60e217df8494bf1af1c02b872b5430a"},{"id":"pair_e6b6dbc1883d4ee1a90ac154e8fbb3a7","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104220.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_23d1586241d44ecda90d772f973ee792","parentId":"wrk_3626a93c829b4cf683cbf49c61bdaaef","modified":1668809491689,"created":1668809491689,"name":"Items","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666124528924,"_type":"request_group"},{"_id":"req_0e44aa1615284e2b9469a5129ba11b9f","parentId":"fld_23d1586241d44ecda90d772f973ee792","modified":1668809491692,"created":1668809491692,"url":"{{url}}/item/ITEM_ID","name":"/item/ Delete item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[{"id":"pair_1b62f1a1d23245439dfc1a356f67cd36","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104214.25,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_eea8d6e13fcb44ca99f683f25e9d7e9f","parentId":"fld_23d1586241d44ecda90d772f973ee792","modified":1668809491694,"created":1668809491694,"url":"{{url}}/item","name":"/item Get all items","description":"","method":"GET","body":{},"parameters":[],"headers":[{"id":"pair_d42eaef671e847b2a2eadb8f3af9be22","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104308,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_ce38744e96c24a63ac7cb0b14cfb72ec","parentId":"fld_23d1586241d44ecda90d772f973ee792","modified":1668809491697,"created":1668809491697,"url":"{{url}}/item/ITEM_ID","name":"/item/ Update item","description":"","method":"PUT","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Another Chair\",\n\t\"price\": 20.00\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_4c9b7b960e3b499f8e94f507537195ae"}],"authentication":{},"metaSortKey":-1666125104208,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_732f07562b5849b6ae03ee7a327d34d1","parentId":"fld_23d1586241d44ecda90d772f973ee792","modified":1668809491699,"created":1668809491699,"url":"{{url}}/item/ITEM_ID","name":"/item/ Get item","description":"","method":"GET","body":{},"parameters":[],"headers":[{"id":"pair_117512e4f7834d24ab18754279464356","name":"Authorization","value":"Bearer {{access_token}}","description":""}],"authentication":{},"metaSortKey":-1666125104258,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_fbda11a32a194f8986c6a09bf6368f71","parentId":"fld_a2feddc6ef5e44a495722d631fb86a4e","modified":1668809491703,"created":1668809491703,"url":"{{url}}/tag/TAG_ID","name":"/tags/ Get tag","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945502,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_a2feddc6ef5e44a495722d631fb86a4e","parentId":"wrk_3626a93c829b4cf683cbf49c61bdaaef","modified":1668809491701,"created":1668809491701,"name":"Tags","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1666990939045,"_type":"request_group"},{"_id":"req_23333e08fd834798b6cb5ae3fb9a4831","parentId":"fld_a2feddc6ef5e44a495722d631fb86a4e","modified":1668809491705,"created":1668809491705,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Get tags in store","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990973919,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_1f08a251169c46e8bbe9aa3b9ef34069","parentId":"fld_a2feddc6ef5e44a495722d631fb86a4e","modified":1668809491706,"created":1668809491706,"url":"{{url}}/store/STORE_ID/tag","name":"/stores//tags Create tag in store","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"name\": \"Tag name\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json"}],"authentication":{},"metaSortKey":-1666990945452,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_4cf6d863192347d2beb9738fffc06aa6","parentId":"fld_a2feddc6ef5e44a495722d631fb86a4e","modified":1668809491708,"created":1668809491708,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Link an item in a store with a tag from the same store","description":"","method":"POST","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945477,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_fed862a14dfb4fbca5c16a361e9337b2","parentId":"fld_a2feddc6ef5e44a495722d631fb86a4e","modified":1668809491710,"created":1668809491710,"url":"{{url}}/item/ITEM_ID/tag/TAG_ID","name":"/item//tag/ Unlink a tag from an item","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945427,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_2ebdc85b06354c5c8a2ac2a12b9f74d6","parentId":"fld_a2feddc6ef5e44a495722d631fb86a4e","modified":1668809491711,"created":1668809491711,"url":"{{url}}/tag/TAG_ID","name":"/tag/ Delete a tag, which must have no associated items.","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1666990945402,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_ea98179fc95645199746896edbe91c33","parentId":"fld_86d10d221e114aa2be9542daf31009ec","modified":1668809520188,"created":1668809491716,"url":"{{url}}/register","name":"/register Create user","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"email\": \"example@gmail.com\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_975ec20d9bec44538591da08c95ccd63"}],"authentication":{},"metaSortKey":-1667328597818,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"fld_86d10d221e114aa2be9542daf31009ec","parentId":"wrk_3626a93c829b4cf683cbf49c61bdaaef","modified":1668809491715,"created":1668809491715,"name":"Users","description":"","environment":{},"environmentPropertyOrder":null,"metaSortKey":-1667328596182,"_type":"request_group"},{"_id":"req_349d1cc5283848fb92a4911bd38bebc6","parentId":"fld_86d10d221e114aa2be9542daf31009ec","modified":1668809491718,"created":1668809491718,"url":"{{url}}/user/USER_ID","name":"/user/ Get user","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1667328670383,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_88445b44c1074ac091314fa911a6e0cf","parentId":"fld_86d10d221e114aa2be9542daf31009ec","modified":1668809491720,"created":1668809491720,"url":"{{url}}/user/1","name":"/user/ Delete user","description":"","method":"DELETE","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1667328597768,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_82977ddde2e14e7c8ca337842483a5f2","parentId":"fld_86d10d221e114aa2be9542daf31009ec","modified":1668809491722,"created":1668809491722,"url":"{{url}}/login","name":"/login Authenticate user","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_716a234feee94c3b9e79966a066fc00d"}],"authentication":{},"metaSortKey":-1667328597793,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_d0cb7e79bbfd4e97a88ef48ab0ddab14","parentId":"fld_86d10d221e114aa2be9542daf31009ec","modified":1668809491723,"created":1668809491723,"url":"{{url}}/logout","name":"/logout Revoke JWT","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_716a234feee94c3b9e79966a066fc00d"},{"id":"pair_c27fa3320a6943cfbf87c40b7ca6ab73","name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY2NzMzMjQwNiwianRpIjoiMTU2ZTc5MzUtMmYwYy00NDE2LThmYWItODExYzdmNjY0ZDk4IiwidHlwZSI6ImFjY2VzcyIsInN1YiI6MSwibmJmIjoxNjY3MzMyNDA2LCJleHAiOjE2NjczMzMzMDZ9.zht2vTD73oderxN4uBobsywovxHdDjohbDNGk8_Vuaw","description":""}],"authentication":{},"metaSortKey":-1667328597780.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"req_94b040afec0a43e098320c3b03d5f0d7","parentId":"fld_86d10d221e114aa2be9542daf31009ec","modified":1668809491725,"created":1668809491725,"url":"{{url}}/refresh","name":"/refresh Get non-fresh token","description":"","method":"POST","body":{},"parameters":[],"headers":[{"id":"pair_d002eea6b22e4190909fc8366b5a4704","name":"Authorization","value":"Bearer {{refresh_token}}","description":""}],"authentication":{},"metaSortKey":-1667328634100.5,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_19db457230041d88ca9420d1b3c0f1f02bbcae93","parentId":"wrk_6aa19b7d9ecd4f93a3602d257e54a163","modified":1666122928025,"created":1666122928025,"name":"Base Environment","data":{},"dataPropertyOrder":null,"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_19db457230041d88ca9420d1b3c0f1f02bbcae93","parentId":"wrk_6aa19b7d9ecd4f93a3602d257e54a163","modified":1666122928027,"created":1666122928027,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_c5b803a7c6514ff29573e26487d898d4","parentId":"wrk_6aa19b7d9ecd4f93a3602d257e54a163","modified":1666122928018,"created":1666122928018,"fileName":"Your First REST API","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_6b3e8bb38d0c4154826d63642b863687","parentId":"wrk_acbd4ac11e8a40e5be2e6dad8ec6174a","modified":1666124761125,"created":1666124761125,"name":"Base Environment","data":{},"dataPropertyOrder":null,"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_9b95c15dadb44c03bf60cc7386095847","parentId":"wrk_acbd4ac11e8a40e5be2e6dad8ec6174a","modified":1666124761128,"created":1666124761128,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_cfb94f75feff4930966c80f350b1e115","parentId":"wrk_acbd4ac11e8a40e5be2e6dad8ec6174a","modified":1666124761155,"created":1666124761131,"fileName":"Flask-Smorest","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_adf22718b4e044e5b54b37c869463582","parentId":"wrk_e6c8aab80c134d35810fd37d43cce51e","modified":1666985430514,"created":1666905719000,"name":"Base Environment","data":{"url":"http://127.0.0.1:5005"},"dataPropertyOrder":{"&":["url"]},"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_210b7ba8709f44f29c305ed544da17c3","parentId":"wrk_e6c8aab80c134d35810fd37d43cce51e","modified":1666905719004,"created":1666905719004,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_7a427f233a494727845a45ba1325ea85","parentId":"wrk_e6c8aab80c134d35810fd37d43cce51e","modified":1666905719034,"created":1666905719007,"fileName":"Flask-Smorest-Docker","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_892efa21f8454221972d0c77a336872c","parentId":"wrk_a6cd641e98494bca9a11fe77b66c7e37","modified":1666987689172,"created":1666987689172,"name":"Base Environment","data":{"url":"http://127.0.0.1:5005"},"dataPropertyOrder":{"&":["url"]},"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_aff586a35c4c49aa91c5defb067355bf","parentId":"wrk_a6cd641e98494bca9a11fe77b66c7e37","modified":1666987689174,"created":1666987689174,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_4e7424f78749436bacdb44d3a1eba77a","parentId":"wrk_a6cd641e98494bca9a11fe77b66c7e37","modified":1666987689205,"created":1666987689176,"fileName":"Section 6","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_7609e8f1315a4d77af52a6ba50f48205","parentId":"wrk_6efa5c8b8fa142a28f436b209fba66fa","modified":1666990745590,"created":1666990745590,"name":"Base Environment","data":{"url":"http://127.0.0.1:5005"},"dataPropertyOrder":{"&":["url"]},"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_ce9759718e054191a685cec521ed7afc","parentId":"wrk_6efa5c8b8fa142a28f436b209fba66fa","modified":1666990745592,"created":1666990745592,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_0f62897a05a449f9845b4c71eeb892b3","parentId":"wrk_6efa5c8b8fa142a28f436b209fba66fa","modified":1666990745620,"created":1666990745594,"fileName":"Section 7","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_52ad539864c4425884f6394f62627cb7","parentId":"wrk_101d091b922e44c28f66528e9ef2ae37","modified":1667329454452,"created":1666991842391,"name":"Base Environment","data":{"url":"http://127.0.0.1:5005"},"dataPropertyOrder":{"&":["url"]},"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_bc7c508b3eed4f2485782e9d7177762e","parentId":"wrk_101d091b922e44c28f66528e9ef2ae37","modified":1666991842395,"created":1666991842395,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_75bd139c1688445faff87b21105f8df1","parentId":"wrk_101d091b922e44c28f66528e9ef2ae37","modified":1666991842435,"created":1666991842397,"fileName":"Section 8","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_c2a4191124a544e9a440f8042644c7b9","parentId":"wrk_5d43c6fa3d9a4ba8817aa2e2767d791a","modified":1667651225760,"created":1667332566839,"name":"Base Environment","data":{"url":"http://127.0.0.1:5005","access_token":"{% response 'body', 'req_fe8e836ebd4a44cd9f37ff8738e7ed98', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 300 %}","refresh_token":"{% response 'body', 'req_fe8e836ebd4a44cd9f37ff8738e7ed98', 'b64::JC5yZWZyZXNoX3Rva2Vu::46b', 'when-expired', NaN %}"},"dataPropertyOrder":{"&":["url","access_token","refresh_token"]},"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_8a4500f913d7401fa00168eaf32dcb4c","parentId":"wrk_5d43c6fa3d9a4ba8817aa2e2767d791a","modified":1667332566841,"created":1667332566841,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_2d4dfbfd115b4f91b44d09ad3c6d0b5b","parentId":"wrk_5d43c6fa3d9a4ba8817aa2e2767d791a","modified":1667332566888,"created":1667332566842,"fileName":"Section 8 - Chaining","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_e09818240d524d079150f6fc00963c54","parentId":"wrk_f14186e0f24a4da9ab3ab8d628227a36","modified":1668007660648,"created":1668007660648,"name":"Base Environment","data":{"url":"http://127.0.0.1:5005","access_token":"{% response 'body', 'req_fe8e836ebd4a44cd9f37ff8738e7ed98', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 300 %}","refresh_token":"{% response 'body', 'req_fe8e836ebd4a44cd9f37ff8738e7ed98', 'b64::JC5yZWZyZXNoX3Rva2Vu::46b', 'when-expired', NaN %}"},"dataPropertyOrder":{"&":["url","access_token","refresh_token"]},"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_9aa71c77793345cabd413a66ad557bd7","parentId":"wrk_f14186e0f24a4da9ab3ab8d628227a36","modified":1668007660652,"created":1668007660652,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_2f42797dc9c6441fb3d3e7b23780dc27","parentId":"wrk_f14186e0f24a4da9ab3ab8d628227a36","modified":1668007660725,"created":1668007660654,"fileName":"Section 11","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_05389734f73848a3922232b339a3d34d","parentId":"wrk_3626a93c829b4cf683cbf49c61bdaaef","modified":1668809491667,"created":1668809491667,"name":"Base Environment","data":{"url":"http://127.0.0.1:5005","access_token":"{% response 'body', 'req_fe8e836ebd4a44cd9f37ff8738e7ed98', 'b64::JC5hY2Nlc3NfdG9rZW4=::46b', 'when-expired', 300 %}","refresh_token":"{% response 'body', 'req_fe8e836ebd4a44cd9f37ff8738e7ed98', 'b64::JC5yZWZyZXNoX3Rva2Vu::46b', 'when-expired', NaN %}"},"dataPropertyOrder":{"&":["url","access_token","refresh_token"]},"color":null,"isPrivate":false,"metaSortKey":1666122928025,"_type":"environment"},{"_id":"jar_a60cc8f7a1dc4acfa31828ea71765d5e","parentId":"wrk_3626a93c829b4cf683cbf49c61bdaaef","modified":1668809491673,"created":1668809491673,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_b684ea4fa67c4d13befbc1e6ee30fdb6","parentId":"wrk_3626a93c829b4cf683cbf49c61bdaaef","modified":1668809491739,"created":1668809491675,"fileName":"Section 12","contents":"","contentType":"yaml","_type":"api_spec"}]} \ No newline at end of file diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index acb4da42..ece7ec10 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -17,9 +17,10 @@ const config = { projectName: "rest-apis-flask-python", // Usually your repo name. scripts: [ { - src: "https://plausible.io/js/plausible.js", + src: "https://plau-prox.teclado.workers.dev/get/script.outbound-links.js", defer: true, "data-domain": "rest-apis-flask.teclado.com", + "data-api": "https://plau-prox.teclado.workers.dev/send/event", }, ], presets: [ @@ -40,10 +41,35 @@ const config = { }), ], ], - plugins: [require.resolve("@cmfcmf/docusaurus-search-local")], themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ ({ + docs: { + sidebar: { + hideable: true, + }, + }, + algolia: { + // The application ID provided by Algolia + appId: "1BEGBIP9SH", + + // Public API key: it is safe to commit it + apiKey: "882167549d623413f9b5314788a0d900", + + indexName: "docusaurus-2", + + // Optional: see doc section below + // contextualSearch: true, + + // Optional: Specify domains where the navigation should occur through window.location instead on history.push. Useful when our Algolia config crawls multiple documentation sites and we want to navigate with window.location.href to them. + // externalUrlRegex: "external\\.com|domain\\.com", + + // Optional: Algolia search parameters + searchParameters: {}, + + // Optional: path for search page that enabled by default (`false` to disable it) + searchPagePath: "search", + }, navbar: { title: "REST APIs with Flask and Python", logo: { @@ -58,12 +84,25 @@ const config = { label: "Tutorial", }, { - href: "https://go.tecla.do/rest-apis-sale", + href: "/insomnia-files/", + position: "left", + label: "Insomnia files", + }, + { + href: "https://go.tecla.do/rest-apis-ebook", label: "Get the course", position: "right", }, ], }, + announcementBar: { + id: "support_us", + content: + 'Unlock all video lessons and support us by buying the course!', + backgroundColor: "#1c2023", + textColor: "#fff", + isCloseable: false, + }, footer: { style: "dark", links: [ @@ -71,7 +110,7 @@ const config = { title: "Learn", items: [ { - href: "https://go.tecla.do/rest-apis-sale", + href: "https://go.tecla.do/rest-apis-ebook", label: "Get the course", }, { diff --git a/docs/package-lock.json b/docs/package-lock.json index 29585a7e..e2b48e84 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -8,9 +8,9 @@ "name": "website", "version": "0.0.0", "dependencies": { - "@cmfcmf/docusaurus-search-local": "^0.11.0", - "@docusaurus/core": "2.1.0", - "@docusaurus/preset-classic": "2.1.0", + "@docusaurus/core": "^2.2.0", + "@docusaurus/preset-classic": "^2.2.0", + "@docusaurus/theme-search-algolia": "^2.2.0", "@mdx-js/react": "^1.6.22", "clsx": "^1.1.1", "prism-react-renderer": "^1.3.1", @@ -26,21 +26,6 @@ "@algolia/autocomplete-shared": "1.7.1" } }, - "node_modules/@algolia/autocomplete-js": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-js/-/autocomplete-js-1.7.1.tgz", - "integrity": "sha512-m8xQiH1qdthovVOD9O8/ur9P5us+sljskIpB1HFQIFmsfchorJNFlpMT+zE8V55tbJOwusUrp85c9t+6lkOllg==", - "dependencies": { - "@algolia/autocomplete-core": "1.7.1", - "@algolia/autocomplete-preset-algolia": "1.7.1", - "@algolia/autocomplete-shared": "1.7.1", - "htm": "^3.0.0", - "preact": "^10.0.0" - }, - "peerDependencies": { - "@algolia/client-search": "^4.5.1" - } - }, "node_modules/@algolia/autocomplete-preset-algolia": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.1.tgz", @@ -58,11 +43,6 @@ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.1.tgz", "integrity": "sha512-eTmGVqY3GeyBTT8IWiB2K5EuURAqhnumfktAEoHxfDY2o7vg2rSnO16ZtIG0fMgt3py28Vwgq42/bVEuaQV7pg==" }, - "node_modules/@algolia/autocomplete-theme-classic": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-theme-classic/-/autocomplete-theme-classic-1.7.1.tgz", - "integrity": "sha512-Uh2AuRMjgbwCgOQX+oZQ5RIaqIDZ2os4EDZd3WClnIYQl03VTvSD/JRPmlz/+agWpfoN/fX8XvmLUGt/d4DbYg==" - }, "node_modules/@algolia/cache-browser-local-storage": { "version": "4.14.2", "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.14.2.tgz", @@ -1904,30 +1884,6 @@ "node": ">=6.9.0" } }, - "node_modules/@cmfcmf/docusaurus-search-local": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@cmfcmf/docusaurus-search-local/-/docusaurus-search-local-0.11.0.tgz", - "integrity": "sha512-UzJ0G7JfrhuXJ9h79vforQZs05C5rWhXqrK7C5ie1ImHLTC4RPW7FHagIpZULhcA2PbDkc4ewnWVIufLKq+KzA==", - "dependencies": { - "@algolia/autocomplete-js": "^1.5.1", - "@algolia/autocomplete-theme-classic": "^1.5.1", - "@algolia/client-search": "^4.12.0", - "algoliasearch": "^4.12.0", - "cheerio": "^1.0.0-rc.9", - "clsx": "^1.1.1", - "lunr-languages": "^1.4.0", - "mark.js": "^8.11.1" - }, - "peerDependencies": { - "@docusaurus/core": "^v2.0.0-beta.21", - "nodejieba": "^2.5.0" - }, - "peerDependenciesMeta": { - "nodejieba": { - "optional": true - } - } - }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -1970,9 +1926,9 @@ } }, "node_modules/@docusaurus/core": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.1.0.tgz", - "integrity": "sha512-/ZJ6xmm+VB9Izbn0/s6h6289cbPy2k4iYFwWDhjiLsVqwa/Y0YBBcXvStfaHccudUC3OfP+26hMk7UCjc50J6Q==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.2.0.tgz", + "integrity": "sha512-Vd6XOluKQqzG12fEs9prJgDtyn6DPok9vmUWDR2E6/nV5Fl9SVkhEQOBxwObjk3kQh7OY7vguFaLh0jqdApWsA==", "dependencies": { "@babel/core": "^7.18.6", "@babel/generator": "^7.18.7", @@ -1984,13 +1940,13 @@ "@babel/runtime": "^7.18.6", "@babel/runtime-corejs3": "^7.18.6", "@babel/traverse": "^7.18.8", - "@docusaurus/cssnano-preset": "2.1.0", - "@docusaurus/logger": "2.1.0", - "@docusaurus/mdx-loader": "2.1.0", + "@docusaurus/cssnano-preset": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/utils": "2.1.0", - "@docusaurus/utils-common": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-common": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "@slorber/static-site-generator-webpack-plugin": "^4.0.7", "@svgr/webpack": "^6.2.1", "autoprefixer": "^10.4.7", @@ -2122,9 +2078,9 @@ } }, "node_modules/@docusaurus/cssnano-preset": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.1.0.tgz", - "integrity": "sha512-pRLewcgGhOies6pzsUROfmPStDRdFw+FgV5sMtLr5+4Luv2rty5+b/eSIMMetqUsmg3A9r9bcxHk9bKAKvx3zQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.2.0.tgz", + "integrity": "sha512-mAAwCo4n66TMWBH1kXnHVZsakW9VAXJzTO4yZukuL3ro4F+JtkMwKfh42EG75K/J/YIFQG5I/Bzy0UH/hFxaTg==", "dependencies": { "cssnano-preset-advanced": "^5.3.8", "postcss": "^8.4.14", @@ -2136,9 +2092,9 @@ } }, "node_modules/@docusaurus/logger": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.1.0.tgz", - "integrity": "sha512-uuJx2T6hDBg82joFeyobywPjSOIfeq05GfyKGHThVoXuXsu1KAzMDYcjoDxarb9CoHCI/Dor8R2MoL6zII8x1Q==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.2.0.tgz", + "integrity": "sha512-DF3j1cA5y2nNsu/vk8AG7xwpZu6f5MKkPPMaaIbgXLnWGfm6+wkOeW7kNrxnM95YOhKUkJUophX69nGUnLsm0A==", "dependencies": { "chalk": "^4.1.2", "tslib": "^2.4.0" @@ -2212,14 +2168,14 @@ } }, "node_modules/@docusaurus/mdx-loader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.1.0.tgz", - "integrity": "sha512-i97hi7hbQjsD3/8OSFhLy7dbKGH8ryjEzOfyhQIn2CFBYOY3ko0vMVEf3IY9nD3Ld7amYzsZ8153RPkcnXA+Lg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.2.0.tgz", + "integrity": "sha512-X2bzo3T0jW0VhUU+XdQofcEeozXOTmKQMvc8tUnWRdTnCvj4XEcBVdC3g+/jftceluiwSTNRAX4VBOJdNt18jA==", "dependencies": { "@babel/parser": "^7.18.8", "@babel/traverse": "^7.18.8", - "@docusaurus/logger": "2.1.0", - "@docusaurus/utils": "2.1.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/utils": "2.2.0", "@mdx-js/mdx": "^1.6.22", "escape-html": "^1.0.3", "file-loader": "^6.2.0", @@ -2243,12 +2199,12 @@ } }, "node_modules/@docusaurus/module-type-aliases": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.1.0.tgz", - "integrity": "sha512-Z8WZaK5cis3xEtyfOT817u9xgGUauT0PuuVo85ysnFRX8n7qLN1lTPCkC+aCmFm/UcV8h/W5T4NtIsst94UntQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.2.0.tgz", + "integrity": "sha512-wDGW4IHKoOr9YuJgy7uYuKWrDrSpsUSDHLZnWQYM9fN7D5EpSmYHjFruUpKWVyxLpD/Wh0rW8hYZwdjJIQUQCQ==", "dependencies": { "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/types": "2.1.0", + "@docusaurus/types": "2.2.0", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -2262,17 +2218,17 @@ } }, "node_modules/@docusaurus/plugin-content-blog": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.1.0.tgz", - "integrity": "sha512-xEp6jlu92HMNUmyRBEeJ4mCW1s77aAEQO4Keez94cUY/Ap7G/r0Awa6xSLff7HL0Fjg8KK1bEbDy7q9voIavdg==", - "dependencies": { - "@docusaurus/core": "2.1.0", - "@docusaurus/logger": "2.1.0", - "@docusaurus/mdx-loader": "2.1.0", - "@docusaurus/types": "2.1.0", - "@docusaurus/utils": "2.1.0", - "@docusaurus/utils-common": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.2.0.tgz", + "integrity": "sha512-0mWBinEh0a5J2+8ZJXJXbrCk1tSTNf7Nm4tYAl5h2/xx+PvH/Bnu0V+7mMljYm/1QlDYALNIIaT/JcoZQFUN3w==", + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-common": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "cheerio": "^1.0.0-rc.12", "feed": "^4.2.2", "fs-extra": "^10.1.0", @@ -2292,17 +2248,17 @@ } }, "node_modules/@docusaurus/plugin-content-docs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.1.0.tgz", - "integrity": "sha512-Rup5pqXrXlKGIC4VgwvioIhGWF7E/NNSlxv+JAxRYpik8VKlWsk9ysrdHIlpX+KJUCO9irnY21kQh2814mlp/Q==", - "dependencies": { - "@docusaurus/core": "2.1.0", - "@docusaurus/logger": "2.1.0", - "@docusaurus/mdx-loader": "2.1.0", - "@docusaurus/module-type-aliases": "2.1.0", - "@docusaurus/types": "2.1.0", - "@docusaurus/utils": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.2.0.tgz", + "integrity": "sha512-BOazBR0XjzsHE+2K1wpNxz5QZmrJgmm3+0Re0EVPYFGW8qndCWGNtXW/0lGKhecVPML8yyFeAmnUCIs7xM2wPw==", + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/module-type-aliases": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "@types/react-router-config": "^5.0.6", "combine-promises": "^1.1.0", "fs-extra": "^10.1.0", @@ -2322,15 +2278,15 @@ } }, "node_modules/@docusaurus/plugin-content-pages": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.1.0.tgz", - "integrity": "sha512-SwZdDZRlObHNKXTnFo7W2aF6U5ZqNVI55Nw2GCBryL7oKQSLeI0lsrMlMXdzn+fS7OuBTd3MJBO1T4Zpz0i/+g==", - "dependencies": { - "@docusaurus/core": "2.1.0", - "@docusaurus/mdx-loader": "2.1.0", - "@docusaurus/types": "2.1.0", - "@docusaurus/utils": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.2.0.tgz", + "integrity": "sha512-+OTK3FQHk5WMvdelz8v19PbEbx+CNT6VSpx7nVOvMNs5yJCKvmqBJBQ2ZSxROxhVDYn+CZOlmyrC56NSXzHf6g==", + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "fs-extra": "^10.1.0", "tslib": "^2.4.0", "webpack": "^5.73.0" @@ -2344,13 +2300,13 @@ } }, "node_modules/@docusaurus/plugin-debug": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.1.0.tgz", - "integrity": "sha512-8wsDq3OIfiy6440KLlp/qT5uk+WRHQXIXklNHEeZcar+Of0TZxCNe2FBpv+bzb/0qcdP45ia5i5WmR5OjN6DPw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.2.0.tgz", + "integrity": "sha512-p9vOep8+7OVl6r/NREEYxf4HMAjV8JMYJ7Bos5fCFO0Wyi9AZEo0sCTliRd7R8+dlJXZEgcngSdxAUo/Q+CJow==", "dependencies": { - "@docusaurus/core": "2.1.0", - "@docusaurus/types": "2.1.0", - "@docusaurus/utils": "2.1.0", + "@docusaurus/core": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", "fs-extra": "^10.1.0", "react-json-view": "^1.21.3", "tslib": "^2.4.0" @@ -2364,13 +2320,13 @@ } }, "node_modules/@docusaurus/plugin-google-analytics": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.1.0.tgz", - "integrity": "sha512-4cgeqIly/wcFVbbWP03y1QJJBgH8W+Bv6AVbWnsXNOZa1yB3AO6hf3ZdeQH9x20v9T2pREogVgAH0rSoVnNsgg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.2.0.tgz", + "integrity": "sha512-+eZVVxVeEnV5nVQJdey9ZsfyEVMls6VyWTIj8SmX0k5EbqGvnIfET+J2pYEuKQnDIHxy+syRMoRM6AHXdHYGIg==", "dependencies": { - "@docusaurus/core": "2.1.0", - "@docusaurus/types": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "@docusaurus/core": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "tslib": "^2.4.0" }, "engines": { @@ -2382,13 +2338,13 @@ } }, "node_modules/@docusaurus/plugin-google-gtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.1.0.tgz", - "integrity": "sha512-/3aDlv2dMoCeiX2e+DTGvvrdTA+v3cKQV3DbmfsF4ENhvc5nKV23nth04Z3Vq0Ci1ui6Sn80TkhGk/tiCMW2AA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.2.0.tgz", + "integrity": "sha512-6SOgczP/dYdkqUMGTRqgxAS1eTp6MnJDAQMy8VCF1QKbWZmlkx4agHDexihqmYyCujTYHqDAhm1hV26EET54NQ==", "dependencies": { - "@docusaurus/core": "2.1.0", - "@docusaurus/types": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "@docusaurus/core": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "tslib": "^2.4.0" }, "engines": { @@ -2400,16 +2356,16 @@ } }, "node_modules/@docusaurus/plugin-sitemap": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.1.0.tgz", - "integrity": "sha512-2Y6Br8drlrZ/jN9MwMBl0aoi9GAjpfyfMBYpaQZXimbK+e9VjYnujXlvQ4SxtM60ASDgtHIAzfVFBkSR/MwRUw==", - "dependencies": { - "@docusaurus/core": "2.1.0", - "@docusaurus/logger": "2.1.0", - "@docusaurus/types": "2.1.0", - "@docusaurus/utils": "2.1.0", - "@docusaurus/utils-common": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.2.0.tgz", + "integrity": "sha512-0jAmyRDN/aI265CbWZNZuQpFqiZuo+5otk2MylU9iVrz/4J7gSc+ZJ9cy4EHrEsW7PV8s1w18hIEsmcA1YgkKg==", + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-common": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "fs-extra": "^10.1.0", "sitemap": "^7.1.1", "tslib": "^2.4.0" @@ -2423,22 +2379,22 @@ } }, "node_modules/@docusaurus/preset-classic": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.1.0.tgz", - "integrity": "sha512-NQMnaq974K4BcSMXFSJBQ5itniw6RSyW+VT+6i90kGZzTwiuKZmsp0r9lC6BYAvvVMQUNJQwrETmlu7y2XKW7w==", - "dependencies": { - "@docusaurus/core": "2.1.0", - "@docusaurus/plugin-content-blog": "2.1.0", - "@docusaurus/plugin-content-docs": "2.1.0", - "@docusaurus/plugin-content-pages": "2.1.0", - "@docusaurus/plugin-debug": "2.1.0", - "@docusaurus/plugin-google-analytics": "2.1.0", - "@docusaurus/plugin-google-gtag": "2.1.0", - "@docusaurus/plugin-sitemap": "2.1.0", - "@docusaurus/theme-classic": "2.1.0", - "@docusaurus/theme-common": "2.1.0", - "@docusaurus/theme-search-algolia": "2.1.0", - "@docusaurus/types": "2.1.0" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.2.0.tgz", + "integrity": "sha512-yKIWPGNx7BT8v2wjFIWvYrS+nvN04W+UameSFf8lEiJk6pss0kL6SG2MRvyULiI3BDxH+tj6qe02ncpSPGwumg==", + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/plugin-content-blog": "2.2.0", + "@docusaurus/plugin-content-docs": "2.2.0", + "@docusaurus/plugin-content-pages": "2.2.0", + "@docusaurus/plugin-debug": "2.2.0", + "@docusaurus/plugin-google-analytics": "2.2.0", + "@docusaurus/plugin-google-gtag": "2.2.0", + "@docusaurus/plugin-sitemap": "2.2.0", + "@docusaurus/theme-classic": "2.2.0", + "@docusaurus/theme-common": "2.2.0", + "@docusaurus/theme-search-algolia": "2.2.0", + "@docusaurus/types": "2.2.0" }, "engines": { "node": ">=16.14" @@ -2461,22 +2417,22 @@ } }, "node_modules/@docusaurus/theme-classic": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.1.0.tgz", - "integrity": "sha512-xn8ZfNMsf7gaSy9+ClFnUu71o7oKgMo5noYSS1hy3svNifRTkrBp6+MReLDsmIaj3mLf2e7+JCBYKBFbaGzQng==", - "dependencies": { - "@docusaurus/core": "2.1.0", - "@docusaurus/mdx-loader": "2.1.0", - "@docusaurus/module-type-aliases": "2.1.0", - "@docusaurus/plugin-content-blog": "2.1.0", - "@docusaurus/plugin-content-docs": "2.1.0", - "@docusaurus/plugin-content-pages": "2.1.0", - "@docusaurus/theme-common": "2.1.0", - "@docusaurus/theme-translations": "2.1.0", - "@docusaurus/types": "2.1.0", - "@docusaurus/utils": "2.1.0", - "@docusaurus/utils-common": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.2.0.tgz", + "integrity": "sha512-kjbg/qJPwZ6H1CU/i9d4l/LcFgnuzeiGgMQlt6yPqKo0SOJIBMPuz7Rnu3r/WWbZFPi//o8acclacOzmXdUUEg==", + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/module-type-aliases": "2.2.0", + "@docusaurus/plugin-content-blog": "2.2.0", + "@docusaurus/plugin-content-docs": "2.2.0", + "@docusaurus/plugin-content-pages": "2.2.0", + "@docusaurus/theme-common": "2.2.0", + "@docusaurus/theme-translations": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-common": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "@mdx-js/react": "^1.6.22", "clsx": "^1.2.1", "copy-text-to-clipboard": "^3.0.1", @@ -2500,16 +2456,16 @@ } }, "node_modules/@docusaurus/theme-common": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.1.0.tgz", - "integrity": "sha512-vT1otpVPbKux90YpZUnvknsn5zvpLf+AW1W0EDcpE9up4cDrPqfsh0QoxGHFJnobE2/qftsBFC19BneN4BH8Ag==", - "dependencies": { - "@docusaurus/mdx-loader": "2.1.0", - "@docusaurus/module-type-aliases": "2.1.0", - "@docusaurus/plugin-content-blog": "2.1.0", - "@docusaurus/plugin-content-docs": "2.1.0", - "@docusaurus/plugin-content-pages": "2.1.0", - "@docusaurus/utils": "2.1.0", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.2.0.tgz", + "integrity": "sha512-R8BnDjYoN90DCL75gP7qYQfSjyitXuP9TdzgsKDmSFPNyrdE3twtPNa2dIN+h+p/pr+PagfxwWbd6dn722A1Dw==", + "dependencies": { + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/module-type-aliases": "2.2.0", + "@docusaurus/plugin-content-blog": "2.2.0", + "@docusaurus/plugin-content-docs": "2.2.0", + "@docusaurus/plugin-content-pages": "2.2.0", + "@docusaurus/utils": "2.2.0", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -2528,18 +2484,18 @@ } }, "node_modules/@docusaurus/theme-search-algolia": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.1.0.tgz", - "integrity": "sha512-rNBvi35VvENhucslEeVPOtbAzBdZY/9j55gdsweGV5bYoAXy4mHB6zTGjealcB4pJ6lJY4a5g75fXXMOlUqPfg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.2.0.tgz", + "integrity": "sha512-2h38B0tqlxgR2FZ9LpAkGrpDWVdXZ7vltfmTdX+4RsDs3A7khiNsmZB+x/x6sA4+G2V2CvrsPMlsYBy5X+cY1w==", "dependencies": { "@docsearch/react": "^3.1.1", - "@docusaurus/core": "2.1.0", - "@docusaurus/logger": "2.1.0", - "@docusaurus/plugin-content-docs": "2.1.0", - "@docusaurus/theme-common": "2.1.0", - "@docusaurus/theme-translations": "2.1.0", - "@docusaurus/utils": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "@docusaurus/core": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/plugin-content-docs": "2.2.0", + "@docusaurus/theme-common": "2.2.0", + "@docusaurus/theme-translations": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "algoliasearch": "^4.13.1", "algoliasearch-helper": "^3.10.0", "clsx": "^1.2.1", @@ -2558,9 +2514,9 @@ } }, "node_modules/@docusaurus/theme-translations": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.1.0.tgz", - "integrity": "sha512-07n2akf2nqWvtJeMy3A+7oSGMuu5F673AovXVwY0aGAux1afzGCiqIFlYW3EP0CujvDJAEFSQi/Tetfh+95JNg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.2.0.tgz", + "integrity": "sha512-3T140AG11OjJrtKlY4pMZ5BzbGRDjNs2co5hJ6uYJG1bVWlhcaFGqkaZ5lCgKflaNHD7UHBHU9Ec5f69jTdd6w==", "dependencies": { "fs-extra": "^10.1.0", "tslib": "^2.4.0" @@ -2570,9 +2526,9 @@ } }, "node_modules/@docusaurus/types": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.1.0.tgz", - "integrity": "sha512-BS1ebpJZnGG6esKqsjtEC9U9qSaPylPwlO7cQ1GaIE7J/kMZI3FITnNn0otXXu7c7ZTqhb6+8dOrG6fZn6fqzQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.2.0.tgz", + "integrity": "sha512-b6xxyoexfbRNRI8gjblzVOnLr4peCJhGbYGPpJ3LFqpi5nsFfoK4mmDLvWdeah0B7gmJeXabN7nQkFoqeSdmOw==", "dependencies": { "@types/history": "^4.7.11", "@types/react": "*", @@ -2589,11 +2545,11 @@ } }, "node_modules/@docusaurus/utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.1.0.tgz", - "integrity": "sha512-fPvrfmAuC54n8MjZuG4IysaMdmvN5A/qr7iFLbSGSyDrsbP4fnui6KdZZIa/YOLIPLec8vjZ8RIITJqF18mx4A==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.2.0.tgz", + "integrity": "sha512-oNk3cjvx7Tt1Lgh/aeZAmFpGV2pDr5nHKrBVx6hTkzGhrnMuQqLt6UPlQjdYQ3QHXwyF/ZtZMO1D5Pfi0lu7SA==", "dependencies": { - "@docusaurus/logger": "2.1.0", + "@docusaurus/logger": "2.2.0", "@svgr/webpack": "^6.2.1", "file-loader": "^6.2.0", "fs-extra": "^10.1.0", @@ -2622,9 +2578,9 @@ } }, "node_modules/@docusaurus/utils-common": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.1.0.tgz", - "integrity": "sha512-F2vgmt4yRFgRQR2vyEFGTWeyAdmgKbtmu3sjHObF0tjjx/pN0Iw/c6eCopaH34E6tc9nO0nvp01pwW+/86d1fg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.2.0.tgz", + "integrity": "sha512-qebnerHp+cyovdUseDQyYFvMW1n1nv61zGe5JJfoNQUnjKuApch3IVsz+/lZ9a38pId8kqehC1Ao2bW/s0ntDA==", "dependencies": { "tslib": "^2.4.0" }, @@ -2641,12 +2597,12 @@ } }, "node_modules/@docusaurus/utils-validation": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.1.0.tgz", - "integrity": "sha512-AMJzWYKL3b7FLltKtDXNLO9Y649V2BXvrnRdnW2AA+PpBnYV78zKLSCz135cuWwRj1ajNtP4onbXdlnyvCijGQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.2.0.tgz", + "integrity": "sha512-I1hcsG3yoCkasOL5qQAYAfnmVoLei7apugT6m4crQjmDGxq+UkiRrq55UqmDDyZlac/6ax/JC0p+usZ6W4nVyg==", "dependencies": { - "@docusaurus/logger": "2.1.0", - "@docusaurus/utils": "2.1.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/utils": "2.2.0", "joi": "^17.6.0", "js-yaml": "^4.1.0", "tslib": "^2.4.0" @@ -5304,12 +5260,12 @@ } }, "node_modules/cssnano-preset-advanced": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.8.tgz", - "integrity": "sha512-xUlLLnEB1LjpEik+zgRNlk8Y/koBPPtONZjp7JKbXigeAmCrFvq9H0pXW5jJV45bQWAlmJ0sKy+IMr0XxLYQZg==", + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.9.tgz", + "integrity": "sha512-njnh4pp1xCsibJcEHnWZb4EEzni0ePMqPuPNyuWT4Z+YeXmsgqNuTPIljXFEXhxGsWs9183JkXgHxc1TcsahIg==", "dependencies": { - "autoprefixer": "^10.3.7", - "cssnano-preset-default": "^5.2.12", + "autoprefixer": "^10.4.12", + "cssnano-preset-default": "^5.2.13", "postcss-discard-unused": "^5.1.0", "postcss-merge-idents": "^5.1.1", "postcss-reduce-idents": "^5.2.0", @@ -5323,24 +5279,24 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.2.12", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", - "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", + "version": "5.2.13", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", + "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", "dependencies": { - "css-declaration-sorter": "^6.3.0", + "css-declaration-sorter": "^6.3.1", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.2", + "postcss-convert-values": "^5.1.3", "postcss-discard-comments": "^5.1.2", "postcss-discard-duplicates": "^5.1.0", "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.6", - "postcss-merge-rules": "^5.1.2", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.3", "postcss-minify-font-values": "^5.1.0", "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.3", + "postcss-minify-params": "^5.1.4", "postcss-minify-selectors": "^5.2.1", "postcss-normalize-charset": "^5.1.0", "postcss-normalize-display-values": "^5.1.0", @@ -5348,11 +5304,11 @@ "postcss-normalize-repeat-style": "^5.1.1", "postcss-normalize-string": "^5.1.0", "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", "postcss-normalize-url": "^5.1.0", "postcss-normalize-whitespace": "^5.1.1", "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-initial": "^5.1.1", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", "postcss-unique-selectors": "^5.1.1" @@ -7007,11 +6963,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/htm": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/htm/-/htm-3.1.1.tgz", - "integrity": "sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==" - }, "node_modules/html-entities": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", @@ -7931,11 +7882,6 @@ "node": ">=10" } }, - "node_modules/lunr-languages": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.9.0.tgz", - "integrity": "sha512-Be5vFuc8NAheOIjviCRms3ZqFFBlzns3u9DXpPSZvALetgnydAN0poV71pVLFn0keYy/s4VblMMkqewTLe+KPg==" - }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -7958,11 +7904,6 @@ "semver": "bin/semver.js" } }, - "node_modules/mark.js": { - "version": "8.11.1", - "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", - "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==" - }, "node_modules/markdown-escapes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", @@ -8897,11 +8838,11 @@ } }, "node_modules/postcss-convert-values": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", - "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", "dependencies": { - "browserslist": "^4.20.3", + "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -9006,12 +8947,12 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", - "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.0" + "stylehacks": "^5.1.1" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -9021,11 +8962,11 @@ } }, "node_modules/postcss-merge-rules": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", - "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", + "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "cssnano-utils": "^3.1.0", "postcss-selector-parser": "^6.0.5" @@ -9068,11 +9009,11 @@ } }, "node_modules/postcss-minify-params": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", - "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, @@ -9234,11 +9175,11 @@ } }, "node_modules/postcss-normalize-unicode": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", - "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -9307,11 +9248,11 @@ } }, "node_modules/postcss-reduce-initial": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", - "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", + "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" }, "engines": { @@ -9406,15 +9347,6 @@ "postcss": "^8.2.15" } }, - "node_modules/preact": { - "version": "10.11.0", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.11.0.tgz", - "integrity": "sha512-Fk6+vB2kb6mSJfDgODq0YDhMfl0HNtK5+Uc9QqECO4nlyPAQwCI+BKyWO//idA7ikV7o+0Fm6LQmNuQi1wXI1w==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/preact" - } - }, "node_modules/prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", @@ -9993,9 +9925,9 @@ } }, "node_modules/react-textarea-autosize": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.3.4.tgz", - "integrity": "sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.4.0.tgz", + "integrity": "sha512-YrTFaEHLgJsi8sJVYHBzYn+mkP3prGkmP2DKb/tm0t7CLJY5t1Rxix8070LAKb0wby7bl/lf2EeHkuMihMZMwQ==", "dependencies": { "@babel/runtime": "^7.10.2", "use-composed-ref": "^1.3.0", @@ -11195,11 +11127,11 @@ } }, "node_modules/stylehacks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", - "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" }, "engines": { @@ -11504,9 +11436,9 @@ } }, "node_modules/ua-parser-js": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", - "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", + "version": "0.7.32", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.32.tgz", + "integrity": "sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw==", "funding": [ { "type": "opencollective", @@ -12898,18 +12830,6 @@ "@algolia/autocomplete-shared": "1.7.1" } }, - "@algolia/autocomplete-js": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-js/-/autocomplete-js-1.7.1.tgz", - "integrity": "sha512-m8xQiH1qdthovVOD9O8/ur9P5us+sljskIpB1HFQIFmsfchorJNFlpMT+zE8V55tbJOwusUrp85c9t+6lkOllg==", - "requires": { - "@algolia/autocomplete-core": "1.7.1", - "@algolia/autocomplete-preset-algolia": "1.7.1", - "@algolia/autocomplete-shared": "1.7.1", - "htm": "^3.0.0", - "preact": "^10.0.0" - } - }, "@algolia/autocomplete-preset-algolia": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.1.tgz", @@ -12923,11 +12843,6 @@ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.1.tgz", "integrity": "sha512-eTmGVqY3GeyBTT8IWiB2K5EuURAqhnumfktAEoHxfDY2o7vg2rSnO16ZtIG0fMgt3py28Vwgq42/bVEuaQV7pg==" }, - "@algolia/autocomplete-theme-classic": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-theme-classic/-/autocomplete-theme-classic-1.7.1.tgz", - "integrity": "sha512-Uh2AuRMjgbwCgOQX+oZQ5RIaqIDZ2os4EDZd3WClnIYQl03VTvSD/JRPmlz/+agWpfoN/fX8XvmLUGt/d4DbYg==" - }, "@algolia/cache-browser-local-storage": { "version": "4.14.2", "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.14.2.tgz", @@ -14207,21 +14122,6 @@ "to-fast-properties": "^2.0.0" } }, - "@cmfcmf/docusaurus-search-local": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@cmfcmf/docusaurus-search-local/-/docusaurus-search-local-0.11.0.tgz", - "integrity": "sha512-UzJ0G7JfrhuXJ9h79vforQZs05C5rWhXqrK7C5ie1ImHLTC4RPW7FHagIpZULhcA2PbDkc4ewnWVIufLKq+KzA==", - "requires": { - "@algolia/autocomplete-js": "^1.5.1", - "@algolia/autocomplete-theme-classic": "^1.5.1", - "@algolia/client-search": "^4.12.0", - "algoliasearch": "^4.12.0", - "cheerio": "^1.0.0-rc.9", - "clsx": "^1.1.1", - "lunr-languages": "^1.4.0", - "mark.js": "^8.11.1" - } - }, "@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -14245,9 +14145,9 @@ } }, "@docusaurus/core": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.1.0.tgz", - "integrity": "sha512-/ZJ6xmm+VB9Izbn0/s6h6289cbPy2k4iYFwWDhjiLsVqwa/Y0YBBcXvStfaHccudUC3OfP+26hMk7UCjc50J6Q==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.2.0.tgz", + "integrity": "sha512-Vd6XOluKQqzG12fEs9prJgDtyn6DPok9vmUWDR2E6/nV5Fl9SVkhEQOBxwObjk3kQh7OY7vguFaLh0jqdApWsA==", "requires": { "@babel/core": "^7.18.6", "@babel/generator": "^7.18.7", @@ -14259,13 +14159,13 @@ "@babel/runtime": "^7.18.6", "@babel/runtime-corejs3": "^7.18.6", "@babel/traverse": "^7.18.8", - "@docusaurus/cssnano-preset": "2.1.0", - "@docusaurus/logger": "2.1.0", - "@docusaurus/mdx-loader": "2.1.0", + "@docusaurus/cssnano-preset": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/utils": "2.1.0", - "@docusaurus/utils-common": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-common": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "@slorber/static-site-generator-webpack-plugin": "^4.0.7", "@svgr/webpack": "^6.2.1", "autoprefixer": "^10.4.7", @@ -14368,9 +14268,9 @@ } }, "@docusaurus/cssnano-preset": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.1.0.tgz", - "integrity": "sha512-pRLewcgGhOies6pzsUROfmPStDRdFw+FgV5sMtLr5+4Luv2rty5+b/eSIMMetqUsmg3A9r9bcxHk9bKAKvx3zQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.2.0.tgz", + "integrity": "sha512-mAAwCo4n66TMWBH1kXnHVZsakW9VAXJzTO4yZukuL3ro4F+JtkMwKfh42EG75K/J/YIFQG5I/Bzy0UH/hFxaTg==", "requires": { "cssnano-preset-advanced": "^5.3.8", "postcss": "^8.4.14", @@ -14379,9 +14279,9 @@ } }, "@docusaurus/logger": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.1.0.tgz", - "integrity": "sha512-uuJx2T6hDBg82joFeyobywPjSOIfeq05GfyKGHThVoXuXsu1KAzMDYcjoDxarb9CoHCI/Dor8R2MoL6zII8x1Q==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.2.0.tgz", + "integrity": "sha512-DF3j1cA5y2nNsu/vk8AG7xwpZu6f5MKkPPMaaIbgXLnWGfm6+wkOeW7kNrxnM95YOhKUkJUophX69nGUnLsm0A==", "requires": { "chalk": "^4.1.2", "tslib": "^2.4.0" @@ -14433,14 +14333,14 @@ } }, "@docusaurus/mdx-loader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.1.0.tgz", - "integrity": "sha512-i97hi7hbQjsD3/8OSFhLy7dbKGH8ryjEzOfyhQIn2CFBYOY3ko0vMVEf3IY9nD3Ld7amYzsZ8153RPkcnXA+Lg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.2.0.tgz", + "integrity": "sha512-X2bzo3T0jW0VhUU+XdQofcEeozXOTmKQMvc8tUnWRdTnCvj4XEcBVdC3g+/jftceluiwSTNRAX4VBOJdNt18jA==", "requires": { "@babel/parser": "^7.18.8", "@babel/traverse": "^7.18.8", - "@docusaurus/logger": "2.1.0", - "@docusaurus/utils": "2.1.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/utils": "2.2.0", "@mdx-js/mdx": "^1.6.22", "escape-html": "^1.0.3", "file-loader": "^6.2.0", @@ -14457,12 +14357,12 @@ } }, "@docusaurus/module-type-aliases": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.1.0.tgz", - "integrity": "sha512-Z8WZaK5cis3xEtyfOT817u9xgGUauT0PuuVo85ysnFRX8n7qLN1lTPCkC+aCmFm/UcV8h/W5T4NtIsst94UntQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.2.0.tgz", + "integrity": "sha512-wDGW4IHKoOr9YuJgy7uYuKWrDrSpsUSDHLZnWQYM9fN7D5EpSmYHjFruUpKWVyxLpD/Wh0rW8hYZwdjJIQUQCQ==", "requires": { "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/types": "2.1.0", + "@docusaurus/types": "2.2.0", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -14472,17 +14372,17 @@ } }, "@docusaurus/plugin-content-blog": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.1.0.tgz", - "integrity": "sha512-xEp6jlu92HMNUmyRBEeJ4mCW1s77aAEQO4Keez94cUY/Ap7G/r0Awa6xSLff7HL0Fjg8KK1bEbDy7q9voIavdg==", - "requires": { - "@docusaurus/core": "2.1.0", - "@docusaurus/logger": "2.1.0", - "@docusaurus/mdx-loader": "2.1.0", - "@docusaurus/types": "2.1.0", - "@docusaurus/utils": "2.1.0", - "@docusaurus/utils-common": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.2.0.tgz", + "integrity": "sha512-0mWBinEh0a5J2+8ZJXJXbrCk1tSTNf7Nm4tYAl5h2/xx+PvH/Bnu0V+7mMljYm/1QlDYALNIIaT/JcoZQFUN3w==", + "requires": { + "@docusaurus/core": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-common": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "cheerio": "^1.0.0-rc.12", "feed": "^4.2.2", "fs-extra": "^10.1.0", @@ -14495,17 +14395,17 @@ } }, "@docusaurus/plugin-content-docs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.1.0.tgz", - "integrity": "sha512-Rup5pqXrXlKGIC4VgwvioIhGWF7E/NNSlxv+JAxRYpik8VKlWsk9ysrdHIlpX+KJUCO9irnY21kQh2814mlp/Q==", - "requires": { - "@docusaurus/core": "2.1.0", - "@docusaurus/logger": "2.1.0", - "@docusaurus/mdx-loader": "2.1.0", - "@docusaurus/module-type-aliases": "2.1.0", - "@docusaurus/types": "2.1.0", - "@docusaurus/utils": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.2.0.tgz", + "integrity": "sha512-BOazBR0XjzsHE+2K1wpNxz5QZmrJgmm3+0Re0EVPYFGW8qndCWGNtXW/0lGKhecVPML8yyFeAmnUCIs7xM2wPw==", + "requires": { + "@docusaurus/core": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/module-type-aliases": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "@types/react-router-config": "^5.0.6", "combine-promises": "^1.1.0", "fs-extra": "^10.1.0", @@ -14518,88 +14418,88 @@ } }, "@docusaurus/plugin-content-pages": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.1.0.tgz", - "integrity": "sha512-SwZdDZRlObHNKXTnFo7W2aF6U5ZqNVI55Nw2GCBryL7oKQSLeI0lsrMlMXdzn+fS7OuBTd3MJBO1T4Zpz0i/+g==", - "requires": { - "@docusaurus/core": "2.1.0", - "@docusaurus/mdx-loader": "2.1.0", - "@docusaurus/types": "2.1.0", - "@docusaurus/utils": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.2.0.tgz", + "integrity": "sha512-+OTK3FQHk5WMvdelz8v19PbEbx+CNT6VSpx7nVOvMNs5yJCKvmqBJBQ2ZSxROxhVDYn+CZOlmyrC56NSXzHf6g==", + "requires": { + "@docusaurus/core": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "fs-extra": "^10.1.0", "tslib": "^2.4.0", "webpack": "^5.73.0" } }, "@docusaurus/plugin-debug": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.1.0.tgz", - "integrity": "sha512-8wsDq3OIfiy6440KLlp/qT5uk+WRHQXIXklNHEeZcar+Of0TZxCNe2FBpv+bzb/0qcdP45ia5i5WmR5OjN6DPw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.2.0.tgz", + "integrity": "sha512-p9vOep8+7OVl6r/NREEYxf4HMAjV8JMYJ7Bos5fCFO0Wyi9AZEo0sCTliRd7R8+dlJXZEgcngSdxAUo/Q+CJow==", "requires": { - "@docusaurus/core": "2.1.0", - "@docusaurus/types": "2.1.0", - "@docusaurus/utils": "2.1.0", + "@docusaurus/core": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", "fs-extra": "^10.1.0", "react-json-view": "^1.21.3", "tslib": "^2.4.0" } }, "@docusaurus/plugin-google-analytics": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.1.0.tgz", - "integrity": "sha512-4cgeqIly/wcFVbbWP03y1QJJBgH8W+Bv6AVbWnsXNOZa1yB3AO6hf3ZdeQH9x20v9T2pREogVgAH0rSoVnNsgg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.2.0.tgz", + "integrity": "sha512-+eZVVxVeEnV5nVQJdey9ZsfyEVMls6VyWTIj8SmX0k5EbqGvnIfET+J2pYEuKQnDIHxy+syRMoRM6AHXdHYGIg==", "requires": { - "@docusaurus/core": "2.1.0", - "@docusaurus/types": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "@docusaurus/core": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "tslib": "^2.4.0" } }, "@docusaurus/plugin-google-gtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.1.0.tgz", - "integrity": "sha512-/3aDlv2dMoCeiX2e+DTGvvrdTA+v3cKQV3DbmfsF4ENhvc5nKV23nth04Z3Vq0Ci1ui6Sn80TkhGk/tiCMW2AA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.2.0.tgz", + "integrity": "sha512-6SOgczP/dYdkqUMGTRqgxAS1eTp6MnJDAQMy8VCF1QKbWZmlkx4agHDexihqmYyCujTYHqDAhm1hV26EET54NQ==", "requires": { - "@docusaurus/core": "2.1.0", - "@docusaurus/types": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "@docusaurus/core": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "tslib": "^2.4.0" } }, "@docusaurus/plugin-sitemap": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.1.0.tgz", - "integrity": "sha512-2Y6Br8drlrZ/jN9MwMBl0aoi9GAjpfyfMBYpaQZXimbK+e9VjYnujXlvQ4SxtM60ASDgtHIAzfVFBkSR/MwRUw==", - "requires": { - "@docusaurus/core": "2.1.0", - "@docusaurus/logger": "2.1.0", - "@docusaurus/types": "2.1.0", - "@docusaurus/utils": "2.1.0", - "@docusaurus/utils-common": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.2.0.tgz", + "integrity": "sha512-0jAmyRDN/aI265CbWZNZuQpFqiZuo+5otk2MylU9iVrz/4J7gSc+ZJ9cy4EHrEsW7PV8s1w18hIEsmcA1YgkKg==", + "requires": { + "@docusaurus/core": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-common": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "fs-extra": "^10.1.0", "sitemap": "^7.1.1", "tslib": "^2.4.0" } }, "@docusaurus/preset-classic": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.1.0.tgz", - "integrity": "sha512-NQMnaq974K4BcSMXFSJBQ5itniw6RSyW+VT+6i90kGZzTwiuKZmsp0r9lC6BYAvvVMQUNJQwrETmlu7y2XKW7w==", - "requires": { - "@docusaurus/core": "2.1.0", - "@docusaurus/plugin-content-blog": "2.1.0", - "@docusaurus/plugin-content-docs": "2.1.0", - "@docusaurus/plugin-content-pages": "2.1.0", - "@docusaurus/plugin-debug": "2.1.0", - "@docusaurus/plugin-google-analytics": "2.1.0", - "@docusaurus/plugin-google-gtag": "2.1.0", - "@docusaurus/plugin-sitemap": "2.1.0", - "@docusaurus/theme-classic": "2.1.0", - "@docusaurus/theme-common": "2.1.0", - "@docusaurus/theme-search-algolia": "2.1.0", - "@docusaurus/types": "2.1.0" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.2.0.tgz", + "integrity": "sha512-yKIWPGNx7BT8v2wjFIWvYrS+nvN04W+UameSFf8lEiJk6pss0kL6SG2MRvyULiI3BDxH+tj6qe02ncpSPGwumg==", + "requires": { + "@docusaurus/core": "2.2.0", + "@docusaurus/plugin-content-blog": "2.2.0", + "@docusaurus/plugin-content-docs": "2.2.0", + "@docusaurus/plugin-content-pages": "2.2.0", + "@docusaurus/plugin-debug": "2.2.0", + "@docusaurus/plugin-google-analytics": "2.2.0", + "@docusaurus/plugin-google-gtag": "2.2.0", + "@docusaurus/plugin-sitemap": "2.2.0", + "@docusaurus/theme-classic": "2.2.0", + "@docusaurus/theme-common": "2.2.0", + "@docusaurus/theme-search-algolia": "2.2.0", + "@docusaurus/types": "2.2.0" } }, "@docusaurus/react-loadable": { @@ -14612,22 +14512,22 @@ } }, "@docusaurus/theme-classic": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.1.0.tgz", - "integrity": "sha512-xn8ZfNMsf7gaSy9+ClFnUu71o7oKgMo5noYSS1hy3svNifRTkrBp6+MReLDsmIaj3mLf2e7+JCBYKBFbaGzQng==", - "requires": { - "@docusaurus/core": "2.1.0", - "@docusaurus/mdx-loader": "2.1.0", - "@docusaurus/module-type-aliases": "2.1.0", - "@docusaurus/plugin-content-blog": "2.1.0", - "@docusaurus/plugin-content-docs": "2.1.0", - "@docusaurus/plugin-content-pages": "2.1.0", - "@docusaurus/theme-common": "2.1.0", - "@docusaurus/theme-translations": "2.1.0", - "@docusaurus/types": "2.1.0", - "@docusaurus/utils": "2.1.0", - "@docusaurus/utils-common": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.2.0.tgz", + "integrity": "sha512-kjbg/qJPwZ6H1CU/i9d4l/LcFgnuzeiGgMQlt6yPqKo0SOJIBMPuz7Rnu3r/WWbZFPi//o8acclacOzmXdUUEg==", + "requires": { + "@docusaurus/core": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/module-type-aliases": "2.2.0", + "@docusaurus/plugin-content-blog": "2.2.0", + "@docusaurus/plugin-content-docs": "2.2.0", + "@docusaurus/plugin-content-pages": "2.2.0", + "@docusaurus/theme-common": "2.2.0", + "@docusaurus/theme-translations": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-common": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "@mdx-js/react": "^1.6.22", "clsx": "^1.2.1", "copy-text-to-clipboard": "^3.0.1", @@ -14644,16 +14544,16 @@ } }, "@docusaurus/theme-common": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.1.0.tgz", - "integrity": "sha512-vT1otpVPbKux90YpZUnvknsn5zvpLf+AW1W0EDcpE9up4cDrPqfsh0QoxGHFJnobE2/qftsBFC19BneN4BH8Ag==", - "requires": { - "@docusaurus/mdx-loader": "2.1.0", - "@docusaurus/module-type-aliases": "2.1.0", - "@docusaurus/plugin-content-blog": "2.1.0", - "@docusaurus/plugin-content-docs": "2.1.0", - "@docusaurus/plugin-content-pages": "2.1.0", - "@docusaurus/utils": "2.1.0", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.2.0.tgz", + "integrity": "sha512-R8BnDjYoN90DCL75gP7qYQfSjyitXuP9TdzgsKDmSFPNyrdE3twtPNa2dIN+h+p/pr+PagfxwWbd6dn722A1Dw==", + "requires": { + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/module-type-aliases": "2.2.0", + "@docusaurus/plugin-content-blog": "2.2.0", + "@docusaurus/plugin-content-docs": "2.2.0", + "@docusaurus/plugin-content-pages": "2.2.0", + "@docusaurus/utils": "2.2.0", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -14665,18 +14565,18 @@ } }, "@docusaurus/theme-search-algolia": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.1.0.tgz", - "integrity": "sha512-rNBvi35VvENhucslEeVPOtbAzBdZY/9j55gdsweGV5bYoAXy4mHB6zTGjealcB4pJ6lJY4a5g75fXXMOlUqPfg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.2.0.tgz", + "integrity": "sha512-2h38B0tqlxgR2FZ9LpAkGrpDWVdXZ7vltfmTdX+4RsDs3A7khiNsmZB+x/x6sA4+G2V2CvrsPMlsYBy5X+cY1w==", "requires": { "@docsearch/react": "^3.1.1", - "@docusaurus/core": "2.1.0", - "@docusaurus/logger": "2.1.0", - "@docusaurus/plugin-content-docs": "2.1.0", - "@docusaurus/theme-common": "2.1.0", - "@docusaurus/theme-translations": "2.1.0", - "@docusaurus/utils": "2.1.0", - "@docusaurus/utils-validation": "2.1.0", + "@docusaurus/core": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/plugin-content-docs": "2.2.0", + "@docusaurus/theme-common": "2.2.0", + "@docusaurus/theme-translations": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", "algoliasearch": "^4.13.1", "algoliasearch-helper": "^3.10.0", "clsx": "^1.2.1", @@ -14688,18 +14588,18 @@ } }, "@docusaurus/theme-translations": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.1.0.tgz", - "integrity": "sha512-07n2akf2nqWvtJeMy3A+7oSGMuu5F673AovXVwY0aGAux1afzGCiqIFlYW3EP0CujvDJAEFSQi/Tetfh+95JNg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.2.0.tgz", + "integrity": "sha512-3T140AG11OjJrtKlY4pMZ5BzbGRDjNs2co5hJ6uYJG1bVWlhcaFGqkaZ5lCgKflaNHD7UHBHU9Ec5f69jTdd6w==", "requires": { "fs-extra": "^10.1.0", "tslib": "^2.4.0" } }, "@docusaurus/types": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.1.0.tgz", - "integrity": "sha512-BS1ebpJZnGG6esKqsjtEC9U9qSaPylPwlO7cQ1GaIE7J/kMZI3FITnNn0otXXu7c7ZTqhb6+8dOrG6fZn6fqzQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.2.0.tgz", + "integrity": "sha512-b6xxyoexfbRNRI8gjblzVOnLr4peCJhGbYGPpJ3LFqpi5nsFfoK4mmDLvWdeah0B7gmJeXabN7nQkFoqeSdmOw==", "requires": { "@types/history": "^4.7.11", "@types/react": "*", @@ -14712,11 +14612,11 @@ } }, "@docusaurus/utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.1.0.tgz", - "integrity": "sha512-fPvrfmAuC54n8MjZuG4IysaMdmvN5A/qr7iFLbSGSyDrsbP4fnui6KdZZIa/YOLIPLec8vjZ8RIITJqF18mx4A==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.2.0.tgz", + "integrity": "sha512-oNk3cjvx7Tt1Lgh/aeZAmFpGV2pDr5nHKrBVx6hTkzGhrnMuQqLt6UPlQjdYQ3QHXwyF/ZtZMO1D5Pfi0lu7SA==", "requires": { - "@docusaurus/logger": "2.1.0", + "@docusaurus/logger": "2.2.0", "@svgr/webpack": "^6.2.1", "file-loader": "^6.2.0", "fs-extra": "^10.1.0", @@ -14734,20 +14634,20 @@ } }, "@docusaurus/utils-common": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.1.0.tgz", - "integrity": "sha512-F2vgmt4yRFgRQR2vyEFGTWeyAdmgKbtmu3sjHObF0tjjx/pN0Iw/c6eCopaH34E6tc9nO0nvp01pwW+/86d1fg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.2.0.tgz", + "integrity": "sha512-qebnerHp+cyovdUseDQyYFvMW1n1nv61zGe5JJfoNQUnjKuApch3IVsz+/lZ9a38pId8kqehC1Ao2bW/s0ntDA==", "requires": { "tslib": "^2.4.0" } }, "@docusaurus/utils-validation": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.1.0.tgz", - "integrity": "sha512-AMJzWYKL3b7FLltKtDXNLO9Y649V2BXvrnRdnW2AA+PpBnYV78zKLSCz135cuWwRj1ajNtP4onbXdlnyvCijGQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.2.0.tgz", + "integrity": "sha512-I1hcsG3yoCkasOL5qQAYAfnmVoLei7apugT6m4crQjmDGxq+UkiRrq55UqmDDyZlac/6ax/JC0p+usZ6W4nVyg==", "requires": { - "@docusaurus/logger": "2.1.0", - "@docusaurus/utils": "2.1.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/utils": "2.2.0", "joi": "^17.6.0", "js-yaml": "^4.1.0", "tslib": "^2.4.0" @@ -16718,12 +16618,12 @@ } }, "cssnano-preset-advanced": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.8.tgz", - "integrity": "sha512-xUlLLnEB1LjpEik+zgRNlk8Y/koBPPtONZjp7JKbXigeAmCrFvq9H0pXW5jJV45bQWAlmJ0sKy+IMr0XxLYQZg==", + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.9.tgz", + "integrity": "sha512-njnh4pp1xCsibJcEHnWZb4EEzni0ePMqPuPNyuWT4Z+YeXmsgqNuTPIljXFEXhxGsWs9183JkXgHxc1TcsahIg==", "requires": { - "autoprefixer": "^10.3.7", - "cssnano-preset-default": "^5.2.12", + "autoprefixer": "^10.4.12", + "cssnano-preset-default": "^5.2.13", "postcss-discard-unused": "^5.1.0", "postcss-merge-idents": "^5.1.1", "postcss-reduce-idents": "^5.2.0", @@ -16731,24 +16631,24 @@ } }, "cssnano-preset-default": { - "version": "5.2.12", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", - "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", + "version": "5.2.13", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", + "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", "requires": { - "css-declaration-sorter": "^6.3.0", + "css-declaration-sorter": "^6.3.1", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.2", + "postcss-convert-values": "^5.1.3", "postcss-discard-comments": "^5.1.2", "postcss-discard-duplicates": "^5.1.0", "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.6", - "postcss-merge-rules": "^5.1.2", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.3", "postcss-minify-font-values": "^5.1.0", "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.3", + "postcss-minify-params": "^5.1.4", "postcss-minify-selectors": "^5.2.1", "postcss-normalize-charset": "^5.1.0", "postcss-normalize-display-values": "^5.1.0", @@ -16756,11 +16656,11 @@ "postcss-normalize-repeat-style": "^5.1.1", "postcss-normalize-string": "^5.1.0", "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", "postcss-normalize-url": "^5.1.0", "postcss-normalize-whitespace": "^5.1.1", "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-initial": "^5.1.1", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", "postcss-unique-selectors": "^5.1.1" @@ -17991,11 +17891,6 @@ } } }, - "htm": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/htm/-/htm-3.1.1.tgz", - "integrity": "sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==" - }, "html-entities": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", @@ -18629,11 +18524,6 @@ "yallist": "^4.0.0" } }, - "lunr-languages": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.9.0.tgz", - "integrity": "sha512-Be5vFuc8NAheOIjviCRms3ZqFFBlzns3u9DXpPSZvALetgnydAN0poV71pVLFn0keYy/s4VblMMkqewTLe+KPg==" - }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -18649,11 +18539,6 @@ } } }, - "mark.js": { - "version": "8.11.1", - "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", - "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==" - }, "markdown-escapes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", @@ -19309,11 +19194,11 @@ } }, "postcss-convert-values": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", - "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", "requires": { - "browserslist": "^4.20.3", + "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" } }, @@ -19369,20 +19254,20 @@ } }, "postcss-merge-longhand": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", - "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", "requires": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.0" + "stylehacks": "^5.1.1" } }, "postcss-merge-rules": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", - "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", + "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "cssnano-utils": "^3.1.0", "postcss-selector-parser": "^6.0.5" @@ -19407,11 +19292,11 @@ } }, "postcss-minify-params": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", - "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" } @@ -19503,11 +19388,11 @@ } }, "postcss-normalize-unicode": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", - "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" } }, @@ -19546,11 +19431,11 @@ } }, "postcss-reduce-initial": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", - "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", + "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" } }, @@ -19607,11 +19492,6 @@ "integrity": "sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==", "requires": {} }, - "preact": { - "version": "10.11.0", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.11.0.tgz", - "integrity": "sha512-Fk6+vB2kb6mSJfDgODq0YDhMfl0HNtK5+Uc9QqECO4nlyPAQwCI+BKyWO//idA7ikV7o+0Fm6LQmNuQi1wXI1w==" - }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", @@ -20044,9 +19924,9 @@ } }, "react-textarea-autosize": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.3.4.tgz", - "integrity": "sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.4.0.tgz", + "integrity": "sha512-YrTFaEHLgJsi8sJVYHBzYn+mkP3prGkmP2DKb/tm0t7CLJY5t1Rxix8070LAKb0wby7bl/lf2EeHkuMihMZMwQ==", "requires": { "@babel/runtime": "^7.10.2", "use-composed-ref": "^1.3.0", @@ -20962,11 +20842,11 @@ } }, "stylehacks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", - "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" } }, @@ -21173,9 +21053,9 @@ "peer": true }, "ua-parser-js": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", - "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==" + "version": "0.7.32", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.32.tgz", + "integrity": "sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw==" }, "unherit": { "version": "1.1.3", diff --git a/docs/package.json b/docs/package.json index fdfbbc50..b58d57ec 100644 --- a/docs/package.json +++ b/docs/package.json @@ -14,9 +14,9 @@ "write-heading-ids": "docusaurus write-heading-ids" }, "dependencies": { - "@cmfcmf/docusaurus-search-local": "^0.11.0", - "@docusaurus/core": "2.1.0", - "@docusaurus/preset-classic": "2.1.0", + "@docusaurus/core": "^2.2.0", + "@docusaurus/preset-classic": "^2.2.0", + "@docusaurus/theme-search-algolia": "^2.2.0", "@mdx-js/react": "^1.6.22", "clsx": "^1.1.1", "prism-react-renderer": "^1.3.1", diff --git a/docs/sidebars.js b/docs/sidebars.js index fd342f2c..96621506 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -14,7 +14,7 @@ /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ const sidebars = { // By default, Docusaurus generates a sidebar from the docs folder structure - tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], + tutorialSidebar: [{ type: "autogenerated", dirName: "." }], // But you can create a sidebar manually /* diff --git a/docs/src/components/LockedVideoEmbed/background.png b/docs/src/components/LockedVideoEmbed/background.png new file mode 100644 index 00000000..6ec0a2c8 Binary files /dev/null and b/docs/src/components/LockedVideoEmbed/background.png differ diff --git a/docs/src/components/LockedVideoEmbed/index.js b/docs/src/components/LockedVideoEmbed/index.js new file mode 100644 index 00000000..878bf857 --- /dev/null +++ b/docs/src/components/LockedVideoEmbed/index.js @@ -0,0 +1,128 @@ +import React from "react"; +import Background from "./background.png"; + +export default function LockedVideoEmbed() { + return ( +
+
+
+ + + + + + + + + + + + + + + +

+ This video is locked. Please{" "} + + purchase the course + {" "} + to view it. +

+
+
+
+ ); +} diff --git a/docs/src/components/VideoEmbed/index.js b/docs/src/components/VideoEmbed/index.js new file mode 100644 index 00000000..e589c0ec --- /dev/null +++ b/docs/src/components/VideoEmbed/index.js @@ -0,0 +1,21 @@ +import React from "react"; + +export default function VideoEmbed({ url }) { + return ( +
+ +
+ ); +} diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css index 1b895979..9296386c 100644 --- a/docs/src/css/custom.css +++ b/docs/src/css/custom.css @@ -52,4 +52,74 @@ padding: 1rem; background-color: rgba(46, 133, 85, 0.15); border-radius: 8px; +} + +.menu { + font-weight: normal; +} + +.menu__caret::before, .menu__link--sublist-caret::after { + background: url("/img/folder-closed.svg") no-repeat; + transform: none; +} + +.menu__list-item--collapsed .menu__link--sublist::after, .menu__list-item--collapsed .menu__caret::before { + transform: none; +} + +.menu__list-item-collapsible .menu__link--sublist[aria-expanded='true']::after, +.menu__list-item-collapsible .menu__link--sublist[aria-expanded='true'] + button::before { + background: url("/img/folder-open.svg") no-repeat; +} + +.menu__list-item-collapsible .menu__link--sublist[aria-expanded='false']:hover::after, +.menu__list-item-collapsible .menu__link--sublist[aria-expanded='false'] + button:hover::before { + fill: var(--ifm-color-primary-lightest); +} + +.menu__link { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.menu__list-item-collapsible, .theme-doc-sidebar-item-link-level-1 { + font-weight: var(--ifm-font-weight-bold); +} + +.theme-doc-sidebar-item-category-level-1 .menu__list-item .menu__link { + border-left: 1px solid var(--ifm-color-gray-200); +} + +.theme-doc-sidebar-item-category-level-1 .menu__list-item .menu__link:hover { + border-left: 1px solid var(--ifm-color-gray-600); + color: var(--ifm-color-gray-900); +} + +.theme-doc-sidebar-item-category-level-1 .menu__list-item .menu__link--active { + border-left: 1px solid var(--ifm-color-primary-lightest); + font-weight: var(--ifm-font-weight-semibold); +} + +.theme-doc-sidebar-item-category-level-1 .menu__list-item .menu__link--active:hover { + color: var(--ifm-color-primary); +} + +.menu__link--active:not(.menu__link--sublist), .menu__list-item-collapsible--active { + background: unset; +} + +.menu__link:hover, .menu__caret:hover { + background: inherit; +} + +.menu__list-item:not(:first-child) { + margin-top: 0; +} + +.menu__link[href]:hover, .menu__caret:hover { + color: var(--ifm-color-primary); +} + +.menu__list-item-collapsible:hover { + background: inherit; } \ No newline at end of file diff --git a/docs/src/pages/assets/in-import-all-sections-file-select.png b/docs/src/pages/assets/in-import-all-sections-file-select.png new file mode 100644 index 00000000..eb3c7eb2 Binary files /dev/null and b/docs/src/pages/assets/in-import-all-sections-file-select.png differ diff --git a/docs/src/pages/assets/in-import-all-sections-success.png b/docs/src/pages/assets/in-import-all-sections-success.png new file mode 100644 index 00000000..573311e7 Binary files /dev/null and b/docs/src/pages/assets/in-import-all-sections-success.png differ diff --git a/docs/src/pages/assets/in-import-file-select.png b/docs/src/pages/assets/in-import-file-select.png new file mode 100644 index 00000000..0f77844e Binary files /dev/null and b/docs/src/pages/assets/in-import-file-select.png differ diff --git a/docs/src/pages/assets/in-import-file.png b/docs/src/pages/assets/in-import-file.png new file mode 100644 index 00000000..d93bcb52 Binary files /dev/null and b/docs/src/pages/assets/in-import-file.png differ diff --git a/docs/src/pages/assets/in-import-success.png b/docs/src/pages/assets/in-import-success.png new file mode 100644 index 00000000..335e9635 Binary files /dev/null and b/docs/src/pages/assets/in-import-success.png differ diff --git a/docs/src/pages/assets/in-section-import-s03.png b/docs/src/pages/assets/in-section-import-s03.png new file mode 100644 index 00000000..41fc0c5c Binary files /dev/null and b/docs/src/pages/assets/in-section-import-s03.png differ diff --git a/docs/src/pages/index.js b/docs/src/pages/index.js index 7209b8a0..3e06ec44 100644 --- a/docs/src/pages/index.js +++ b/docs/src/pages/index.js @@ -5,6 +5,7 @@ import Link from "@docusaurus/Link"; import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; import styles from "./index.module.css"; import HomepageFeatures from "@site/src/components/HomepageFeatures"; +import VideoEmbed from "@site/src/components/VideoEmbed"; function HomepageHeader() { const { siteConfig } = useDocusaurusContext(); @@ -35,6 +36,16 @@ export default function Home() { >
+
+ +
diff --git a/docs/src/pages/insomnia-files.md b/docs/src/pages/insomnia-files.md new file mode 100644 index 00000000..67bc98b0 --- /dev/null +++ b/docs/src/pages/insomnia-files.md @@ -0,0 +1,45 @@ +# Insomnia Files for this course + +In this course, we use [Insomnia](https://insomnia.rest/) to test our REST API as we develop it. It's a great tool, and relatively straightforward to use! + +To make it easier for you, we've prepared a few files that you can import directly into your Insomnia app. Each section has its own file, and there's also a file which contains [all sections](#all-section-file-project). + +:::tip Get the files +You can download the entire GitHub repository as a .zip file ([see how here](https://github.com/tecladocode/rest-apis-flask-python#getting-started)). Then, extract it and you'll be able to find the JSON files for Insomnia. +::: + +## Per-section files (collections) + +Every section where we change the API endpoints, we've prepared an Insomnia file you can import. To import the file, just go to your Insomnia project, click on the "Create" button, and select "Import from file". + +![Screenshot showing dropdown appears when clicking 'create' button, select import from file there](./assets/in-import-file.png) + +Then, find the appropriate file and you should see the request collection being created. Files are in each section folder where API changes were introduced, and they are named `Insomnia_sectionX.json`. + +![Screenshot showing instructor finding the JSON file to import](./assets/in-import-file-select.png) + +The Insomnia project should now show your new collection: + +![Screenshot showing the import succeeded and the collection appears](./assets/in-import-success.png) + +Clicking on it should let you access the requests, which may be inside folders. + +![Screenshot showing the collection open, with the Stores folder expanded and the 'Create store' endpoint selected](./assets/in-section-import-s03.png) + +## All-section file (project) + +To import all sections at the same time, you can use the all-section file. It's in the `docs/docs/` folder of the repository, and it's called [`Insomnia_all_sections.json`](https://github.com/tecladocode/rest-apis-flask-python/blob/develop/docs/docs/Insomnia_all_sections.json). + +To import it, follow the same process as before but using this file. It will create multiple request collections. + +First, find the `Insomnia_all_sections.json` file when importing: + +![Screenshot showing the instructor finding the all-sections file when importing using Insomnia](./assets/in-import-all-sections-file-select.png) + +This should import the request collections for all sections: + +![Screenshot showing the import succeeding, and request collections appear in Insomnia for every section where API changes were introduced](./assets/in-import-all-sections-success.png) + +That's it! With this, you can either import sections individually, or all sections together to follow the entire course. + +Now let's start with the [course content](/docs/course_intro/)! \ No newline at end of file diff --git a/docs/src/pages/markdown-page.md b/docs/src/pages/markdown-page.md deleted file mode 100644 index 9756c5b6..00000000 --- a/docs/src/pages/markdown-page.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Markdown page example ---- - -# Markdown page example - -You don't need React to write simple standalone pages. diff --git a/docs/static/img/folder-closed.svg b/docs/static/img/folder-closed.svg new file mode 100644 index 00000000..e6f3d22f --- /dev/null +++ b/docs/static/img/folder-closed.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/static/img/folder-open.svg b/docs/static/img/folder-open.svg new file mode 100644 index 00000000..45698086 --- /dev/null +++ b/docs/static/img/folder-open.svg @@ -0,0 +1,3 @@ + + + diff --git a/project/01-first-rest-api/app.py b/project/01-first-rest-api/app.py index b1e6c39d..f89963cc 100644 --- a/project/01-first-rest-api/app.py +++ b/project/01-first-rest-api/app.py @@ -1,57 +1,54 @@ -import uuid from flask import Flask, request app = Flask(__name__) -stores = {} -items = {} - - -@app.get("/item/") -def get_item(id): - try: - return items[id] - except KeyError: - return {"message": "Item not found"}, 404 - - -@app.post("/item") -def create_item(): - request_data = request.get_json() - new_item_id = uuid.uuid4().hex - new_item = { - "name": request_data["name"], - "price": request_data["price"], - "store_id": request_data["store_id"], +stores = [ + { + "name": "My Store", + "items": [ + { + "name": "Chair", + "price": 15.99 + } + ] } - items[new_item_id] = new_item - return new_item - - -@app.get("/item") -def get_all_items(): - return {"items": list(items.values())} +] - -@app.get("/store/") -def get_store(id): - try: - # Here you might also want to add the items in this store - # We'll do that later on in the course - return stores[id] - except KeyError: - return {"message": "Store not found"}, 404 +@app.get("/store") +def get_stores(): + return {"stores": stores} @app.post("/store") def create_store(): request_data = request.get_json() - new_store_id = uuid.uuid4().hex - new_store = {"id": new_store_id, "name": request_data["name"]} - stores[new_store_id] = new_store + new_store = {"name": request_data["name"], "items": []} + stores.append(new_store) return new_store, 201 -@app.get("/store") -def get_stores(): - return {"stores": list(stores.values())} +@app.post("/store//item") +def create_item(name): + request_data = request.get_json() + for store in stores: + if store["name"] == name: + new_item = {"name": request_data["name"], "price": request_data["price"]} + store["items"].append(new_item) + return new_item, 201 + return {"message": "Store not found"}, 404 + + +@app.get("/store/") +def get_store(name): + for store in stores: + if store["name"] == name: + return store + return {"message": "Store not found"}, 404 + + +@app.get("/store//item") +def get_item_in_store(name): + for store in stores: + if store["name"] == name: + return {"items": store["items"]} + return {"message": "Store not found"}, 404 diff --git a/project/02-first-rest-api-docker/app.py b/project/02-first-rest-api-docker/app.py index b1e6c39d..f89963cc 100644 --- a/project/02-first-rest-api-docker/app.py +++ b/project/02-first-rest-api-docker/app.py @@ -1,57 +1,54 @@ -import uuid from flask import Flask, request app = Flask(__name__) -stores = {} -items = {} - - -@app.get("/item/") -def get_item(id): - try: - return items[id] - except KeyError: - return {"message": "Item not found"}, 404 - - -@app.post("/item") -def create_item(): - request_data = request.get_json() - new_item_id = uuid.uuid4().hex - new_item = { - "name": request_data["name"], - "price": request_data["price"], - "store_id": request_data["store_id"], +stores = [ + { + "name": "My Store", + "items": [ + { + "name": "Chair", + "price": 15.99 + } + ] } - items[new_item_id] = new_item - return new_item - - -@app.get("/item") -def get_all_items(): - return {"items": list(items.values())} +] - -@app.get("/store/") -def get_store(id): - try: - # Here you might also want to add the items in this store - # We'll do that later on in the course - return stores[id] - except KeyError: - return {"message": "Store not found"}, 404 +@app.get("/store") +def get_stores(): + return {"stores": stores} @app.post("/store") def create_store(): request_data = request.get_json() - new_store_id = uuid.uuid4().hex - new_store = {"id": new_store_id, "name": request_data["name"]} - stores[new_store_id] = new_store + new_store = {"name": request_data["name"], "items": []} + stores.append(new_store) return new_store, 201 -@app.get("/store") -def get_stores(): - return {"stores": list(stores.values())} +@app.post("/store//item") +def create_item(name): + request_data = request.get_json() + for store in stores: + if store["name"] == name: + new_item = {"name": request_data["name"], "price": request_data["price"]} + store["items"].append(new_item) + return new_item, 201 + return {"message": "Store not found"}, 404 + + +@app.get("/store/") +def get_store(name): + for store in stores: + if store["name"] == name: + return store + return {"message": "Store not found"}, 404 + + +@app.get("/store//item") +def get_item_in_store(name): + for store in stores: + if store["name"] == name: + return {"items": store["items"]} + return {"message": "Store not found"}, 404 diff --git a/project/05-add-many-to-many/models/tag.py b/project/05-add-many-to-many/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/project/05-add-many-to-many/models/tag.py +++ b/project/05-add-many-to-many/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") diff --git a/project/06-add-db-migrations/models/tag.py b/project/06-add-db-migrations/models/tag.py index ec3e3530..5e92c9fa 100644 --- a/project/06-add-db-migrations/models/tag.py +++ b/project/06-add-db-migrations/models/tag.py @@ -6,7 +6,7 @@ class TagModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) - store_id = db.Column(db.String(), db.ForeignKey("stores.id"), nullable=False) + store_id = db.Column(db.Integer(), db.ForeignKey("stores.id"), nullable=False) store = db.relationship("StoreModel", back_populates="tags") items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags")