Commit Graph

926 Commits

Author SHA1 Message Date
Matteo Pagliazzi
4fa381f153 Merge branch 'bugfix-extramonths-lost-when-subscription-terminated' of https://github.com/hamboomger/habitica into hamboomger-bugfix-extramonths-lost-when-subscription-terminated 2020-04-20 23:30:19 +02:00
Matteo Pagliazzi
97209e40ad Collection quests: make sure users cannot earn "excess" items (#12098)
* fix(collection quests): make sure users cannot earn "excess" collection items

* add test
2020-04-20 23:12:05 +02:00
Matteo Pagliazzi
8ca5ee99b0 Merge branch 'release' into develop 2020-04-18 16:09:40 +02:00
Matteo Pagliazzi
9364cdc2b4 fix(apple auth): do not try to parse name if it is missing, add query parameters to logs 2020-04-18 16:02:18 +02:00
Carl Vuorinen
2896cf77e0 Handle simultaneous quest accept/reject (#12090)
* Implement atomic quest accept/reject

* Persist quest.members early to avoid simultaneous handling of accept/reject

* Fix quest accept test (missing expectation)

* PR fixes
2020-04-17 22:57:31 +02:00
Bart Enkelaar
9608b9fa9f Don't link user in markdown code blocks - Fixes #[11504] (#12069)
* Improve whitespacing in highlightMentions.js unit test

* Issue 11504 - Don't link users in markdown code blocks

Use the markdown-it parser to determine what parts of the message are code block first.
Then work from those parser tokens back to content parts that should not be handled.

Still convoluted, but can be improved once a "user mention plugin" is added to habitica-markdown.

* Issue 11504 - Put functions in JavaScript order and fix linting issues

* Issue 11504 - Use includes i.o. multiple or checks and added some context.

* Issue 11504 - Add docstring for highlightMentions and simplify fence regex

* Issue 11504 - Replace inline recursor with default parameter value
2020-04-17 22:19:11 +02:00
Matteo Pagliazzi
24e1bfdfba add basic test, disable etag on post routes as well, paypal ipn: prevent set headers after response error 2020-04-17 14:50:09 +02:00
Denys Dorokhov
186b929e59 API-v4 route added: 'api/v4/faq' fixes #11801 (#11905)
* feat(api-v4): new /faq route added

* refactor(server): change of function name in libs/content.js
2020-04-14 22:14:53 +02:00
Matteo Pagliazzi
2a8fc7aea2 Push Notifications Improvements (#12019)
* start fixing push notitifications

* push notifications: refactor error handling

* remove comment and improve logging

* improve emails errors

* wip: start improving webhooks tests

* add max length to push notifications and tests

* fix typos
2020-04-10 16:41:44 +02:00
Phillip Thelen
9d16ab7dba Sign in with Apple (#11793)
* add date check

* achievements modal polishing

* refresh private-messages page when you are already on it

* add countbadge knob to change the example

* fix lint

* typos

* typos

* typos

* add toggle for achievements categories

* typo

* fix test

* fix edit avatar modal cannot be closed

* WIP(settings): subscriber page improvements

* WIP(subscriptions): more design build-out

* fix(css): disabled button styles

* fix(css): better Amazon targeting

* fix hide tooltip + align header correctly

* disable perfect scroll

* load messages on refresh event

* fix header label + conversation actions not breaking layout on hover

* WIP(g1g1): notif

* WIP(g1g1): notif cont'd

* fix(test): snowball change

* fix(event): feature NYE card

* chore(sprites): compile

* fix(bgs): include TT required field

* add gifting banner to the max height calculation

* chore(event): enable winter customizations

* WIP(gifting): partial modal implementation

* feat(gifting): select giftee modal

* fix(gifting): notification order, modal dismiss

* Begin implementing sign in with apple

# Conflicts:
#	package-lock.json
#	website/common/script/constants.js
#	website/server/libs/auth/social.js
#	website/server/models/user/schema.js

* Add apple sign in button to website

* fix lint errors

* fix config json

* fix(modals): correct some repops

* fix(gifting): style updates

* fix(buy): modal style changes

* fix(modals): also clean out "prev"

* Attempt workaround for sign in with apple on android

* temporarily log everything as error

* refactor(modals): hide in dismiss event

* fix temporary test failure

* changes to sign in with apple

* fix: first batch of layout issues for private messages + auto sizing textarea

* fix(modals): new dismiss logic

* fix(modals): new dismiss no go??

* Only use email scope

* print debugging

* .

* ..

* ...

* username second line - open profile on face-avatar/conversation name - fix textarea height

* temporarily disable apple auth and just return data for debugging

* Hopefully this works

* .....

* WIP(subscription): unsubscribed state

* .

* ..

* MAYBE THIS ACTUALLY WORKS???

* Implement apple sign in

* fix some urls

* fix urls

* fix redirect and auth

* attempt to also request name

* fix lint error

* WIP(subscription): partial subscribed

* chore(sprites): compile

* Change approach so that it actually works

* fix config error

* fix lint errors

* Fix

* fix lint error

* lint error

* WIP(subscription): finish subscribed

* refresh on sync

* new "you dont have any messages" style + changed min textarea height

* new conversationItem style / layout

* reset message unread on reload

* chore(npm): update package-locks

* fix styles / textarea height

* feat(subscription): revised sub page RC

* list optOut / chatRevoked informations for each conversation + show why its disabled

* Improve apple redirect view

* Fix apple icon on group task registration page

* WIP(adventure): prereqs

* Block / Unblock - correct disabled states - $gray-200 instead of 300/400

* canReceive not checking chatRevoked

* fix: faceAvatar / userLink open the selected conversation user

* check if the target user is blocking the logged-in user

* fix(subs): style tweaks

* fix(profiles): short circuit contributor
Attempted fix for #11830

* chore(sprites): compile

* fix(content): missing potion data

* fix(content): missing string

* WIP(drops): new modal

* fix(subs): moar style tweaks

* check if blocks is undefined

* max-height instead of height

* fix "no messages" state + canReceive on a new conversation

* WIP(adventure): analytics fixes etc

* Improve apple signin handling

* fixed conversations width (280px on max 768 width page)

* feat(adventure): random egg+potion on 2nd task

* fix(lint): noworkies

* fix(modal): correctly construct classes

* fix(tests): expectations and escape

* Fix typo

* use base url from env variables

* fix lint

* call autosize after message is sent

* fix urls

* always verify token

* throw error when social auth could not retrieve id

* Store emails correctly for apple auth

* Retrieve name when authenticating through apple

* Fix lint errors

* fix all lint errors

* fix(content): missing strings

* Revert "always verify token"

This reverts commit 8ac40c76bf.

# Conflicts:
#	website/server/libs/auth/social.js

* Correctly load name

* remove extra changes

* remove extra logger call

* reset package and package-lock

* add back missing packages

* use name from apple

* add support for multiple apple public keys

* add some unit and integration tests

* add apple auth integration test

* tweak social signup buttons

* pixel pushing

Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
Co-authored-by: negue <eugen.bolz@gmail.com>
Co-authored-by: Phillip Thelen <phillip@habitica.com>
2020-04-08 18:44:30 +02:00
hamboomger
b7448e2cfe fix(server-api): cancelSubscription() is no longer called twice when user leaves group 2020-04-05 15:06:16 +03:00
hamboomger
0bc836b490 refactor(payments): unit tests created for calculation of subscription termination date 2020-04-05 15:06:16 +03:00
hamboomger
00d12e83bd refactor(db-schema): group.isSubscribed() method name changed to group.hasActiveGroupPlan() 2020-04-05 15:06:16 +03:00
Matteo Pagliazzi
28bc843779 Misc Webhooks Fixes (#12038)
* fix(webhooks): don t parse response as json

* upgrade got to version 10

* remove old header

* fix tests

* fix email auth

* add migration

* update email error

* split migration in two
2020-04-02 21:48:47 +02:00
Matteo Pagliazzi
e92ff9737a Automatically Logout Banned Users (#12037)
* wip

* logout banned users, fix and refactor language library and middleware

* req.locals -> res.locals

* fix tests

* redirect to login page
2020-04-02 21:46:01 +02:00
Matteo Pagliazzi
3fffe7aa5c Content API Cache improvements (#12020)
* content api improvements

* add content cache to build step

* add tests
2020-03-29 16:15:23 +02:00
Matteo Pagliazzi
9ab9b0f553 IP Blocking (#12015)
* start implementing an ip blocker

* fix comments and add to list of middlewares

* fix code, comment code and improve response

* wip tests

* fix order

* fixes and tests
2020-03-28 15:44:54 +01:00
Matteo Pagliazzi
2cd0ed5973 fix(logger): improve logging and make sure no data is lost 2020-03-24 20:29:31 +01:00
Matteo Pagliazzi
3458d89c1d fix(webhook tests): do not rely on toLocaleString when checking for two dates to be close 2020-03-24 12:28:15 +01:00
Denys Dorokhov
25e72ad907 Reward with negative cost can no longer be created, fixes #11855 (#11870)
* Minor refactoring in scoreTask.js

* Reward value validation added (should be >= 0)
2020-03-24 12:10:10 +01:00
Matteo Pagliazzi
9dcce382a3 fix(webhook tests): more reliable date test 2020-03-23 17:17:27 +01:00
Matteo Pagliazzi
f8aa756d52 Disable Failing Webhooks (#11966)
* todo comment

* add failures field to webhooks and sanitize

* implement logic

* use update instead of save

* specify timeout and maximum number of retries

* add tests
2020-03-20 23:26:21 +01:00
Matteo Pagliazzi
039e7d40b8 fix(tests): do not rely on emails order when user joins group plan 2020-03-18 23:31:01 +01:00
tsukimi2
519af8f1b6 Fix for search guilds result being inconsistent between "My Guilds" and "Discover Guilds" (#11903)
* Fix bug to allow guild summary and description to match against search term in MyGuilds component

* Add unit test to groupUtilities to test filterGroup function

* Changes made after running npm:run:lint

* Fix bug when filter guild function does not match against guild size correctly when the guild has member count = 100 or 1000

According to habitica wiki Guilds Guide, gold-tier guilds are guilds with 1000 or more members.  However, under the current code of filter guild function, it matches guilds as gold-tier as strictly more than 1000 members, excluding 1000 members.  Similar silver-tier guilds should have 100 to 999 members, but the current code it matches guilds as silver-tier for members between 101 and 999 members.

* Added unit tests to test the newly added code in the groupsUtilities mixin for the current issue

* Add unit testing to test search guild name, summary, and description in myGuilds component

* Add suggestions from lint

* Added searching by guild summary and white space handling in search terms.

For discover guilds component, added the following:
1) handling of searching by guild summary
2) preventing white space in search terms to display all guilds
3) added test cases for testing the search functionality in discove guilds to ensure consistent behaviour between the searching in MyGuilds and public guilds.

* Remove console statements from test file

* Implement suggestions from lint.

Co-authored-by: osiris <eynsan@yahoo.co.uk>
2020-03-16 20:03:48 +01:00
Alec Brickner
88bfed7efe Ensure official challenges are listed first (fixes #11018) (#11030)
* Ensure official challenges are listed first

* Fix lint errors

* Move query creation into separate function

* switching branches

* Fixes and tests

* Formatting fixes

* Linting

* fix tests
2020-03-09 20:08:28 +01:00
Sabe Jones
7064b363e0 fix(test): comment unreliable error message 2020-03-07 13:31:31 -06:00
Sabe Jones
bd8e67a2ea Adventure Guide Prep (#11883)
* WIP(adventure): prereqs

* WIP(drops): new modal

* WIP(adventure): analytics fixes etc

* feat(adventure): random egg+potion on 2nd task

* fix(lint): noworkies

* fix(modal): correctly construct classes

* fix(tests): expectations and escape

* fix(first-drops): address comments

* fix(first-drops): don't give random drops until first drops

* fix(drops): remove more Level 3 references

* refactor(drops): no need for cloning

* refactor(drops): unnecessary export

* fix(first-drops): force sync

* fix(first-drops): move to server

* fix(first-drops): escape in case we get here with >0 items

* fix(lint): line length

* fix(pet-food): remove unused string
2020-03-07 13:03:13 -06:00
Matteo Pagliazzi
db1bda1bcd tests(message model): add unit tests 2020-03-04 17:51:14 +01:00
Matteo Pagliazzi
2ff9dfe965 Fix username links resulting in truncated chat messages (#11945)
* introduce MAX_MESSAGE_LENGTH constant

* add test

* fix path

* fix and tests

* fix typo in tests
2020-03-04 11:49:14 +01:00
Matteo Pagliazzi
8300464cfc Merge pull request #11887 from HabitRPG/stackdriver-winston
Logs improvements
2020-03-02 11:05:15 +01:00
Matteo Pagliazzi
90f88c42f6 remove console.log 2020-03-02 10:26:21 +01:00
Matteo Pagliazzi
c2a79e1d7c fix tests 2020-03-01 22:37:29 +01:00
Matteo Pagliazzi
c5208f0ef6 fix tags 2020-03-01 22:21:53 +01:00
Matteo Pagliazzi
979d0c519d add final tests for push devices and notifications 2020-03-01 22:10:11 +01:00
Matteo Pagliazzi
3f5ee32684 fix invalid push devices 2020-03-01 21:49:52 +01:00
Matteo Pagliazzi
6deee0ffc8 notifications tests 2020-03-01 21:29:57 +01:00
Matteo Pagliazzi
a11e4d0512 fix lint 2020-03-01 20:53:33 +01:00
Matteo Pagliazzi
118e3580d6 refactor notifications cleanup 2020-03-01 20:06:24 +01:00
Matteo Pagliazzi
15e6cef7c4 fix tests 2020-02-29 17:40:46 +01:00
Matteo Pagliazzi
6543a43854 wip test 2020-02-27 12:16:53 +01:00
Ian McKenzie
6a483edfe1 Resolves #11861 — Makes "quest already started" error descriptive (#11862)
* Resolves #11861

* Fix unit tests for translation changes

* Remove non-en quest.json locales
2020-02-19 16:07:17 +01:00
Phillip Thelen
0648f5d412 Prevent server from cancelling still active subs (#11795)
* Prevent server from cancelling still active subs

* Allow subs to be cancelled before end date

* fix test

* fix test
2020-02-11 12:58:11 -06:00
Matteo Pagliazzi
ca69085e8c Merge pull request #11549 from Nikosmonaut/bugfix-11522_group_plan_tags
Fix can not remove group tag
2020-01-19 12:29:04 +01:00
Matteo Pagliazzi
9510b2345c Merge pull request #11636 from tsukimi2/bugfix-send-pmsg
Fix incorrect error when sending private messages to a player you have blocked (fixes #11612)
2020-01-14 13:24:05 +01:00
Matteo Pagliazzi
fa9f962e45 Merge pull request #11707 from cvuorinen/11682-quest-invitation-webhook
Quest invitation webhook
2020-01-14 13:06:31 +01:00
Carl Vuorinen
9258f8ad26 Send questInvited webhooks 2020-01-11 00:32:10 +02:00
Carl Vuorinen
04180fe974 Add integration tests for questActivity webhook 2020-01-10 20:58:21 +02:00
Carl Vuorinen
e6edaca11d Add questInvited option to webhook model 2020-01-10 20:27:50 +02:00
Sabe Jones
fe9af263dd Merge branch 'release' into develop 2020-01-07 11:48:09 -06:00
Sabe Jones
f6ecc1cb84 chore(promo): end g1g1 2020-01-07 10:13:32 -06:00