* fix(subscriptions): reject subs that come in too fast
* fix(lint): remove unused import
* fix(groups): individual subs may come rapidly
* fix(subscriptions): bad paren, handle rapid testing
* fix(test): reset dateUpdated between subs
* fix(test): one more block for dateUpdated
Co-authored-by: SabreCat <sabe@habitica.com>
* fix(subscription): establish lock to avoid race scenario
* fix(lint): import syntax
* fix(lint): whitespace, dependency cycle
* fix(subs): skip locking on gifts and groups
* fix(subs): correctly reset _subSignature
* fix(sub): use findOneAndUpdate for unlock
* fix(test): save newly created user for some reason
Co-authored-by: SabreCat <sabe@habitica.com>
* Log all gem transactions to database
* Also store hourglass transactions
* Fix tests
* Display transaction history in hall of heroes for admins
* add tests to new API call
* hide transaction settings tab for non admins
* fix(lint): remove console
* fix(lint): various automatic corrections
* fix(transactions): use enum expected pluralizations
* fix api unit tests
* fix lint
* fix failing test
* Fix minor inconsistencies
* Log all gem transactions to database
* Also store hourglass transactions
* Fix tests
* Display transaction history in hall of heroes for admins
* add tests to new API call
* hide transaction settings tab for non admins
* fix(lint): remove console
* fix(lint): various automatic corrections
* fix(transactions): use enum expected pluralizations
* fix api unit tests
* fix lint
* Fix minor inconsistencies
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
* hide upgrade button for public guilds
* prevent group plans for public guilds
* fix unit tests
* fix integration and unit tests that assumed group plans could be public guilds
* more unit tests fixes
* more resilient unit test
* more resilient unit test
* push notifications: handle some more error codes and when the user is loaded using .lean()
* fix lint
* do not send push notification if message is missing