Metadata-Version: 2.1
Name: bottle-cors-plugin
Version: 0.1.5
Summary: The easiest way to use cors on bottle
Home-page: UNKNOWN
Author: Alfonso Villalobos
Author-email: alfonso@codepeat.com
License: MIT
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3.7
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
Requires-Dist: bottle (>=0.12)

bottle-cors-plugin
==================

The most easy way to implement cors on your bottle py web application

Installing the plugin
---------------------

::

    pip install bottle-cors-plugin

after this on your bottle app you need to import cors_plugin and install
for example.

.. code-block:: python

    # -*- coding: utf-8 -*-
    from bottle import app, response, route, run
    from cors import cors_plugin

    @route('/', method='GET')
    def landing():
      response.content_type = 'application/json'
      return {'status': 'Works'}

    #Confugure the server
    app = app()
    app.install(cors_plugin('*'))

    if name == "__main__":
      run(host='localhost', port=7000)

On the cors_plugin function you can send a simple string or array of origins
this variable will set globaly on the plugin so you just set-it one time

.. code-block:: python

    cors_plugin('*')

or

.. code-block:: python

    cors_plugin(['google.com', 'youtube.com'])

Aborts
------

for normal abort errors you need to import the abort of the cors_plugin like
this

.. code-block:: python

    from bottle_cors_plugin import abort


    @route('/', method='GET')
    def landing():
      response.content_type = 'application/json'
      abort(500, 'Hola')
      return {'status': 'Works'}

It works with all errors, and for custom error handler just import the cors_headers
to apply on the function example like this

.. code-block:: python

    # -*- coding: utf-8 -*-
    from import_env import os
    from bottle import error, response
    from bottle_cors_plugin import cors_headers

    error_log = error

    for status_code in range(200, 600):
    @error(status_code)
    def errorCustom(error_log):
        cors_headers()
        error_log.content_type = 'application/json'
        return error_log.body


