Commit graph

114 commits

Author SHA1 Message Date
Phillip Thelen
374d528647 Implement iOS subscriptions (#8493)
* implement iOS subscriptions

* add additional tests to request body

* Improve subscription cancelling

* change string to constant
2017-02-21 19:22:13 +01:00
Phillip Thelen
4d0295a60d Support subscription payment through Google Play Store (#8437)
* Support subscription payment through Google Play Store

* minor fixes to iap subscriptions

* Support subscription payment through Google Play Store

* minor fixes to iap subscriptions

* revert change to test

* add unit tests for google payments

* add integration tests for google payments

* change config formatting for play api

* fix typo in file name

* fix typo in example config

* Improve google payment tests

* fix linter errors
2017-02-01 18:39:37 -06:00
Sabe Jones
0d3aba950a fix(config): remove deprecated env var 2017-01-25 23:27:34 +00:00
MathWhiz
42c5e6c22b Facebook pixel Revert (3rd time's a charm?) (#8450)
* attempt revert

* Add back unrelated stuff
2017-01-23 14:42:57 -06:00
Matteo Pagliazzi
74c6a891fc Revert "Revert Facebook Pixel" (#8449) 2017-01-23 16:38:56 +01:00
MathWhiz
9a5d17f538 attempt revert (#8406) 2017-01-23 16:03:23 +01:00
Sabe Jones
f85f2a0c6d Gift Subscriptions Promo (#8270)
* WIP(promo): buy-1-get-1 subs

* WIP(subscriptions): Slack integration

* feat(Slack): notify on sub buy
2016-12-08 18:08:56 -08:00
Phillip Thelen
e3b484b29a Add Google Signin (#7969)
* Start adding google login

* fix local js issue

* implement syntax suggestions

* fix delete social tests

* Add service for authentication alerts

* fix social login tests

* make suggested google sign in changes

* fix accidentally deleted code

* refactor social network sign in

* fix incorrect find

* implement suggested google sign in changes

* fix(tests): Inject fake Auth module for auth controller

* fix(test): prevent social service from causing page reload

* fix loading user info

* Use lodash's implimentation of find for IE compatibility

* chore: increase test coverage around deletion route

* chore: clean up social auth test

* chore: Fix social login tests

* remove profile from login scope

* fix(api): Allow social accounts to deregister as user has auth backup

* temporarily disable google login button
2016-09-28 12:11:10 +02:00
Blade Barringer
87973d7b66 chore: Switch out footer link for HabitRPG version 2016-09-02 11:10:48 -05:00
Blade Barringer
2180cb3d98 feat(api): Send flag notifications to slack 2016-09-02 11:10:46 -05:00
Sabe Jones
77c276fefe feat(analytics): Facebook "Pixel" (#7871) 2016-08-05 13:40:25 -05:00
Matteo Pagliazzi
fb939e0300 Migrate from GCM to FCM notifications (#7860)
* Fixed logging. Fixed lint issues. Temporarly removed GCM code

* Removed extra packages. Removed lingering gcm code

* Update message structure to send a data notification instead of a regular notification

* Removed excess code

* switch from fcm-push to node-gcm
2016-08-02 23:12:39 +02:00
Matteo Pagliazzi
0880850408 Real-time Chat (#7664)
* feat(realtime-chat): add Pusher library to the server

* feat(realtime-chat): only for private groups

* feat(realtime-chat): add authentication endpoint for Pusher

* feat(realtime-chat): client proof of concept

* fix typo in apidoc

* feat(realtime-chat): redo authentication and write integration tests

* remove firebase code

* fix client side tests

* fix line ending in bower.json

* feat(realtime chat): use presence channels for parties, send events & disconnect clients if user leaves or is removed from party, automatically update UI

* pusher: enable all events in the background

* fix pusher integration tests
2016-07-02 15:17:24 +02:00
Matteo Pagliazzi
08d7727881 Push notifications (#7682)
* Fix Social Push notifications

* Fix code formatting issues

* Fix commented issues

* Fix Syntax errors

* update push notify dependency

* specify push-notify version

* change how apn key is loaded

* feat(push-notifications): improve logging

* feat(push-notifications): disable v2 push notifications

* test(push-notifications): add unit tests and improve integration ones

* fix(push-notifications): throw when required params are missing

* fix(tests): correct descriptions and remove wrong comment

* fix(push-notifications): trim APN key

* fix(apn): log feedback only if it has data

* fix(apn): load cert and key differently

* fix(tests): correctly load apn during tests

* download creds from S3 and create AWS lib

* convert s3 buffer to a string

* fix(apn): remove console.log and do not use cert twice

* invert key and cert, disable failing test

* invert key and cert
2016-06-23 00:19:37 +02:00
Matteo Pagliazzi
7090ed5f4b update elastic beanstalk config to install loggly 2016-05-27 17:01:25 +02:00
Matteo Pagliazzi
a771c43989 feat(test): allow logs to show up when testing 2016-05-25 12:35:58 +02:00
Alys
810355d2a5 implement cron semi-safe mode - cron behaves as normal except boss causes no damage (#7462) 2016-05-24 13:31:39 +10:00
Matteo Pagliazzi
28f2e9c356 API v3 [WIP] (#6144)
* Fixed more tests

* Added tags into user service

* Added api-v3 auth urls

* v3: fix package.json

* v3: fix package.json

* Fixed auth tests. Updated Authctrl response

* v3: remove newrelic config file in favour of env variables

* v3: upgrade some deps

* switch from Q to Bluebird

* v3 fix tests with deferred

* Removed extra consoles.log. Changed data.data to res.data

* v3 fix tests and use coroutines instead of regenerator

* v3: fix tests

* v3: do not await a non promise

* v3: q -> bluebird

* Changed id param for registration response

* Updated party query and create

* Ensured login callback happens after user sync

* Add challenges to groups. Fixed isMemberOfGuild check

* Updated party and group tests

* Fixed cron test

* return user.id and send analytics event before changing page

* fix trailing spaces

* disable redirects

* Api v3 party tavern fixes (#7191)

* Added check if user is in party before query

* Cached party query. Prevented party request when user is not in party. Updated Party create with no invites

* Update tavern ctrl to use new promise

* v3: misc fixes

* Api v3 task fixes (#7193)

* Update task view to use _id

* Added try catch to user service ops calls

* v3 client: saving after syncing is complete

* Fixed test broken by part sync change (#7195)

* v3: fix todo scoring and try to fix production testing problem

* revert changes to mongoose config

* mongoose: increase keepAlive

* test mongoose fix

* fix: Only apply captureStackTrace if it exists on the error object

* v3: fix reminders with no startDate

* mongoose: use options

* chore(): rename website/src -> website/server and website/public -> website/client (#7199)

* v3 fix GET /groups: return an error only if an invalid type is supplied not when there are 0 results (#7203)

* [API v3] Fix calls to user.ops and deleting tags (#7204)

* v3: fixes calls to user.ops from views and deleting tags

* v3: fix tests that use user._statsComputed

* Api v3 fixes continued (#7205)

* Added timzeone offset back

* Added APIToken back to settings page

* Fixed fetch recent messages for party

* Fixed returning group description

* Fixed check if user is member of challenge

* Fixed party members appearing in header

* Updated get myGroups param to include public groups. Fixed isMemberOf group

* Fixed hourglass purchase

* Fixed challenge addding tasks on first creating

* Updated tests to accomidate new changes

* fix: Correct checklist on client

Closes #7207

* fix: Pin eslint to 2.9

* minor improvements to cron code for clarity; fix inaccurate comments; add TODOs for rest-in-inn actions

* fix: Add missing type param to equip call

closes #7212

* rename and reword pubChalsMinPrize to reflect that it's only for Tavern challenges

* allows players to send gems to each other; other minor related changes - fixes https://github.com/HabitRPG/habitrpg/issues/7227

* fix tests for /members/transfer-gems

* fix: Set gems sent notification as translatable string

* chore: Remove unusued variable

* fix: Remove requirement on message paramter in transfer-gems

* add a missing variable declaration

* chore: clarify comments on cron code

* fix: Correct client request from habitrpg -> tavern

* update apidoc URL in package.json

Closes #7222

* Fixed start party by invites

* Updated spell casting to v3

* Fixed adding and removing tags on tasks

* Fixed page reload on settings change

* Fixed battle monsters with friends button

* Loaded completed todos when done is clicked

* chore: Reinstate floating version number for eslint

babel-eslint regression fixed

* Fixed reload tests

* change "an user" to "a user" in comments and text (no code changes) (#7257)

* fix: Alert user that drops were recieved

* remove userServices.js from karma.conf - it's been moved to website/client/js/services

* feat: Create debug update user route

* fix: Correct set cron debug function

* feat: Add make admin button to debug menu

* lint: Add missing semicolons in test

* fix: Temporarilly comment out udpate user debug route

* v3: fix _tmp for crit and streakBonus

* v3: execute all actions when leaving a solo party

* v3 client: fix group not found when leaving party

* v3 migration: fix challenge prize

* v3 cron: only save modified tasks

* v3: add CHALLENGE_TASK_NOT_FOUND to valid broken reasons

* v3: fix tasks chart

* v3 client: fix ability to leave challenge

* v3 client: fix filtering by tag and correctly show tag tooltip

* v3 common: fix tags tests

* v3 client: support unlinking not found challenges tasks

* v3: disable Bluebird warning for missing return, fixes #7269

* feat: Separate out update-user into set-cron and make-admin debug routes

* chore: Disable make admin debug route for v3 prod testing

* v3: misc fixes

* v3: misc fixes

* v3: fix adding multiple tasks

* Fixed join/leave button updates

* Queried only user groups to be available when creating challenges

* Fixed bulk add tasks to challenge

* Synced challenge tasks after leave and join.

* Fixed default selected group

* Fixed challenge member info. Fixed challenge winner selection

* Fixed deleting challenge tasks

* Fixed particiapting filter

* v3 client: fix casting spells

* v3: do not log sensitive data

* v3: always save user when casting spell

* v3: always save user when casting spell

* v3: more fixes for spells

* fix typos and missing information in apidocs - fixes https://github.com/HabitRPG/habitrpg/issues/7277 (#7282)

* v3: add TODO for client side spells

* feat: Add modify inventory debug menu

* Fixed viewing user progress on challenge

* Updated tests

* fix: Fix quest progress button

* fix incorrect Armoire test; remove unneeded param details from apidocs; disambiguate health potion

* v3: fix stealth casting

* v3: fix tasks saving and selection for rebirth reroll and reset (server-only)

* v3: fix auto allocation

* v3 client: misc fixes

* rename buyPotion and buy-potion to buyHealthPotion and buy-health-potion; fix apidoc param error

* Added delete for saved challenge task

* Fixed member modal on front page

* adjust text in apidocs for errors / clarity / consistency / standard terminology (no code changes) (#7298)

* fix bug in Rebirth test, add new tests, adjust apidocs (#7293)

* Updated task model to allow setting streak (#7306)

* fix: Correct missing * in apidoc comments

* Api v3 challenge fixes (#7287)

* Fixed join/leave button updates

* Queried only user groups to be available when creating challenges

* Fixed bulk add tasks to challenge

* Synced challenge tasks after leave and join.

* Fixed default selected group

* Fixed challenge member info. Fixed challenge winner selection

* Fixed deleting challenge tasks

* Fixed particiapting filter

* Fixed viewing user progress on challenge

* Updated tests

* Added delete for saved challenge task

* v3: fix sorting

* [API v3] add CRON_SAFE_MODE (#7286)

* add CRON_SAFE_MODE to example config file, fix some bugs, add an unrelated low-priority TODO

* create CRON_SAFE_MODE to disable parts of cron for use after extended outage - fixes https://github.com/HabitRPG/habitrpg/issues/7161

* fix a bug with CRON_SAFE_MODE, remove duplicated code, remove completed TODO comment

* fix check for CRON_SAFE_MODE

* v3 client: fix typo

* adjust debug menu Modify Inventory: hungrier pets, fewer Special items, "Hide" buttons

* completed To-Dos: return the 30 most recent instead of 30 oldest (#7318)

* v3 migration: fix createdAt date

* adjust locales text, key names, and files for Rebirth, Reset, and Fortify / ReRoll for consistency with existing strings (#7321)

* v3: fix unlinking multiple tasks

* v3 fix releasing pets

* v3: fix authenticating with apiUrl

* v3: fix typo

* v3 fix client tests for unlinking

* v3 client: do not show start quest button when quest is active

* v3 client: fix ability to send cards

* v3 client: fix misc challenge issues

* v3: fix notifications

* v3 client: more user friendly errors

* v3 client: only load completed todos once

* v3 client: fix tests

* v3: move TAVERN_ID to common code

* fix: Provide default type and text for new task creation in score route

* fix: Provide default history [] for habit in score route

* fix: Add _legacyId prop to tasks to support non-uuid identifiers

* chore: Change v3 migration to use _legacyId instead of legacyId

* fix: check for _legacyId in tasks if id does not exist

* refactor: Extract out finding task by id or _legacyId into a function

* Api v3 party quest fixes (#7341)

* Fix display of add challenge message when group challenges are empty

* Fixed forced quest start to update quest without reload

* Fixed needing to reload when accepting party invite

* Fix group leave and join reload

* Fixed leave current party and join another

* Updated party tests

* v3 client: remove console.log statement

* v3: misc fixes

* v3 client: fix predicatbale random

* v3: info about API v3

* v3: update footer with links to developer resources

* v3: support party invitation from email

* v3 client: fix chat flagging

* fix: Correct get tasks route to properly get todos (#7349)

* move locales strings from api-v3.json to other locales files (#7347)

* move locales strings from api-v3.json: authentication strings -> front.json

* move locales strings from api-v3.json: authentication strings -> tasks.json

* move locales strings from api-v3.json: authentication strings -> groups.json

* move locales strings from api-v3.json: authentication strings -> challenge.json

* move locales strings from api-v3.json: authentication strings -> groups.json (again)

* move locales strings from api-v3.json: authentication strings -> quests.json

* move locales strings from api-v3.json: authentication strings -> subscriber.json

* move locales strings from api-v3.json: authentication strings -> spells.json

* move locales strings from api-v3.json: authentication strings -> character.json

* move locales strings from api-v3.json: authentication strings -> groups.json (PMs)

* move locales strings from api-v3.json: authentication strings -> npc.json

* move locales strings from api-v3.json: authentication strings -> pets.json

* move locales strings from api-v3.json: authentication strings -> miscellaneous

* move locales strings from api-v3.json: authentication strings -> contrib.json and settings.json

* move locales strings from api-v3.json: delete unused string (invalidTasksOwner), delete api-v3.json, whitespace cleanup

* v3 client: fix sticky header

* v3: remove unused code

* v3 client: correctly redirect after inviting

* Removed v2 calls from views (#7351)

* v3: fix tests for challenge export

* v3: fallbackto authWithHeaders if wuthWithSession or authWithUrl fails

* Added force cache update when fetching new messages (#7360)

* v3: fetch whole user when booting from group tto avoid issues with pre save hook expecting all data

* v3: misc fixes for payments

* v3: limit fields of challenge tasks that can be updated

* fix(tests): never connect to NODE_DB_URI for tests

* Added new route for setting last cron and updated front end

* v3: fix iap url

* v3: fix build and ios IAP

* Changed route to user set custom day start

* v3: iap accessible under /api/v3, fixes to spells and groups invitations

* v3: correctly use v3 routes in client

* remove XP, GP when unticking a Daily with a completed checklist - fixes https://github.com/HabitRPG/habitrpg/issues/7246

* use natural language for error message about skills on challenge tasks (#7336), fix other gramatical error

* Updated ui when user rejects a guild invite (#7368)

* feat: complete custom day start route

Closes #7363

* fix: Correct spelling of healAll skill

fix: Correct sprite name of healAll skill

* fix: Change all instances of spookDust -> spookySparkles

* add dateCreated to all tasks; add empty challenge object to tasks that don't have one (#7386)

* add plumilla to artists for Tangle Tree in Bailey message

* Fixed quest drop modal (#7377)

* Fixed quest drop modal

* Fixed broken party test

* [API v3] Maintenance Mode (#7367)

* WIP(maintenance): maintenance

* WIP(maintenance): working locale features

* fix(maintenance): don't translate info page target

* WIP(maintenance): start adding info page

* fix(maintenance): linting

* feat: Add container to maintenance info page

* fix(maintenance): add config.json edits
Also DRY variables for main vs info pages

* fix(maintenance): linting

* refactor(maintenance): further slim down variables

* refactor: Remove unnecessary variables

* fix: Correct string interpolation in maintenace view

* feat: Dynamically add time to maintenance pages

* maintenance mode: do not connect to mongodb

* fix(maintenance): clean up timezones etc.

* fix(maintenance): remove unneeded sprite

* Tavern party challenges invites fix (#7394)

* Added challenges and invitations to party

* Loaded tavern challenges

* Updated group and quest services tests

* v3: implement automatic syncing if user is not up to date

* Removed unnecessary fields when updating groups and challenges (#7395)

* v3: do not saved populated user

* v3: correctly return user subset

* Chained party promises together (#7396)

* v3: $w -> splitWhitespace

* use bluebird

* use babel polyfill

* migration: fix items

* update links for v3

* Updated shortname validation to support multiple browsers

* Docs changes (#7401)

* chore: Clarify transfer-gems documentation

* chore: Clarify api status route documentation

* chore: Mark webhooks as BETA

* Added tags update route. Added sort to user service (#7381)

* Added tags update route. Added sort to user service

* Change update tasks route to reorder tasks

* Fixed linting issue

* Changed params for reorder tags route

* Fixed not found tag and added test

* Added password confirmation when deleteing account (#7402)

* fix production logging

* feat(commit): push

* empty commit

* feat(maintenance): post-downtime news & awards (#7406)

* fix exporting avatar

* second attempt at fixing exporting avatar

* fix production logging

* s3: convert moment to date instance

* fix avatar sharing and caching (30 minutes)

* fix: Correct missing parameter

Closes #7433

* fix: Validate challenge shortname on server

* adjust text strings - fixes https://github.com/HabitRPG/habitrpg/issues/5631 and also Short Name -> Tag Name
2016-05-23 13:58:31 +02:00
Blade Barringer
f5d65a1e4d fix: remove unused vars
closes #7383
2016-05-20 14:27:22 -05:00
Sabe Jones
d221bcc84c Maintenance announcement (#7372)
* chore(news): announce downtime

* fix(news): tweaks and corrections

* fix: Update maintenance page to use dynamic date
2016-05-19 22:28:13 -05:00
Blade Barringer
2bbae8c5f5 refactor: Simplify flag_report_email load 2016-04-08 17:14:14 -05:00
Matt Harrington
46e13fecad TEST_DB_URI env override 2016-02-25 00:08:24 +00:00
Matt Harrington
cad31cb69a use example.com in the example json so as not to spam legit servers 2016-01-04 05:30:58 +00:00
Blade Barringer
be6acd7c09 Move post to slack function to task helper 2015-09-12 22:23:08 -05:00
Matteo Pagliazzi
4600e96dc0 firebase can be enabled through config 2015-09-06 20:19:53 +02:00
Matteo Pagliazzi
f5f19d146e start adding firebase 2015-09-05 15:44:45 +02:00
Matteo Pagliazzi
47f6f2febe refactor middlewares in their own folder, move buildFiles to libs/buildFiles 2015-08-14 11:50:09 +02:00
Blade Barringer
abb19d1d20 Correct casing on config example 2015-08-10 07:33:14 -05:00
Blade Barringer
b35453cd4b Add transifex config to example config 2015-08-09 16:52:00 -05:00
Matteo Pagliazzi
96ec70487f fix(amazon-payments): remove unused config var 2015-07-01 01:39:52 +02:00
Matteo Pagliazzi
a377501f64 feat(amazon-payments): wip on donations 2015-06-30 17:59:30 +02:00
Matteo Pagliazzi
b0643e7177 WIP: start working on amazon payments 2015-06-30 17:59:30 +02:00
Sabe Jones
3c5ae80e0b WIP(analytics): Move client tracking to service 2015-06-18 15:43:57 -05:00
Sabe Jones
91f93df7cc Merge branch 'develop' into mixpanel
Conflicts:
	config.json.example
2015-05-31 15:40:21 -05:00
Blade Barringer
6bced5d9ee Set default flag report email variable to array 2015-05-30 12:09:28 -05:00
Sabe Jones
726a8f1acb feat(analytics): Mixpanel implementation WIP 2015-05-29 16:22:35 -05:00
Negue
b23e901780 Merge branch 'develop' into pushNotifications2 2015-04-27 17:20:25 +02:00
Blade Barringer
24ad30aab4 Add port to BASE_URL in config example 2015-04-11 19:31:25 -05:00
Negue
7105bc195f add all Changes of #4565 2015-03-27 18:35:32 +01:00
Blade Barringer
9dfd96b84f Moved and configured config.json to be in root of directory 2015-02-13 09:24:16 -06:00
Blade Barringer
a617bac139 Moved config.json.example to website folder 2015-02-04 10:18:42 -06:00
Tyler Renelle
edf66cbb59 feat(discount) google discount & use sub.key instead of sub.months 2014-12-30 20:05:07 -07:00
Matteo Pagliazzi
652ce10e22 feat(flag-chat): start implemnting email 2014-12-22 19:48:03 +01:00
Tyler Renelle
709fb2b706 Revert "refactor(iap): use env var for google IAP". orders are being
left in "Chargeable - Delivered" for some reason.

This reverts commit 43961a5ab9.
2014-12-16 13:07:01 -07:00
Tyler Renelle
43961a5ab9 refactor(iap): use env var for google IAP, intead of key file. See
cb31043281
cc @negue
2014-12-16 11:44:58 -07:00
Matteo Pagliazzi
61ae5c7420 fix(loggly): enable only manually 2014-12-13 15:01:38 +01:00
Matteo Pagliazzi
af1ff6d740 feat(loggly): add test log, use only in production and add sample config 2014-12-12 12:17:48 +01:00
Negue
cc4812712a dummy iap verify routes 2014-12-10 14:21:02 -07:00
Tyler Renelle
c14af0e855 chore(multi-core): allow "CORES" nconf var, so can just use one core (or
however many) cc @paglias
2014-12-03 19:12:42 -07:00
Tyler Renelle
30c1ac4b1e fix(plans): lots of bug fixes & cleanup 2014-12-03 16:01:57 -07:00
benmanley
50b1cba0a6 refactor(tasks) improve UI consistency
* Round corners for UI elements / “8-bit” outlines for RPG elements.
* Tag bar – Make it clearer that “Tags” is a heading, not an option
* Task filters – restyle in line with tag bar + nav menu
2014-11-27 10:32:57 +00:00
Tyler Renelle
1ffb640833 tmp(memleak): temporary memleak measure to check avg response-time every 3mins. If >650ms (high mem) or ==0 (blackout), restart 2014-10-14 15:21:29 -06:00
Matteo Pagliazzi
fca45a3c0b feat(emails): add emails on signup, subscription begin and donation 2014-09-13 14:28:11 +02:00
Tyler Renelle
0f430e102e feat(subscriptions): add paypal recurring cancelation. refactor stripe & paypal code to use auth.authWithUrl. 2014-03-24 20:47:25 -06:00
Tyler Renelle
d1a2fbbbd9 feat(subscriptions): implement partial paypal-recurring. It's having issues with cookies 2014-03-24 20:47:10 -06:00
Tyler Renelle
f7b4a04a59 feat(event-tracking): add server-side GA tracking for ecommerce events 2014-02-10 11:35:33 -07:00
Cole Gleason
71f4371d9c chore(logging): add Newrelic and Email transports for Winston
This will send an email on errors logged with winston and thus removes
the old error emailing code.
2014-02-01 02:46:22 -06:00
Tyler Renelle
416feca42e chore(newrelic): use license key in accordance with https://docs.newrelic.com/docs/nodejs/nodejs-agent-on-heroku 2014-01-30 11:52:58 -07:00
Tyler Renelle
6d98194df2 fix #1619 (missing comma in config.example) 2013-10-17 01:06:21 +01:00
Tyler Renelle
f8328d3eeb paypal: add configurable merchant and sandbox/production environment 2013-10-12 19:22:06 -07:00
Tyler Renelle
5cb6e7e0dd fixes to emailing errors 2013-09-07 20:13:02 -04:00
Tyler Renelle
24dbae3a41 update config.json.exampl for default mongo db 2013-02-25 18:34:11 -05:00
Tyler Renelle
c3a5401a93 add nodetime for profiling production 2013-02-18 16:09:41 -05:00
Alan Ivey
537b7e1f1f Use nconf to load in configuration values
A config.json file can be used for all ENV settings, and nconf will still allow using ENV overrides. See https://github.com/flatiron/nconf for syntax, or copy the config.json.example file to config.json.
2013-02-07 07:47:34 -05:00