v1.0.0
Version 1.0.0
Commits
- [5201dc8] update requirements
- [4fce58f] minor bugfix
- [35a4aab] skip tests for now
- [f9381a3] add github workflows
- [9f3df71] add requirements testing
- [09d20d8] add pre-commit config
- [5de0751] pre-commit stuff
- [cd49bab] setup.py: prep for own package
- [055e0e0] open dependencies
- [0a3373f] use mimerender-pr36
- [701a262] operators: remove filter variables
- [bf700dd] fix date before/after operators
- [8010b6d] operators: missing self
- [2ff6794] operators: better get_bool_value
- [c4d5f7c] replace _order_by/order with _sort
- [50e65ba] enable more operators
- [ff852e9] skip_post_save
- [5192d3b] dependabot PRs
- [274c4ba] revert check dirty fields to enable related resources save
- [91be2ba] make sure to retrieve all fields on PUT
- [6dbec4c] render_gz: protect dataframe keys for csv export
- [9e181c5] better json and csv export
- [fc46724] multiple objects can point to same related doc
- [45caa69] bugfix and allow pagination in Download
- [de1be3d] ignore non-DBRef in fetch_related_resources
- [648f892] avoid redundant serialization on download
- [0768fbc] serialize DBRefs too
- [af4c2e5] Bump flask from 1.1.4 to 2.0.1
- [0636366] bump requirements
- [381a4f9] fix get_queryset
- [b22c87e] ValidationError messages
- [10f918b] reimplement fetch_related_resources
- [f06fa43] dependabot: fix target branch
- [d0d0166] update bugfixes for EmbeddedDocumentListField and BaseDict
- [5543e0d] operators: fast_float; Date
- [9f5c53c] update related resources in ListFields
- [c94c129] avoid timeout during process_objects
- [b751fa9] cheaper way to convert queryset to list
- [509298c] views: rm unneeded module variable
- [f2ffc71] catch NaN values
- [f761cda] set limit for BulkUpdate/Delete
- [a4d0479] Create dependabot.yml (#6)
- [36a50ea] bump reqs, remove cleancat
- [5321f3e] zipstream not used anymore
- [4cd95d9] bump fastnumbers
- [f082363] use bulk_update_limit
- [0732409] remove dangling import; comment reformat
- [b02c3e6] use fastnumbers for index access
- [9b7b247] avoid ServerTimeouts on BulkCreate/Delete
- [8bd70bc] catch undefined exceptions, print traceback
- [255a898] apply qfilter after params
- [8c16a74] serialize all fields of related resources for download
- [0e543dd] add unflatten dep
- [94ccb39] allow_nan and catch list field
- [b760d92] unflatten raw_data, minor cleanup
- [aaf69ef] use params and set_value
- [6e7ebd2] set dict field if unset previously via null
- [665200f] check last_modified for S3 object update
- [6079049] better download logs
- [b055add] catch _Missing
- [02b5122] use ma.utils.get/set_value if available
- [2378f47] channel bugfix
- [aee404c] download SSE messages
- [e2a6309] glom & LazyReference
- [ed83495] include document fields back in queryset mask
- [34be238] apply field pagination to queryset
- [4ea378e] use getattr; allow dynamic fields in queryset mask
- [906a1ed] fix time import
- [f9753db] save progress on S3 downloads
- [d5a20c0] use glom for path access; skip paginate_fields on Download
- [fc0955c] rm bulk_update_limit, respect skip/limit, include has_more/counts
- [0e625e9] BulkCreate and BulkDelete
- [b17a8af] render_gz: use cherrypicker for csv
- [bafe8fd] catch unset value in csv export
- [e2b426c] short_mime, render_gz
- [fd832b0] make_zip mimerender, add Download method
- [a640d0a] check dot delimiter for primary key
- [3b3a6ec] also check for id
- [854a952] return internal dotty dict, check primary key
- [d990155] switch to dotty_dict
- [48a9614] allow DictField update/set to None
- [5fa2000] enable sort direction
- [15415cb] fix DictField update, only return updated fields
- [b9b7c11] support partial DictField update
- [24ac2c4] catch Marshmallow validation errors
- [81886dc] enable regex patterns for ordering
- [3aa5343] enable pattern filters
- [60efe89] add page/per_page params as option for _skip/_limit
- [93946ab] add total_count/pages
- [389abaa] check total_pages before field pagination
- [bfdf194] raise error if total_pages too high
- [82f54d1] get_with_list_index; bugfix serialize_list_field
- [cd10c46] get_queryset: fix mask for nested fields
- [79b0292] get_queryset: fix mask
- [03c29af] mongoengine3
- [08e404f] operators: add swagger type
- [8c0be9c] paginate fields
- [2f9c082] get full object when updating
- [b6f79e2] apply mask in get_queryset
- [9c7cbee] enable nested _fields
- [ac523b6] try_float for numeric operators
- [5671fba] partial validation and skip primary_key in PUT
- [7c553ac] marshmallow_mongoengine schema, optional cleancat
- [00dc7ad] separately delete last object in BulkDelete
- [3c9ce3b] implement BulkCreate and BulkDelete
- [5accf69] improved error handling
- [d600580] support Decimal128 in MongoEncoder
- [f5e7f90] forward kwargs; skip_post_delete option
- [dbe7103] set view_method when serializing
- [12a3db4] use list(dict.fromkeys()) to maintain order
- [b785449] static get_optional_fields()
- [d7a1784] support LazyReferenceField
- [a30770b] operators: add type and try float
- [b2537ef] separate register class for app factory
- [c3bab7b] consistent method names
- [6422f16] update requirements and test config
- [c104cde] Fix empty "xx__in=" filters (closeio#131)
- [4c2c00b] Call
fetch_related_resourcesfor a single object, too. (closeio#130) - [672ac7d] Document how Operators work and how you can create your own. (closeio#128)
- [ce260b1] Fix docstring typo, respresentation -> representation (closeio#127)
- [268455c] Some attributes don't make sense if we don't have a request (closeio#126)
- [9a04099] Do not depend on flask-views package (closeio#121)
- [5634697] Merge pull request closeio#122 from closeio/mongorestexc-pass
- [43bf428] Fix .message on py3
- [5ed3641] Reduce MongoRestException to pass for py3 compat
- [94b4ea8] Merge pull request closeio#123 from closeio/update-pymongo
- [265ae81] Fix lint
- [a25949e] Test 3.6
- [4b51a53] Update pymongo
- [4c4bb1c] Ignore non-pep8 warning
- [4fe0607] Merge pull request closeio#119 from gzqichang/master
- [c8dcd64] fix error when change an object with {}.
- [015628c] Remove old circle.yml
- [6cceceb] Upgrade to CircleCI v2
- [e399552] v0.2.3 ver bump
- [937c751] Merge pull request closeio#114 from closeio/extensible-resource-serialize-fields
- [a4f8d25] Extensible resource field serialization
- [91d1e7b] v0.2.2
- [d8ff7ef] Fix unicode validation errors + tests (closeio#101)
- [9bad170] v0.2.1
- [9505668] Merge pull request closeio#100 from closeio/fix-decoding
- [73d0373] Fix decoding unicode JSON payload in Python 2.x
- [26fc8a6] v0.2
- [c10b0ce] Merge pull request closeio#99 from closeio/python3-support
- [f139b21] Only access document_name if necessary
- [c86b67c] Unnecessary import
- [3af075e] Use Circle Python versions
- [6686c1b] Support for Python 3 / latest MongoEngine
- [b86eb89] Modified import statements to make align with flask_* (closeio#97)
- [bc10815] Merge pull request closeio#96 from closeio/test-fixes
- [9c41f23] Fix tests that could fail due to dictionary key order. Thanks @saurabh1e for uncovering this in closeio#95
- [b5a1f00] Run tests via tox
- [cf5535b] Bulk update limit (closeio#92)
- [1d88ba9] Document a bunch of Resource methods/fields + style tweaks (closeio#91)
- [7d7fb74] Bulk update improvements: (closeio#89)
- [0a68c24] flake8 settings should have gone into setup.cfg (closeio#90)
- [61eac3b] Don't return parent's child_document_resources in subclasses. (closeio#87)
- [c81fb7e] Merge pull request closeio#84 from closeio/flake8
- [95520fe] tighten up flake8's config
- [504ecaa] use flake8 before the regular tests
- [7a9ff54] Merge pull request closeio#83 from closeio/flake8
- [1f62cde] add flake8 to the project
- [5a360b3] Merge pull request closeio#80 from closeio/subresource-delegation
- [61583be] More clear condition when to delegate
- [3241177] overridable Resource#get_max_limit
- [74f2a6e] Fixed docstring formatting
- [d32dec4] Improved subresource creation, added docs
- [a04ab7d] Fixed delegation logic
- [7ffc47a] Moved .data assignment to _create_subresource
- [059fc3c] Delegate to subresource when validating and updating
- [bc363e8] allow_nan is not an arg of JSONEncoder.default
- [e7f009a] add a bad Accept header test
- [e0174e2] Merge pull request #76 from closeio/strict-json-validation
- [4523837] raise an error instead of responding with invalid JSON + document Resource.serialize
- [775a25f] remove travis + add circle badge
- [d95452c] dont accept invalid JSON containing NaN, inf, -inf
- [3fd444e] Merge pull request #75 from closeio/better-error-for-chunked-request
- [0be34ee] unit test for Transfer-Encoding: chunked
- [8b2339f] Return a clearer error message when somebody uses Transfer-Encoding: chunked
- [ffb6196] Merge pull request #74 from closeio/validate-negative-skip
- [4a882b1] more consistent wording
- [f8138ff] dont allow negative skips
- [d1c5d14] Update URLs
- [bbd44f0] Let isint handle None without throwing an error
- [7b30af2] Merge pull request #62 from elasticsales/cleanup
- [d926f32] Require pymongo 2.8.x
- [5689ea7] Fixes a condition where in some cases dicts that are equal are returned as not equal because of a different key order. Simplifies equal() method and removes the inner cmp() method, which also collides with a Python built-in
- [349e28c] Remove Resource._get
- [0910b48] get_update_dict -> get_object_dict
- [dfc5d31] Adding fields param to get_update_dict
- [6459190] Fix error handling
- [b598355] Fix validation error handling
- [bcb54fc] Making tests pass
- [2032384] test fixes
- [c55d45d] Only update fields that exist in the request payload
- [addb400] Remove _save and handle validation errors in _dispatch_request
- [557b243] Allow for ID strings in comparison in update_object
- [8605ae5] Cleanup: Remove forms from mongoengine. Move equal to utils. New get_update_dict method
- [b3b0583] Allow params in the request body so we don't run into URL length issues
- [e58c633] Don't trigger a query for SafeReferenceField ID lookup for related resources
- [0968fff] Merge pull request #60 from elasticsales/fix-aware-cmp
- [0734477] Unit test for changing DateTime
- [c2488e2] Clarifying comment
- [8d2a215] cmp() now compares aware datetimes
- [ac1ed01] _dirty_fields should only be not None when using a schema
- [b220351] Merge pull request #57 from elasticsales/handle_serialization_error
- [df7152c] better check of fixed_obj in handle_serialization_error
- [984c9e4] Move handle_serialization_error to Resource
- [3eccba9] handle_serialization_error so that a single serialization error in a List method doesn't break the whole response
- [46db980] handle empty uri params
- [ba6df5d] On mongoengine ValidationError return the error dict
- [dde12ce] set up a view_method helper on a resource instance
- [0ea49ed] fix requirements
- [12f8150] fixed method permissions + unit tests + minor code cleanup
- [5735dc7] Merge pull request #54 from elasticsales/respect-accept
- [efc084e] handle NotFound properly
- [055fbd1] return json errors instead of raising werkzeug exceptions
- [2cc26ef] handle renamed fields properly for _order_by
- [f27fb4b] If we reraise UnknownKeyError in value_for_field, don't include the field in the response.
- [0510aa0] Use get_requested_fields for fetch_related_resources in get_objects to use the same fields parsing logic.
- [268a4ba] value_for_field returns values for fields that don't exist in the resource or the object
- [066c995] Ability to return optional fields (?_fields=_all returns all of them)
- [8718ccd] fields fix
- [7896eed] Making the default _limit configurable
- [d6f3184] Adding Resource.get_requested_fields which is designed to customize returned fields per request
- [877452d] Serialize None properly in callable related_resources
- [98abbd2] Allow returning extra data in Resource.get_objects + test
- [f9a092a] remove print
- [f0e414d] Fix + test for related_resources
- [a565f8a] handle GenericReferenceField well + organize imports
- [d38374c] explanatory comment
- [47aba4d] Merge pull request #51 from elasticsales/optimize-ref-cmp
- [0938516] cache the _db_data.get(field) value
- [689b0e8] use a simple comparison + use .pk where appropriate
- [a6624f1] optimize comparison of reference fields by comparing the ids and not performing a full db lookup
- [2215031] Moving content type validation out of init so we can still manually use the resource in POST requests.
- [1e93cc0] Allow to pass custom list of fields to serialize()
- [4963762] Move cmp_fields to utils, move parts of get_objects into helper functions.
- [62e8eb6] Fix filters if op is empty (TODO: test)
- [aa9cd9c] Filter/operator bug fixes. Explicitly requiring allow_negation to allow filter negation.
- [bff1104] Ensure JSON data for POST/PUT is a dict.
- [cab92ed] freezing Flask-WTF
- [cbc750e] Avoid extra queries for DocumentProxy objects
- [e965622] Fixing build
- [31e2f76] Travis: Use pip instead of setup.py install
- [72c9e9d] Merge pull request #49 from elasticsales/feature-mongomallard
- [fa8f89c] Fix requirement
- [fe71620] Revert "Have a reference to the view on the main resource."
- [dd45db0] Have a reference to the view on the main resource.
- [1e69132] During updates, only set the fields that appeared in the request payload
- [c29d0ef] No more support for nested lists since objs arent resolved properly
- [eb77664] No more DecimalField since using mongomallard
- [be4973d] During updates, only set the fields that appeared in the request payload
- [44e442e] No more support for nested lists since objs arent resolved properly
- [4d959ed] No more DecimalField since using mongomallard
- [d74c283] just checking something out
- [9bcd8bd] Merge branch 'master' of ssh://github.com/elasticsales/flask-mongorest into feature-mongomallard
- [93268f9] Merge pull request #36 from floqqi/patch-2
- [e4d85b4] Fix requirements for mongomallard
- [1892fbd] Moving fetching of related resources to separate method + fixing ordering
- [e29370a] Merge pull request #41 from wuurrd/bad_super_call
- [1eb0d20] Don't evaluate lazy documents when comparing
- [cb74bf3] Merge pull request #43 from elasticsales/max-limit-tweaks
- [875d914] isint util function + _skip validation + cleaner code
- [82e2077] broken reference test
- [17e79d3] gracefully handle garbage limits
- [30c0f09] respond with 400 for _limit exceeding max_limit
- [48ab192] Remove stupid hack
- [a1eb345] More changes for mongomallard
- [0c13d1f] Modifications for mongomallard
- [83f606e] Fix bad call to superclass method
- [764f31c] reload sleep hack
- [d43876f] Performance: Don't load raw_data every time we initialize a resource.
- [cdb20f7] fixed install_requires
- [342a48c] graceful getattr for field_instance
- [70a4deb] extra tests for pagination (closes #21)
- [00de4a8] skip/limit only after order_by
- [3938e22] Merge pull request #33 from matchbox/query-embeddeddocumentfield
- [fc3f6ab] Merge pull request #32 from matchbox/dictfield
- [89dc2ed] Merge pull request #35 from floqqi/patch-1
- [d7700f0] support specifying filters for EmbeddedDocumentFields
- [2af6fff] more DictField/MapField updates
- [6baec52] support DictField/MapField
- [10a68db] allow querying on EmbeddedDocumentFields
- [ea49be6] fixed issue #34
- [6918a58] removing support for py26
- [d99476f] Merge pull request #31 from matchbox/simplify-exact-query
- [2f7a352] Oh the joy of timezone aware datetimes in Python
- [758f280] Don't save related objects if they haven't changed.
- [29d8b3e] Make mongorest work with latest cleancat
- [3528193] don't specify a query type when using 'exact'
- [6b3fdd3] Move logic from dispatch_request to helper method _dispatch_request
- [ffc3363] Merge pull request #30 from philfreo/master
- [1161ada] remove an unused qfilter lambda
- [7c2a48d] remove duplicate qfilter lambda
- [bc66d45] Merge pull request #23 from xogeny/uri_handling
- [6e8d1b8] Merge pull request #26 from xogeny/richer_authorization
- [16d0684] Print more descriptive error message if posting an incorrect Content-Type; Closes #28
- [8cfcc4c] Merge pull request #25 from xogeny/requested_resource
- [5893398] Cloning QuerySets
- [e649e91] Trying to add some documentations so others can follow what I did here
- [58944f0] Added support for read permissions.
- [0edb075] Added some authorization methods
- [0e312ff] Got rid of self.assertIn
- [a5fd1e7] Extension to specify per-request resource types
- [c5b6dc9] Fields are not returned from API as full URLs
- [925dc11] Explicitly specifying the complete URL for resource Location in POSTS
- [b1f1146] Damn, forgot to get rid of some print statements
- [991e472] Added a utility method that generates URIs for a given Resource
- [5a18bec] Exercising much more of my changes and tests are back to passing
- [3154b7e] So close...
- [cc7bf01] Added a test for new POST behavior and fixed on last bug
- [ccbb3a1] Fixed a bug that caused tests to fail.
- [6d2bba5] Fix problem with some field names.
- [9a35109] Forgot a condition
- [90bf306] Forgot a change to construct proper URIs
- [1b73cf2] This makes sure all field are properly serialized
- [f1434c0] Support for URI references to resources
- [4c9f738] - Revert related changes from closeio@66e90ed
- [260e7b4] Use client-side ordering for hinted related resources since MongoDB is slow.
- [4d3f852] Merge pull request #16 from coagulant/patch-1
- [87665f9] Merge pull request #17 from borism/master
- [616c74f] Adding MongoEngine case-insensitive operators
- [10246ab] Allow passing extra kwargs into register decorator
- [81f416d] fix for #15
- [1712696] Skip references if ListField(ReferenceField) has broken references (instead of throwing an error).
- [90c066d] Adding save_related_fields which allows using cleancat with MongoEmbeddedReference. Adding MongoRestSchemaTestCase. Adding cleancat dependency.
- [4566aeb] Merge pull request #14 from lucasvo/master
- [6168bcb] Fix data corruption with bulk PUTs
- [64f5268] If pagination is disabled, get_objects is setting the limit incorrectly.
- [d584278] fixes for related resources inside get_related_resources. proper embedded doc treatment when using schemas
- [c9deb1e] Merge pull request #12 from elasticsales/feature-optimize_related_resources
- [70f04bb] dictfield may have complex objects in it that we must custom serialize
- [8cf6c91] ignore pagination on custom qs's -- due to things like search
- [7c7deab] fixing a bug where only the first item of a related_resource set was being serialized
- [b8467d8] eleminate unnecessary qs evaluation in get_objects
- [c402fc6] dont bulk fetch fields we don't use
- [c204880] ability to pass in a qs to get_objects -- for things like searching
- [ee1a54f] bug when value isn't a dbref
- [5829ba4] removing prints
- [66e90ed] cleanup
- [ec376f9] Merge branch 'master' of ssh://github.com/elasticsales/flask-mongorest into feature-optimize_related_resources
- [6e15dd9] optimizations WIP
- [7262e6f] adding tests for datetime filtering
- [c70ae42] reload on save_object
- [a5affef] adding date serialization
- [e2955ee] 400 on mongoengine validation errors
- [a689e17] Merge branch 'master' into feature-validation
- [bed78c2] adding an html render function andn template for easy viewing of json data from the browser
- [6a8a01b] Fix exception in json_to_form_data
- [532ad56] allow proper filtering + handle negate
- [426b855] in operator
- [48c7f62] Merge pull request #11 from elasticsales/feature-inoperator
- [793d0db] allow proper filtering + handle negate
- [fe5fa45] in operator
- [11fa64f] Merge branch 'master' into feature-validation
- [50d3dcb] support for comma-separated order by fields
- [380395a] Fix exception in json_to_form_data
- [8123d74] Simplify PUT/POST requests with cleancat.
- [bf47e67] Fix for empty embedded documents (needs unit test).
- [7e17d38] Initial support for cleancat schema validation.
- [df9c374] Update .travis.yml
- [9454697] Adding save_object() method that can be overridden by resource subclasses.
- [d821e05] raise a 400 when invalid json is passed as input
- [84d516e] serialize Decimals as strings, loading them back as decimals.
- [a68d1d1] adding python2.6 support to fix #7
- [afef81a] using updated mongoengine config structure
- [4455a4c] moving to pypi flask-mongoengine
- [64a9c9c] load obj from db before returning it to user. avoids ORM discrepancies for things like datetime precision.
- [81bbc07] Temp workaround for missing timezone issue.
- [771650c] Update .travis.yml
- [31c5291] POST/PUT response should always match GET (including datetime precision)
- [1e9a392] unused imports / whitespace
- [8eb4584] Returning has_more in paginated requests. Always enforcing max_limit unless it's a bulk update.
- [04f2e62] Fix form conversion of None type
- [fa43086] Test against py3
- [55e324d] Test against python26
- [b0c30e4] Fix semantics of response_success/response_error
- [23611ba] Fixing datetime + reference fields for forms.
- [d142b63] Fix field renaming (if A is renamed to B, then B shouldn't be automatically renamed to A)
- [3aa62c5] Fix error handling with bulk updates.
- [8f5849a] Unit test improvements (more helpful assert messages)
- [2e7def8] Support for bulk updates.
- [e2b2e84] Fix renaming of fields where a->b, b->c would sometimes rename a to c.
- [c349f1c] Adding Boolean filter operator + unit tests.
- [b5fa97e] Making compare_req_resp output more readable.
- [b2d7071] Fix handling of BooleanFields
- [8ab7866] changing doc theme to flask_small
- [5d21ea9] adding sphinx to requirements and making it easier for it to see the module from within docs
- [6c51d5e] updating to flask doc theme
- [09eba20] adding sphinx docs
- [aeefa57] When returning a QuerySet in a resource method, properly serialize the models. Needs tests + further cleanup.
- [8817cec] adding a max_limit to resource to try and avoid a simple DDoS of the db and API
- [a1f3c74] nice text for pip directory
- [1b16331] bumping version
- [4d6a561] Merge pull request #2 from lucasvo/datetime-handling
- [e782bcc] Tidying up
- [854b535] Returning field value instead of None
- [d8269d3] Adding dateutil requirement
- [6192ed6] Adding test for a timezone offset.
- [a81d0d5] Automatically handling DateTimeFields by using dateutil.parser.parse. Tested with ISO format
- [bcd0f50] Update README.md
- [d03527d] Merge branch 'master' of github.com:elasticsales/flask-mongorest
- [935e6d4] moving to new setup.py nosetests
- [90b84e7] Update README.md
- [c668bc4] typo
- [31fc930] fixes for running tests
- [176914a] fixes for setup.py and testing
- [ec51409] Adding cURL examples of how to interact with api
- [9237d07] attempting to fix the test failure bug on travis
- [39b37c9] Adding travis build status.
- [903203a] adding a travis config
- [d0b4c44] better README example app. Added authentication section.
- [ec027a1] updating AUTHORS with urls
- [b1981b1] correcting the repo url.
- [151e3c2] Initial Commit