Commit graph

356 commits

Author SHA1 Message Date
Matt Lott
9189adcff0 Update teacher surveys
Gives 2 course headcount too.
2015-11-12 16:36:31 -08:00
Scott Erickson
b7843b59c8 Remove courses from purchasing course prepaids 2015-11-05 14:20:24 -08:00
Scott Erickson
6b5e13501e Allow classroom members to add themselves to course instances
This is so that the client will be able to add themselves to the
intro to computer science course, so that students joining classes will
have a course to enter.
2015-11-05 13:27:26 -08:00
Scott Erickson
f57cf3a83d Make POST /db/classroom/:id/members use update to avoid race conditions 2015-11-05 13:07:36 -08:00
Scott Erickson
4b71447877 Have POST /db/prepaid/:id/redeemers set user.coursePrepaidID property 2015-11-05 12:53:25 -08:00
Scott Erickson
222b0b28e1 Adjust POST /db/classroom/:id/members to not need an actual id
Since students need to be able to join with just the code.
2015-11-04 15:33:19 -08:00
Scott Erickson
9a2bfee5a7 Add GET /db/classrooms?ownerID=:id to server endpoints 2015-11-04 12:41:13 -08:00
Scott Erickson
aafdce6fbe Add POST /db/classroom/:id/invite-members 2015-11-03 14:46:13 -08:00
Scott Erickson
0e2305bc3d Add POST /db/course_instance/:id/members 2015-11-03 14:00:51 -08:00
Scott Erickson
429f50e1c6 Untie CourseInstance creation from prepaids, tie them to classrooms instead 2015-11-03 11:18:44 -08:00
Scott Erickson
27d423a410 Add Classroom server model and endpoints 2015-11-02 17:07:23 -08:00
Scott Erickson
d6b57f0e76 Disabling redeem at once test, as it appears to be causing errors 2015-11-02 15:27:13 -08:00
Scott Erickson
513c7e7a07 Add POST /db/prepaid/:id/redeemers 2015-11-02 15:23:08 -08:00
Scott Erickson
c3735ba0eb Add exhausted property to prepaid model
It is true when redeemers.length >= maxRedeemers
2015-11-02 13:06:58 -08:00
Scott Erickson
6a28de7c05 Make sure server tests don't run when production variables are in the environment 2015-10-29 12:05:56 -07:00
Driphter
73e3afa5f8 Added non-mutating methods for player code 2015-10-21 18:30:10 -04:00
Nick Winter
3446133452 Let's at least see what that test failure error is 2015-10-15 08:44:36 -07:00
Scott Erickson
2f9a689106 Fix LayerAdapter test 2015-10-13 10:40:11 -07:00
Matt Lott
67d088262c 🐛Fix user admin query tests 2015-10-09 15:54:05 -07:00
Matt Lott
d95cbc0627 Course instance redeem API returns 200 for double redeem
If a user has already redeemed course prepaid code, return 200 and the
related course instances.  Simplifies client-side experience.
2015-10-07 15:14:26 -07:00
Cat Sync
d09711be37 Added test for parallel subscription redeems, more informative redeem error messages, more robust prepaid update when redeeming 2015-10-06 15:23:47 -04:00
Matt Lott
9c7345fed0 Redeem course prepaid code on /courses page
Completes #54270566052118
2015-10-06 11:20:57 -07:00
Scott Erickson
ff69bb8c89 Add course level session creation permission checking to level_handler 2015-10-06 11:08:03 -07:00
Scott Erickson
3a90356f59 Add class invite system 2015-10-05 16:01:32 -07:00
Matt Lott
5095eac4ac Purchase prepaid on course instance creation
Updating purchase prepaid API to support courses.
Refactoring the prepaid server code.

Completes #54270567235517
2015-10-01 15:23:20 -07:00
Matt Lott
c6caafb7cd Remove extra Stripe call in sub prepaid redeem 2015-09-25 14:06:51 -07:00
Matt Lott
1f08867f79 Update subscription server tests to use async.series 2015-09-25 10:28:27 -07:00
Matt Lott
928f72e2cf Merge branch 'prepaid-v2' into master 2015-09-25 10:28:27 -07:00
David Liu
3266bd4621 Fix karma tests
* "Shim" StripeCheckout
* Fix loadDependenciesForSession test
* Update karma coverage for better perf
2015-09-09 14:02:03 -07:00
Matt Lott
d947bdd520 Reduce server Stripe subscription tests during Travis CI 2015-09-09 09:53:48 -07:00
Matt Lott
9131d8668f Course enroll page
Will add a prepaid purchase once the prepaid-v2 branch is merged into
master.
2015-09-03 11:04:52 -07:00
Matt Lott
e10c5d9646 Allow year sub purchases on top of monthly subs
Monthly sub is cancelled, terminal sub of 1 year + remaining month is
added.
2015-08-27 09:45:10 -07:00
Matt Lott
5faeb82d17 Extend terminal sub with year sub purchase 2015-08-27 09:45:10 -07:00
Matt Lott
9c492a2d4b 🐛Increment gems for year sale purchase 2015-08-24 10:54:06 -07:00
Matt Lott
9e222d0873 Add subscription sale
Give a discount for purchasing a year
New sale button on subscribe modal
New subscription sale landing page
2015-08-21 11:19:39 -07:00
Matt Lott
9c39bf7656 Update prepaids to support multiple redeemers for a single code
Will remove deprecated properties after updating production.
2015-08-12 15:51:18 -07:00
Matt Lott
b12b7e8ca4 Add user deletion date
Fixes #2734
2015-06-18 15:17:56 -07:00
Matt Lott
72e458cc80 Unsubscribe deleted users
Fixes #2733
2015-06-18 15:02:19 -07:00
Matt Lott
5c240d89cd Cancel recipient subscriptions immediately 2015-06-17 16:35:30 -07:00
Matt Lott
d7cddcb136 Teacher trial subscription form
Add a teacher survey form for applying for a free trial subscription
for evaluation purposes.
Add an admin trial requests review page, where admins can approve/deny
requests.
2015-06-05 06:48:19 -07:00
Matt Lott
9812986655 Enable more server subs tests for Travis 2015-05-28 16:56:13 -07:00
Matt Lott
9828bd5d1d Sponsored sub cleanup on unsubscribe
Sponsored subscriptions can be partially set up when the incremental
subscription charge fails.  This cleans up the sponsored subscriptions
when one of the recipient subscriptions is cancelled.

Related to #2786
2015-05-28 16:56:13 -07:00
Matt Lott
a8a55021b9 🐛Fix unpaid charges yield payments
Unpaid charges should not be recorded as successful payments in our
database.  Was happening when opening the buy gems modal again.
2015-05-19 11:41:11 -07:00
Matt Lott
865ceac91a 🐛Travis CI failures
Disabling some more subscription tests and adding spec durations so we
can narrow down the Travis CI timeout failures.
2015-05-12 15:08:55 -07:00
Matt Lott
4f54b4432f Limit subscription tests under Travis CI
They are killing our Travis CI test runs due to timeouts and Stripe API
rate limits.
2015-05-06 13:49:47 -07:00
Matt Lott
559b9533c4 🐛Fix clan name and description editing
#Fixes 2693
2015-04-21 14:12:01 -07:00
Matt Lott
f80a73ae9b Decouple clan type from dashboard details
Adding dashboardType field, private clans automatically set this to
‘premium’.
2015-04-20 14:04:22 -07:00
Matt Lott
2b29e755fe Make clan name and description editable 2015-04-15 11:09:43 -07:00
Matt Lott
bc35a27750 Private clans server updates
Only return private clans in lists to owners.
Get for specific private clan still allowed.
Restrict create/join private clan to premium users.
2015-04-10 16:04:36 -07:00
Matt Lott
5ae93cd6ab Add clan description field 2015-04-03 14:09:43 -07:00
Matt Lott
39990ee151 Sort and limit clan lists
Clan lists sorted by member count, then created date.
Public clans lists limited to 100.
Member lists sorted by slug.
2015-04-03 12:22:44 -07:00
Matt Lott
56342ad993 Normalize clan members data 2015-04-02 17:00:28 -07:00
Matt Lott
df120bdea3 Delete clan 2015-04-02 11:44:18 -07:00
Matt Lott
d91a7d8d1a Clans remove member 2015-04-02 11:01:37 -07:00
Matt Lott
bf38327578 Leave clan
And add join clan plumbing to clan details page.
2015-04-01 16:00:39 -07:00
Matt Lott
b48de3d74d Join clan 2015-04-01 15:24:45 -07:00
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
Nick Winter
7d7db5dafe Thang Editor can now drag Thangs to adjust registration points. Fixed missing terrain save property on ThangTypes. Fixed text search test. Added new Talus (mountain floors) to floor ThangType list for proper stretching. 2015-02-22 11:07:56 -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
Matt Lott
88f050ba06 Disable invalid analytics server tests 2014-12-30 12:18:32 -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
46f7bbaaf5 Fixed client tests. Also updated mock-ajax to the latest version, carrying over my own tweaks. 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
bd969c017e Turned off InventoryView tests for now. 2014-11-12 14:04:51 -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
def4108913 Fixed a test to expect PUT instead of PATCH. 2014-10-28 21:17:54 -07:00
Scott Erickson
20595b50da Fixes 1647. Somehow had been under the impression the segmented sprite containers weren't handling clicks correctly and that segments needed to handle them. 2014-10-22 07:53:49 -07:00