- Nothing changed yet.
- Bug fix for JSONAPI adapter that occurred when a resource with no primary keys was passed to the adapter causing it to break
- The HalAdapter now includes fully qualified resources in the _embedded property. There is no difference in how top-level vs embedded resources are constructed at this point.
- Fixed setup.py to only include ripozo packages.
- Added remove_properties attribute to Relationship instantiation. This allows a user to keep properties in both the parent and the child such as passing a parent's id to the child while keeping it in its properties.
- Added FilterRelationship class which provides a shortcut to creating Relationships that point to a filtering against a list of resources.
- Added manager_translate decorator which will replace the translate decorator when using manager generated fields to translate and decorate an @apimethod. Using translate for manager_fields will be deprecated in v2.0
- Moved up some imports for ease of use
- Bug fix for BasicJSONAdapter.
- Base adapter got a format_request method that must be called by the dispatcher. This allows the adapter to appropriately reformat the request into a ripozo acceptable format.
- Warnings raised in base adapter's format_request and format_exception since these must be implemented by the adapter in version 2.0.0
- All adapters explicitly override format_exception and format_request
- Fixed join_url_parts bug so that responses always return unicode objects (str type in python 3)
- Added an adapter that meets the JSON API specification
- Nothing changed yet.
- Fixed bug in url for the resource instance returned by the RetrieveList mixin.
- manager_field_validators attribute in @translate decorator removed. It's now expected that you explicitly call translate_fields in your method if you wish to translate fields in an inheritable class apimethod
- Warnings raised when a class registered with a dispatcher has a relationship/link with a relation that does not exist in the ResourceMetaClass registry.
- renamed BoringJSONAdapter to BasicJSONAdapter
- Templated relationships now available.
- Route extensions available on ResourceBase instances. This allows a user to append part of a url to a resource base so that the .url property renders properly. This is helpful when route is defined on an apimethod.
- Added valid_fields static method to BaseManager which is helper for getting valid fields.
- pylint shit.
- Moved dispatch_base up and removed dispatch package
- Moved manager_base and removed manager package.
- Added append_slash class attribute to ResourceBase. Setting this attribute to True automatically appends a slash to the end of the base_url and base_url_sans_pks. Defaults to False.
- Renamed viewsets package to resources
- Many underscore fields were removed with the exception of _relationships and _links
- Fields default to checking the Query string, request body and url parameters for argument if no arg_type is specified.
- Query args can be specified in relationships. Every argument available will be appended to the query string
- query args on a resource is now a list that simply pulls from the properties.
- Removed translate method from request container. Instead the request object is now injected into the translate_fields method from ripozo.viewsets.fields.base module
- Using Accept-Types instead of Content-Type.
- RetrieveList now compatible with Single resource rest mixins
- Added RetrieveRetrieveList restmixin.
- Relationships now take a no pks parameter which specifies that the resource in question should not use the pks (helpful for RetrieveRetrieveList and such)
- Fixed bug in DictField that removed key-value pairs not explicitly specified.
- Added update_fields class property to Base Manager.
- Added DictField to top level import in fields.
- Fixes for RetrieveRetrieveList bad translation.
- Added DictField which can translate and validate dictionary fields (and their subfields)
- Endpoints that are generated now use "<class name>__<function_name>" as the default endpoint name
- Removed check fore the base rest endpoint. This doesn't take into account dispatchers having url_prefixes
- Added get method to RequestContainer which searches through the url_params, query_args, and then the body_args to find a value
- Added create_fields property to the BaseManager. This allows a user to specify which fields are valid for creation.
- related resources and linked resources named tuples
- Removed ripozo_tests dependency. It is now included in the package itself.
- Added base_url_sans_pks classproperty to ResourceBase
- Create is now an individual resource rather than a list resource
- Added CreateRetrieve, CreateRetrieveUpdate, andCreateRetrieveUpdateDelete mixins
- Removed CreateRetrieveList mixin
- Overhauled how links and relationships are generated
- Lots of bugs
- Added include_relationships keyword argument to ResourceBase __init__ for performance reasons
- Nothing changed yet.
- Changed location of classproperty decorator from
ripozo.utilities
toripozo.decorators
- Fixed bug with wrapping _apiclassmethod decorated functions.
- Fixed error with formatting exceptions
- Added links
- Added _list_fields attribute to BaseManager for more efficient querying when necessary
- Moved getting the adapter class based on the format type in the dispatcher to its own method.
- Fields no longer have a default.
- Adapter.extra_headers returns a dictionary instead of a list
- Fields can specify an error message.
- ListField added
- Fixed deep inheritance issue with translate decorator.
- Added the name of the relationship as an item in the rel list in the SIREN adapter.
- Endpoint name
- Fixed bug with RetrieveRetrieveList mixin
- Added
picky_processor
which specifically includes processors to include or exclude. - pre and post processors now get the name of the function being called. before running
- Fucked up...
- Fixed the bug where inheritance of abstract methods resulted in mutable common endpoint_dictionaries
- endpoint_dictionary is now a method and not a property
- Fixed bug that resulted in multiple forward slashes in a row on a url
- Added method to RequestContainer object
- Imported Relationship and ListRelationship into relationships.__init__.py module for more intuitive access
- Imported HtmlAdapter to adapters.__init__.py for more intuitive imports.
- Including html adapter templates in package
- Added generic CRUD+L mixins. These are included merely for convience
- Required fields validation can be skipped. In other words, you can now specify that a field does not need to be present when validating
- Code cleanup
- Some updates to the release process.
- Started using zest.releaser for managing releases.
- Added
register_resources
method to the DispatcherBase class