Change Log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

0.7.0 (2020-12-07)

  • Added entries in the querystring:
    • primary-keys[key1:key2:…:keyn]=va1:va2:…:van,vb1:vb2:…:vbn
    • ~primary-keys[key1:key2:…:keyn]=va1:va2:…:van,vb1:vb2:…:vbn
    • composite-filter[key1:key2:…:keyn][op1:op2:…:opn]=va1:va2:…:van,vb1:vb2:…:vbn
    • ~composite-filter[key1:key2:…:keyn][op1:op2:…:opn]=va1:va2:…:van,vb1:vb2:…:vbn

0.6.0 (2020-05-15)

Added

  • CrudResource can now allow calls to certain http verb without being logged.

    * allow_unauthenticated_user_to_access_to_all_verbs
    * allow_unauthenticated_user_to_access_to_collection_get
    * allow_unauthenticated_user_to_access_to_collection_post
    * allow_unauthenticated_user_to_access_to_collection_patch
    * allow_unauthenticated_user_to_access_to_collection_put
    * allow_unauthenticated_user_to_access_to_collection_delete
    * allow_unauthenticated_user_to_access_to_get
    * allow_unauthenticated_user_to_access_to_delete
    * allow_unauthenticated_user_to_access_to_patch
    * allow_unauthenticated_user_to_access_to_put
    

Refactored

  • Updated the order_by[operator]=fieldname by order_by[fieldname]=operator because more than one order by can be send

    Warning

    the oldest order_by is deprecated and will be remove later

0.5.0 (2019-06-21)

Refactored

  • Tag can now be grouped

    @Adapter.tags('green', 'blue')
    def tag_is_green_or_blue(self, querystring, query, tags):
        query = query.join(self.registry.Customer.tags, aliased=True)
        query = query.filter(self.registry.Tag.name.in_(tags))
        return query
    
  • adapter_cls is renamed QueryStringAdapter. the compatibility is keeped and a DeprecationWarning is sent

0.4.0 (2019-01-03)

Added

  • CrudResource.execute(name, kwarg) decorator to define Service on:

    • collection_path/execute/name: validator on the body
    • path/execute/name: validator on the path and the body
    @resource(collection_path='/foo', path='/foo/{bar}')
    class MyResource(CrudResource):
        @CrudResource.service('print', collection=True)
        def plop(self):  # /foo/execute/print
            # verb : POST (default), GET, PUT, PATCH, DELETE, ...
            # schema optional
            # query = self.get_querystring('rest action given to get_model')
            # body = self.body
            ...
    
        @CrudResource.service('print')
        def otherplop(self):  # /foo/{bar}/execute/print
            # verb : POST (default), GET, PUT, PATCH, DELETE, ...
            # schema optional for body, pathschema for path
            # body = self.body
            ...
    
  • Collection views to update and delete collection defined by querystring:

    • collection_put
    • collection_patch
    • collection_delete

Refactored

  • If a request.error is found during the execution of a view in the crud resource, then a registry.rollback will be done
  • Collection post is waiting a list of dict, Now it is possible to create more than one entry

0.3.0 (2018-12-07)

Removed

  • Compatibility with python 3.3

Fixed

  • QueryString filters and tags are executed only one time by query
  • in the context manager to save the error, the registry is now rollbacked

Refactored

  • The error field is now the key of the errors description dict (All validation errors messages are now dict)

0.2.1 (2018-10-06)

Added

  • MANIFEST.in file

Removed

  • VERSION file

0.2.0 (2018-10-01)

Added

  • context key in querystring. The goal is to add some informations to help custom filter and tag to build their query

Refactored

  • Now the querystring desarializer use regex to get the informations

0.1.0 (2018-09-26)

Added

  • CRUDResource class to define REST api
  • service behaviours