Commit graph

153 commits

Author SHA1 Message Date
Matt Lott
482b66b8a4 Create and list clans
Replace mock data with some real functionality.
2015-04-01 11:56:48 -07:00
Matt Lott
53de6c6134 Add current subscription counts view under the admin page 2015-03-27 15:27:34 -07:00
Matt Lott
2561bc4caf 🐛Fix Stripe web hook sub deleted for deleted user
Add check for deleted user in subscription deleted Stripe web hook
event handler, and equivalent test case.
Add logging for web hook 500 errors to aid future debugging.
2015-03-20 16:14:32 -07:00
Matt Lott
fec3ac38e9 Prepaid subscriptions
Admins can generate a prepaid code, which a user can use to subscribe
for free via the account/subscription page.
The subscription will be identical to the normal monthly subscription
(e.g. 3500 gems per month), except they won’t be charged.
Does not require the recipient to enter billing information.
Can be applied to an existing subscription, which will be converted to
free.
Prepaid code can only be used once.
Prepaid subscription cannot be unsubscribed via the UI.
2015-03-19 15:04:15 -07:00
Matt Lott
af89452b93 Merge branch 'sponsored-subs' 2015-03-13 15:19:20 -07:00
Matt Lott
cd59b90e37 Add custom payments
Example:
https://codecombat.com/account/invoices?a=21600&d=9%20monthly%20subscrip
tions
2015-03-04 15:40:53 -08:00
Nick Winter
df4b98a9bf Added a new 'artisan' permission, which can edit most of the things admins can, but with less uncomfortable ultimate power. 2015-02-25 18:41:39 -08:00
Nick Winter
768ef7818c Removed unneeded mongodb driver, since Mongoose uses its own. 2015-02-22 11:38:51 -08:00
Matt Lott
7e46b819c4 Stripe API version update fixes
Using customer sources instead of cards so we can update our API
version:
https://stripe.com/docs/upgrades?since=2014-11-05#api-changelog
2015-02-22 07:54:36 -08:00
Nick Winter
87f3b9e135 gamesCompleted now properly fires achievements even though it's not using normal saves. 2015-02-18 17:08:54 -08:00
Nick Winter
58716f5b75 Revert "Fixed #1076, and all other instances of empty objects being stripped out of documents. Turns out mongoose was doing this intentionally as a feature? I don't understand why that's on by default. Oh mongoose."
Saw that this caused 500s on /auth/whoami with no cookies set, with this error:

debug: 500: MongoError: E11000 duplicate key error index: coco.users.$emailLower_1 dup key: { : null }

Probably we need to be much more careful about what changes this blanket change to the minimize Mongoose option might introduce, since tests didn't catch this, but it would have taken the site down for anyone not logged in already.

This reverts commit 121f07d020.
2015-01-09 18:30:05 -08:00
Scott Erickson
121f07d020 Fixed #1076, and all other instances of empty objects being stripped out of documents. Turns out mongoose was doing this intentionally as a feature? I don't understand why that's on by default. Oh mongoose. 2015-01-09 11:56:54 -08:00
Nick Winter
4016476c4d Fixed achievement plugin creation of repeatable achievements. Fixed some bugs in recalculating repeatable achievement exp. Implemented recalculating repeatable achievement gems. Achievement tests pass again. 2015-01-07 15:03:39 -08:00
Nick Winter
1455dc0550 Working on repeatable achievement posting. Two tests still fail, though, so it's not there yet. 2015-01-07 12:25:43 -08:00
Scott Erickson
2f36884456 Got proportionalTo working with gems as well as points. Probably also got it working for LevelSessions, but this should be tested. 2015-01-06 18:14:19 -08:00
Nick Winter
744d30737e Merged in campaign editor and campaign view. Destroyed WorldMapView, CampaignOptions, and LevelOptions. Lots of stuff is now stored in the database instead of code. Cleaned up a few unneeded old features. Fixed some problems with checking permissions on first rather than latest versions of documents. 2014-12-28 13:25:20 -08:00
Scott Erickson
59318b2f78 Merge branch 'master' into feature/campaign-editor 2014-12-19 12:54:11 -05:00
Scott Erickson
1cc6a97e43 Added basic campaign view, working on campaign handlers. 2014-12-16 17:46:24 -08:00
Scott Erickson
b0de331a10 Shored up stripe transaction payment defences to try and fix #1906. 2014-12-12 15:27:58 -08:00
Nick Winter
20c8352225 User password hash test accepts production or development salt for convenience. 2014-12-11 20:21:42 -08:00
Scott Erickson
876a663690 Fixed server tests. 2014-12-09 13:41:44 -08:00
Scott Erickson
209836c172 Fixed user patching to not also unsubscribe subscribers. 2014-12-05 14:11:38 -08:00
Scott Erickson
d0ee8cb7c7 Set up the server to allow admins to assign customers coupons. Fixed up how customers are created/updated by the server to allow setting new payment information rather than forever using the payment info first provided. 2014-12-04 17:41:27 -08:00
Scott Erickson
0edf4e0ca1 Fixed a MailChimp test. Fixed payment and subscription handlers to deny anonymous users. Hid the subscribe button from anonymous users. 2014-12-04 13:07:07 -08:00
Matt Lott
e3abb9ceb3 Capture active user metrics
Watching for these events:
Level completed
User registered
Playtime of 30s in a level
Purchase
Payment
Subscribe
Earned an achievement
2014-12-04 12:57:57 -08:00
Scott Erickson
7210de02e9 Set up stripe to get user emails so receipts can be emailed. 2014-12-03 16:36:03 -08:00
Scott Erickson
aea1e39b58 Tweaked the subscription handler to act more like the payment handler when a card charge fails. It returns 402. 2014-12-02 20:40:33 -08:00
Scott Erickson
cd3bb690f4 Created stripe subscription logic. 2014-12-02 20:02:35 -08:00
Scott Erickson
5dcdabfd62 Refactored stripeCustomerID to stripe object in the user object so we can put more stuff in there. 2014-12-02 11:47:15 -08:00
Nick Winter
d2aabbdacc A couple workarounds for crashing server tests. Including method in HipChat error messages. Trying to work around undefined ThangType fetch during level loading. 2014-11-29 08:43:40 -08:00
Scott Erickson
e5b87e5158 Tweaked, re-enabled achievement specs. 2014-11-21 10:59:48 -08:00
Scott Erickson
c77d38d59f Made sure Apple receipts can't be re-used with different accounts. 2014-11-21 10:34:37 -08:00
Scott Erickson
b86e3c30dc Set up level achievements to be created manually by the client, hopefully making them a bit more stable. 2014-11-20 22:09:54 -08:00
Michael Schmatz
f84e92595b Changed UDID to identifierForVendor 2014-11-20 20:03:24 -05:00
Scott Erickson
a18537b065 Added the ability to assign a user an iOS UDID, and login with it. 2014-11-20 15:54:15 -08:00
Scott Erickson
95dca575d1 Set up stripe on the server and site to allow purchases through the website. 2014-11-17 15:15:08 -08:00
Scott Erickson
7012d5dfbe Built payment endpoint for processing Apple IAPs. 2014-11-11 17:40:29 -08:00
Scott Erickson
56e62bb4c8 Fixed a couple server tests. 2014-11-11 17:40:29 -08:00
Nick Winter
7e7ec719b0 Possibly fixed a server test in accordance with real private properties. 2014-10-06 18:05:20 -07:00
Scott Erickson
b4d9a787f0 Fixed the rest of the server tests. 2014-08-29 16:28:07 -07:00
Scott Erickson
8233df514e Added an acceptor field to patches. 2014-08-15 10:36:21 -07:00
Ruben Vereecken
47f00f9b5e Added achievement deleting and automatic achievement filling 2014-08-08 17:20:07 +02:00
Ruben Vereecken
30a6cf1cca Merged in name changes from master 2014-07-29 17:28:13 +02:00
Ruben Vereecken
0f3b049189 Added test cases for fetching related by user slug instead of ID 2014-07-29 12:48:31 +02:00
Ruben Vereecken
a03e3aedd1 Managed to recalculate translation/misc patches after all 2014-07-24 19:43:09 +02:00
Ruben Vereecken
3191c87cf1 Added recalculation for patches. Struggled with translations. Won't recalculate those probably 2014-07-24 14:41:06 +02:00
Ruben Vereecken
cde87e4fe5 Covered general patches with tests 2014-07-23 20:00:28 +02:00
Ruben Vereecken
2394bd8129 Added the recalculation script for a couple of statistics 2014-07-23 15:22:53 +02:00
Ruben Vereecken
ebfe1fc1c0 Proofed admin endpoint some more, no more dangling connections 2014-07-23 13:06:51 +02:00
Ruben Vereecken
0288786098 Merge branch 'master' into achievements 2014-07-15 16:16:46 +02:00
Ruben Vereecken
e748417007 GET /auth/name/<name> now serves possible free names
anonymous users are now warned if their new name is already chosen

User Settings is now without auto-save

Upon name conflict, a user will be suggested a new name which is then submitted if the user chooses to save after all.

Refactored conflicted name checking so it can be used in more places

Signup form now has an optional name field

Covered extra case where the debounced check happened too late. Support for submitting on enter.

Worked in scott's comments and got tests working again
2014-07-14 20:07:58 +02:00
Ruben Vereecken
9c0353a2f0 Merged in master 2014-07-13 21:18:32 +02:00
Scott Erickson
ad2e01ee61 Fixed a couple tests. 2014-07-10 14:31:50 -07:00
Ruben Vereecken
9e296b7c3d Added a test case for unsetting slugs (and fixed related bug) 2014-07-10 18:24:02 +02:00
Ruben Vereecken
94210fc461 Anonymous users are now silently renamed upon signup in case of conflict 2014-07-10 18:00:32 +02:00
Ruben Vereecken
6e593b2ec0 User name slugs can now be unset by emptying their name 2014-07-10 10:46:41 +02:00
Ruben Vereecken
a8353cb7ff Anonymous users can have the same name 2014-07-09 21:34:35 +02:00
Ruben Vereecken
ea4523bf6a Test coverage for GETting users by slug 2014-07-09 21:34:35 +02:00
Ruben Vereecken
601c4e2731 Merged with master 2014-07-05 16:47:16 +02:00
Ruben Vereecken
e904a0a8f7 Achievement recalculation is now covered with tests 2014-07-04 19:27:41 +02:00
Ruben Vereecken
a367082cc4 Corrected statistic logic, wrote test case 2014-07-04 19:27:41 +02:00
Ruben Vereecken
fce9f0031b All edits are now tracked
intermediate

intermediate
2014-07-04 19:27:38 +02:00
Ruben Vereecken
838012a2cf Wrote and tested articleEdits recalculation 2014-07-04 19:27:38 +02:00
Ruben Vereecken
6ae505e8a1 stats.articleEdits are now tracked and tested 2014-07-04 19:27:37 +02:00
Ruben Vereecken
7a07e1feb0 Whoop whoop test for recalculation of gamesCompleted 2014-07-04 19:27:37 +02:00
Ruben Vereecken
7a4c6daec8 stats.gamesCompleted is now tracked in users 2014-07-04 19:27:37 +02:00
Ruben Vereecken
39fb2cb1b4 Added achievement preview, exp test, stuff 2014-07-04 19:27:37 +02:00
Ruben Vereecken
1fe2c67ffe Added tests for repeatable achievements, including complicated xp
Intermediate
2014-07-04 19:27:37 +02:00
Ruben Vereecken
faf02d8e4b Finally managed a setup that makes the tests succeed 2014-07-04 19:27:37 +02:00
Ruben Vereecken
488d49e286 intermediate 2014-07-04 19:27:37 +02:00
Tery Lim
618ade4946 Clean up mixed quotes 2014-07-01 12:23:22 +08:00
Scott Erickson
8ab69cf833 Merge pull request #1138 from rubenvereecken/search-endpoint
Search endpoint is now without the /search prefix
2014-06-12 11:33:28 -07:00
Ruben Vereecken
fddca03417 Worked on achievement tests 2014-06-12 19:44:55 +02:00
Ruben Vereecken
925594ffe9 Took a detour to write tests for BadMethod. Queue's tests not working yet. 2014-06-12 19:42:36 +02:00
Ruben Vereecken
b66f4984c3 Finished basic functional tests for achievement 2014-06-12 19:42:30 +02:00
Ruben Vereecken
fef72d8273 Finished Article tests to demonstrate search functionality 2014-06-12 19:19:34 +02:00
Ruben Vereecken
0751581113 Search endpoint is now without the /search prefix
Intermediate commit for search refactoring
2014-06-12 19:19:30 +02:00
Scott Erickson
08dde3623c Disabling file server tests because currently they choke Travis. 2014-06-11 13:38:01 -07:00
Scott Erickson
ea06bb3d52 Fixed server tests to exit when they are finished. jasmine-node will never exit unless all connections are closed.
This helped:
https://github.com/mhevery/jasmine-node/issues/318#issuecomment-43914090
2014-06-11 13:21:11 -07:00
Ruben Vereecken
8e33b6b534 Fixed all server-sided tests
NEVER. AGAIN
2014-06-11 20:17:27 +02:00
Scott Erickson
f0ff8c242e Migrating language to codeLanguage on systems and components because they conflict with the search system. 2014-06-10 13:20:14 -07:00
Scott Erickson
f1927dcf35 Added a regressive test for e87592059b 2014-05-08 13:56:54 -07:00
Scott Erickson
1869bbe859 Merge branch 'tests' of https://github.com/adi2412/codecombat into adi2412-anonNameCollide 2014-05-05 16:49:15 -07:00
Scott Erickson
ed556f50be Added reserved word checking for names. 2014-04-28 14:09:29 -07:00
Aditya Raisinghani
0cd5d0f4af Added jasmine spec reporter and tests for anonymous name collisions. 2014-04-28 15:16:43 +05:30
Scott Erickson
20541f5520 Added another check to the recruit unsubscribe test, to make sure it doesn't affect other subscriptions. 2014-04-23 09:53:46 -07:00
Scott Erickson
b390b38054 Fixed a couple bugs and tests. 2014-04-23 09:19:07 -07:00
Scott Erickson
f7035d4220 Added an unsubscribe url for recruit notifications. 2014-04-22 19:27:39 -07:00
Scott Erickson
f57be1ae52 Migrated to the new email system, along with a setting for recruit notifications. 2014-04-21 16:15:23 -07:00
Scott Erickson
8adca4a1da Added a transactional email for when changes are made, to notify watchers. 2014-04-17 17:30:55 -07:00
Scott Erickson
ed0c7e1412 Creators of documents are automatically added as watchers. Added a patch creation email for watchers. 2014-04-17 17:09:01 -07:00
Scott Erickson
c395a3414e Merge branch 'master' into feature/jsondiffpatch 2014-04-15 15:18:57 -07:00
Scott Erickson
58b1019934 Switched listen to watch (would have been confusing with eye-con, and listenTo function in Backbone). Added watch button and patch badge to level editor. 2014-04-15 15:09:36 -07:00
Scott Erickson
06a61d214e Fixed server tests. 2014-04-15 09:01:51 -07:00
Scott Erickson
94e75b852c Removed a log. 2014-04-12 10:51:31 -07:00
Scott Erickson
30f785f7cf Moved the model schemas into a models folder. 2014-04-12 10:51:02 -07:00
Scott Erickson
a3951b0fa7 Extended the save version modal to allow submitting patches. 2014-04-10 13:09:44 -07:00
Scott Erickson
2f988ba485 Made the server side of the patch system. 2014-04-08 19:26:19 -07:00
Scott Erickson
c382889748 Bunch of server changes, mainly adding all the JSON schema validation and fixing tests. 2014-04-08 14:10:50 -07:00
Scott Erickson
e63763d539 Made the server resistant to req.user being undefined sometimes. 2014-02-24 20:27:38 -08:00