* Support 'IncrementByN' badge value for higher push badge increments
* Fix test
* Rely on object for badge incrementation (i.e. {increment: 3}) rather than string (IncrementBy3)
* For badge incrementation, utilize format similar to other operation notation
* Add support for expiration_interval in Push
* Support expiration_interval for immediate pushes
* Test
* Add 'expiration_interval' to _PushStatus class
* Fix coverage
* Handle local push time
* PR feedback
* Improve timezone detection with regex
* Use indexOf instead of endsWith
* Add documentation
* Add end to end test for scheduled pushes in local time
* Revert changes to npm-git script
* clean up
* Adds test for stalled pushStatus when audience is empty
* fixup! Adds test for stalled pushStatus when audience is empty
* Do not enqueue when count is 0, enforce deviceToken exists, stop badge ordering
* Fixes#3717
This fixes PR #3717. Sending push with parse-server@2.4.0 returns error
504 GATEWAY_TIMEOUT. This happens when push_time is not set (default).
* Fix lint issues
* Fix in PushController and add tests
Add a test to check push_time format and if it should schedule push
when the parse-server is configured
* Add support for push scheduling
Add a configuration flag on the server to handle the availability of
push scheduling.
* Update push controller to skip sending only if scheduling is configured
Only skip push sending if scheduling is configured
* Update bad conventions
* Add CLI definitions for push scheduling
* Adds tests for pushTime
* Adds test for scheduling
* nits
* Test for not scheduled
* Update status through increment
* adds support for incrementing nested keys
* fix issue when having spaces in keys for ordering
* Refactors PushController to use worker
* Adds tests for custom push queue config
* Makes PushController adapter independant
* Better logging of _PushStatus in VERBOSE
* Adds jobs endpoint protected by masterKey
* Adds connection timeout for 15 minutes in jobs
* Refactors pushStatusHandler into StatusHandler
* Adds reporting of _JobStatus
* Only accept strings as messages
* Adds test for masterKey basic auth
* Adds CloudCodeRouter for cloud_code endpoint of job status, enable Jobs feature on dashboard
* xit racing test
* Moves transform to MongoTransform
- Adds ACL query injection in MongoTransform
* Removes adaptiveCollection from DatabaseController
- All collections manipulations are now handled by a DBController
- Adds optional flags to configure an unsafe databaseController for direct
access
- Adds ability to configure RestWrite with multiple writes
- Moves some transfirmations to MongoTransform as they output specific code
* Renames Unsafe to WithoutValidation
- name conventions are aweful in PushController
- properly looks at the badge into body.data instead of body
- We may want to refactor that as it's confusing to use a full body
- Controllers that have adapters are AdaptableControllers
- AdaptableController is responsible to instantiate the proper adapter if needed (string, function or BaseAdapter)
- BaseAdapter is the base class for adapters, allows skipping when passed directly to the controller