Commit Graph

510 Commits

Author SHA1 Message Date
Oliver Eyton-Williams
1fc0bccb6f
refactor(api): stop returning streak (#50502)
The client does not use them. It calculates streaks from the calendar
property.
2023-05-24 19:16:29 +03:00
Muhammed Mustafa
4c5363bff0
fix(api-server): a typo in the info message for resubscribe (#50496) 2023-05-24 16:27:26 +02:00
Tom
4dfca3c560
feat: add exam environment (#50356)
* feat: add exam environment

* fix: cypress

* fix: lint-ts

* fix: lint-js

* fix: codefactor

* fix: don't translate comments from new JS spreadsheet

* fix: more tests

* fix: challenge schema

* fix: external curriculum test?

* fix: add more comments
2023-05-18 13:33:43 +02:00
Shaun Hamilton
5eb91a9043
chore(api-server): remove unused is* fields (#50346) 2023-05-10 11:59:40 +02:00
Shaun Hamilton
e30e6d9f55
fix(api-server): check type of email to prevent throw (#50259) 2023-05-03 14:53:28 +02:00
Mrugesh Mohapatra
b8dc4d5393
chore: update error message for Crash Dumps (#50213) 2023-04-28 17:17:55 -07:00
Shaun Hamilton
8300ccb7f0
fix(api-server): return usable flash type to client (#50082) 2023-04-17 23:18:18 +05:30
Muhammed Mustafa
f08fe482d1
feat(api-server): show unique messages from api (#49781)
Show specific messages for API calls
2023-04-17 14:21:25 +01:00
Mrugesh Mohapatra
e5590e56d7
chore: use pnpm v8 for deps (#49892)
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
2023-03-29 20:18:49 +05:30
Tom
605fdf220a
feat(curriculum): make college algebra with python live (#49695) 2023-03-23 21:57:32 +00:00
Shaun Hamilton
7d01522c0d
refactor(api): remove rx from boot/challenge.js (#49387)
* refactor(api): remove rx from `boot/challenge.js`

* fix: pass error to express

* refactor: do not use updated user

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

---------

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2023-03-16 20:39:28 +05:30
Shaun Hamilton
c030757f03
refactor(api): remove rx from boot/user.js (#49386)
* refactor(api): remove rx from `boot/user.js`

* fix: handle async session user error

* fix lint: do not make changes without npm ci
2023-03-16 20:38:53 +05:30
Oliver Eyton-Williams
0cd3f7671a
chore(deps): add missing dependencies (#49703)
Co-authored-by: Kristofer Koishigawa <scissorsneedfoodtoo@gmail.com>
2023-03-14 17:25:15 +05:30
Tom
b950070f80
feat(curriculum): add college algebra cert as upcoming change (#43605)
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
2023-03-10 10:55:50 +00:00
Oliver Eyton-Williams
16dec4ef86
feat: use pnpm to manage pm2 (#49574)
* fix(api): use pnpm to manage pm2

This means that pm2 will get the correct NODE_PATH environment variable.
Also, if we use pnpm to manage node, this ensure that pm2 will use that
node version.

* docs(devops): update api install and update docs

* feat: set node version via npmrc

This means that all scripts (pnpm run ...) will use this node version.
The only way to get other node versions is to invoke `node` directly.

* fix(docs): update api docs for pnpm installation

* feat: use pm2 from root

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
2023-03-07 14:54:31 -08:00
Oliver Eyton-Williams
d7848ae01a
feat: migrate to pnpm for better workspace DX (#49293)
* feat: npm -> pnpm 

This resolves the issues with the gatsby client (gatsby-plugin-pnpm
deals with the fact that gatsby is relying on its own dependencies
being de-duped)
and challenge-editor (which doesn't seem to want to automatically install
codemirror and needed its own eslint config)

* fix: correct mocha path for curriculum tests

* fix: use select workspace with -F not -w

* fix: reorganise packages and restrict hoisting

pnpm works best if the workspaces keep their own dependencies, since
dependencies are not flattened and then what node resolves from a
require is predictable.

@types seem to be a special case and more care is required to prevent
them getting smushed together in the root (hence the .npmrc)

* fix: add types for tools + root

* fix: decouple challenge-auditor from client

* fix: add ui-components types

* fix(client): use the latest types for react 16

* fix: prettify

* fix: prettierignore pnpm-lock

* fix: relax hoisting

Turns out pnpm works just fine with types. I don't know what was going
wrong before, but there are no-longer any type conflicts.

* fix: add @redux-saga/core to fix eslint issue

It seems to only be redux-saga that import/named can't cope with, so it
is probably okay to work around this one.

* chore: add chai to tools/scripts/build

* fix: add store to root for cypress

* fix: allow cypress to download binaries

If we want to keep preventing cypress from downloading binaries, we can
figure out a workaround, but I'm allowing it to ease the transition to
pnpm.

My guess about why this is happening is that npm triggers Cypress's
postinstall script, but pnpm does not (because pnpm install only
installs if necessary, perferring to link)

* chore: re-enable pre/post scripts

* fix: update build scripts for client

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>

* chore: update engines to use pnpm


* fix: enable choice of (super)block for tests

Only 'nix machines for now.

* chore: pin pnpm to version 7

* chore: remove last npms

Except web + curriculum-server. I'll update them when I start work on
them again.

* fix: lockfile check to catch any package-locks

* fix(action): install pnpm for upcoming tests

* chore: add nodemon to new api

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
2023-03-02 18:17:44 +00:00
Tom
8f63733236
refactor(api): user token db query (#49406) 2023-02-23 17:50:04 +05:30
Mrugesh Mohapatra
c252a84c4d
fix(sentry): disable sentry temporarily (#49443) 2023-02-20 17:17:28 +02:00
Mrugesh Mohapatra
537ef39a8d
feat(tools): sentry apm and other telemetry (#49385)
* feat(tools): sentry apm and other telemetry

* fix: use middleware json to remove duplication

---------

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2023-02-17 18:23:18 +05:30
Mrugesh Mohapatra
96a821a2ac
revert(tools): sentry apm and other telemetry (#49383)
Revert "feat(tools): sentry apm and other telemetry (#49230)"

This reverts commit b4fa56be3e.
2023-02-14 20:20:01 +05:30
Mrugesh Mohapatra
b4fa56be3e
feat(tools): sentry apm and other telemetry (#49230) 2023-02-13 14:32:49 +00:00
Mrugesh Mohapatra
ffc97f15d1
fix(api): update mobile-auth ratelimit config (#49194)
* fix(api): use proper name for collection

* fix(api): use the x-forwarded-for ip address
2023-02-10 13:13:54 +00:00
Mrugesh Mohapatra
9b6042e44d
feat: enable mobile auth endpoints (#49298
Reverts #49212
2023-02-09 14:01:13 +05:30
Mrugesh Mohapatra
c3103bae3d
revert: mobile auth for unblocking deployments (#49212) 2023-01-31 22:06:17 +05:30
Niraj Nandish
96fc70db1d
feat: mobile auth (#48591)
Co-authored-by: sembauke <semboot699@gmail.com>
Co-authored-by: Mrugesh Mohapatra <1884376+raisedadead@users.noreply.github.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2023-01-27 13:35:48 +05:30
Naomi Carrigan
193e03d286
feat: restrict update flag endpoint (#46314)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Sem Bauke <semboot699@gmail.com>
2023-01-19 16:16:17 +03:00
Ahmad Abdolsaheb
bff61255f9
feat(donation): simplify donation client (#46379)
* feat: unify post payment actions

* feat: handle stripe card error and add donation after auth

* feat: add donation saga stripe test

* feat: add more coverage to stripe tests

* feat: add initial stripe card saga test

* feat: finalize initial stripe card saga test

* feat: add patreon test saga

* feat: test clean up

* feat: do not show processing for Patreon

* feat: normalize donation settings

* feat: turn payment provider/contex to enum

* feat: remove donation-settings.js

* fix: git ignore generated config

* fix: ignore the generate config from everything

* fix: remove types.js

* fix: update linting to include types.js

Co-authored-by: Mrugesh Mohapatra <1884376+raisedadead@users.noreply.github.com>
2022-12-20 18:03:06 +05:30
Shaun Hamilton
ec3ee856ec
feat(tools): ignore no-unused-vars on underscore (#48386) 2022-11-04 10:43:46 +05:30
Mrugesh Mohapatra
b393d88b9e
refactor: s/all-langs/i18n/g (#48258) 2022-10-26 10:08:27 -07:00
Shaun Hamilton
326e00fab8
fix(server): default to log fcc namespaces, unless env set (#48143) 2022-10-21 22:53:04 +05:30
Mrugesh Mohapatra
092d7d04d6
feat(api): add redirect for users blocked by okta (#47992)
* feat(api): add redirect for users blocked by okta

* fix: redirect blocked users immediately

* fix: return early if no userInfo

We can't proceed without it, so we have to ask the user to try again.

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2022-10-12 20:28:21 +05:30
SADIK KUZU
3522ce6f34
fix(api): write variable names in correct manner (#47883) 2022-10-11 17:25:56 +02:00
Shaun Hamilton
3a4640b678
fix(api): reorder certificate early returns (#47656) 2022-09-29 11:42:34 -07:00
Shaun Hamilton
73c3edb56a
fix: certification to private on private timeline (#45562)
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2022-09-29 00:00:22 +05:30
Oliver Eyton-Williams
a2790190b2
refactor: saving portfolio items (#47635) 2022-09-27 21:10:01 +05:30
abe
67217160f6
fix: allow user to add one unsaved item at a time (#47567)
Co-authored-by: kravmaguy <flex4lease@gmail.com>
2022-09-27 12:17:58 +05:30
Oliver Eyton-Williams
71b1d25d54
refactor: stop adding jwt to headers (#46367)
The client never uses the header, so there's no need for the api to set
it.
2022-06-16 09:42:32 -05:00
Oliver Eyton-Williams
3361419e87
fix: set _csrf to be httpOnly (#46366)
There's no need for JS to access it, so we can safely set it to be
httpOnly
2022-06-08 16:54:23 +03:00
Radi Totev
e581bd9081
feat(client): shortcuts legend modal available on pressing the ? key (#45530)
* Add modal texts in translations.json file

* Add shortcuts modal state in redux

* Create shortcuts modal

* Integrate shortcuts modal

* Resolve codefactor.io issues

* Extend list of shortcuts

Based on this comment:
https://github.com/freeCodeCamp/freeCodeCamp/issues/36841#issuecomment-933310078

* Remove temporary placeholder for modal title

* Open modal fom Hotkeys instead of learn.tsx

As suggested in this comment:
https://github.com/freeCodeCamp/freeCodeCamp/pull/45530#issuecomment-1101224993

* Complete list in transaltions

* Change shortcut presentation fo better a11y

Use table instead of list items as suggestedin this comment:
https://github.com/freeCodeCamp/freeCodeCamp/pull/45530#issuecomment-1101796368

* Add aria-labelledby

* Remove GAnalytics

* Remove leftover style

* Remove table caption

* autofocus on modal close button

* Improve modal a11y

- Add requested changes from https://github.com/freeCodeCamp/freeCodeCamp/pull/45530#issuecomment-1104764766
- Leave autofocus and parent div role=dialog changes for later. (https://github.com/freeCodeCamp/freeCodeCamp/pull/45530#issuecomment-1107754148)

* [WIP] Alllow users to turn off keyboard shortcuts

* Add keyboard shortcuts switch in settings

* Disable shortcuts

* Remove toggle switch description

* Refactor and cleanup

* Remove close button from modal header

Suggested by bbsmooth:
https://github.com/freeCodeCamp/freeCodeCamp/pull/45530#issuecomment-1107861091

* Fix lint issues

* Disable shortcuts

* Disable shortcuts by default

* Update challenge output test

* Update challenge-hot-keys test

* Disable shortcuts from inside handlers

Co-authored-by: Mrugesh Mohapatra <1884376+raisedadead@users.noreply.github.com>
2022-06-03 09:57:52 -07:00
Mrugesh Mohapatra
85131d7d7b
chore(api): update dependencies & apply audit (#46127) 2022-05-24 11:31:23 +05:30
Ahmad Abdolsaheb
1885b6ad96
fix: handle Sentry donation errors (#46074) 2022-05-19 16:32:11 +02:00
Naomi Carrigan
47b5fe90a3
fix(api): optional chaining on fallback fullstack (#46054)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2022-05-18 22:05:52 +01:00
Tom
f29c66b0dc
fix: simplify savedChallenges update (#46032)
* fix: simplify working

* fix: remove unused

* revert: removal of function still needed
2022-05-18 16:56:47 +02:00
Oliver Eyton-Williams
21709a11cb
chore: return 404 for update-my-current-challenge (#46042) 2022-05-18 08:39:52 -05:00
Oliver Eyton-Williams
1c8a0778a1
fix: make pm2 name match deployment env (#46035) 2022-05-18 13:40:29 +05:30
Oliver Eyton-Williams
0e77b1523f
feat: add ecosystem file for pm2 (#46016)
* feat: add ecosystem file for pm2

* fix: use cluster mode, but with logs

* fix: stop hardcoding DEBUG

Co-authored-by: Mrugesh Mohapatra <1884376+raisedadead@users.noreply.github.com>

Co-authored-by: Mrugesh Mohapatra <1884376+raisedadead@users.noreply.github.com>
2022-05-18 02:14:41 +05:30
Oliver Eyton-Williams
b8c61bd229
fix: simplify completedChallenges updates (#45862) 2022-05-17 17:37:50 +05:30
Tom
832e504ced
fix: user object on account reset (#45929) 2022-05-12 18:27:11 +01:00
Shaun Hamilton
2717581b2f
fix(api): add needsModeration flag to user document root (#45921)
* fix(api): add needsModeration flag to user document root

* fix prettiers complaints

* Update api-server/src/common/models/user.json

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>

Co-authored-by: Tom <20648924+moT01@users.noreply.github.com>
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
2022-05-11 15:30:51 -05:00
Tom
f04fbba22d
feat: convert RWD cert projects (#44564)
* feat: convert RWD cert projects

* feat: convert original projects

* fix: add usesMultiFileEditor to meta

* feat: add cypress tests for saving and loading to/from database

* fix: broken cypress tests

* fix: inconsistent variable naming

* fix: missed variable name

* fix: more cypress

* feat: add solutions for english

* fix: ctrl+s to database only if signed in

* fix: prioritize code from db

* refactor: expand the comments slightly
2022-05-05 10:58:14 +02:00
Tristan Toye
dfe5a7fd05
Add Sentry to client for error handling (#43920)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2022-04-15 09:54:02 -05:00
Mrugesh Mohapatra
9ea7018740
Merge pull request from GHSA-cc3r-grh4-27gj
* feat: restrict update-user-flag endpoint

* feat(api): add dedicated-endpoints for user

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2022-04-13 20:51:31 +05:30
Tom
9f753a5662
feat: let users save cert project code to db (#44700)
* feat: let users save cert project code to db

fix: move getChallenges call out of request function so it only runs once

fix: use FlashMessages enum

fix: transform challengeFiles earlier

test: make tribute page use multifile editor

stuff I was playing with - revert this to get it to a working state

refactor: allow undefined editableRegionBoundaries

fix: save history

history is not necessarily ["name.ext"] and using the incorrect history
could cause weird bugs

fix: replace files -> challengeFiles on the client

refactor: DRY out ajax

fix: use file -> challengefile map

refactor: rename ajax types

fix: alphatize flash-messages.ts

revert: tribute page project

fix: remove logs

fix: prettier

fix: cypress

fix: prettier

fix: remove submitComplete action

fix: block UI for new projects

fix: handle code size

* fix: catch undefined files

* fix: don't default to undefined when it's already the default

* fix: only update savedChallenges if applicable

* fix: dehumidify backend + fine tune nearby stuff

* fix: prop-types

* fix: dehumidify sagas

* fix: variable name

* fix: types

* Apply suggestions from code review

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>

* fix: typo

* fix: prettier

* fix: props types

* fix: flash messages

* Update client/src/utils/challenge-request-helpers.ts

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* chore: rename function uniformize -> standardize

* fix: flash message

* fix: add link to forum on flash messages

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2022-03-31 10:34:40 -05:00
Tom
a428284804
feat: release rdbms as beta (#45428) 2022-03-22 11:35:38 +05:30
Tom
daaa2b38cf
feat: encode user tokens (#45429) 2022-03-15 14:11:43 +05:30
Tom
9e5f9b2a7c
fix: webhook process (#45385)
* fix: token rework functional

fix: clean up

fix: more clean up

fix: more clean up

fix: add widget back to settings

fix:

fix:

fix: cypress

Apply suggestions from code review

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

fix: use flash enum

* chore: rename webhookToken -> userToken

fix: add translations I forgot to save

* fix: add missing tones for flash messages

* fix: node test
2022-03-11 13:58:23 -08:00
Tom
e24c8abc7f
revert: release rdbms to production (#45347) 2022-03-04 15:15:20 +01:00
Tom
84c305ab08
feat: release rdbms to production (#45169)
* fix: add cert to email for when all certs are earned

* fix: unhide rdbms from production

* fix: cert project input field

* feat: add cypress tests

* fix: message on project pages to lower expectations

* fix: update instructions

* fix: add quincy's suggestions

* fix: add beta label and reorder

* fix: utils test

* fix: move rdbms to bottom of settings

* fix: cypress tests

* Apply suggestions from code review

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* fix: only drop seeded users webhook tokens

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2022-03-04 15:38:09 +05:30
Oliver Eyton-Williams
c11bd163b2
feat: display multifile projects (#45220)
* refactor: DRY up certification and ProjectModal

* fix: use sensible keys for SolutionViewer

* refactor: handle legacy solutions like new ones

* refactor: correct CompletedChallenge type

* fix: store challengeType for multifile projects

* fix: use challengeType to set display type

* feat: use dropdown to display project + code

* refactor: isOpen -> showCode to avoid a clash

We need to be able both show the code and show the completed project

* refactor: remove redundant parts of projectPreview

* refactor: fix project preview types

* feat: wip, using existing modal to show project

* feat: show projects on timeline

* feat: display projects on time-line

* chore: use consistent case for GitHub

* fix(a11y): translate show solution/view

* refactor: rename showFilesSolution

* refactor: use self-closing tag

* fix: remove hardcoding (certification + timeline)

* fix: remove hardcoding (settings)

* test: supply store and mock ga

* fix: include challengeType for projects

Co-authored-by: Tom <20648924+moT01@users.noreply.github.com>

* refactor: remove space

Co-authored-by: Tom <20648924+moT01@users.noreply.github.com>

* fix: key -> filekey on challenge submission

* fix: handle submissions without files

Co-authored-by: Tom <20648924+moT01@users.noreply.github.com>
2022-03-02 19:49:54 -06:00
Mrugesh Mohapatra
46cf96fbe1
chore(api): pin and update dependencies (#45282) 2022-02-28 21:59:15 +05:30
Naomi Carrigan
9e03419efb
chore: dry out 410 logic (#45257) 2022-02-26 00:38:18 +05:30
Oliver Eyton-Williams
ce23dcb32c
fix: return 410 for api/github (#45250) 2022-02-25 10:38:29 +01:00
Oliver Eyton-Williams
d501817207
chore(api): remove d3 (#45248) 2022-02-25 10:36:36 +01:00
Oliver Eyton-Williams
bc7cdf6c33
chore: remove unused api endpoints (#45085)
* chore: remove /refetch-user-completed-challenges

* chore: remove /update-my-theme

Theme changes are handled by /update-user-flag

I left 'update-my-theme' in the blocklist to allow for future use.

* chore: remove /certificate/verify-can-claim-cert

The client has not been using this for several weeks

* feat: return 410 for redundant endpoints

* chore: order endpoints
2022-02-24 21:11:24 -06:00
Tom
fd14608492
feat: release rdbms on staging (#44576)
fix: unhide cert from settings page

fix: add cert variables where missing

fix: show token on settings page

feat: add challenges to certified user data

fix: stylize settings page a little bit

fix: only show rdbms when upcomingChanges = true

fix: relational databases -> relational database
2022-02-18 17:29:30 +01:00
Sem Bauke
9d7457557a
fix(api-server): npm run build on windows (#45120) 2022-02-15 13:09:26 +00:00
Oliver Eyton-Williams
604e29c4bc
chore: remove broken endpoints (#45086)
These still exist, technically, but there's no render engine so they all
generate errors instead of pages
2022-02-11 12:44:07 -08:00
Tom
57cf47dad4
feat: split rdbms into individual blocks and two challengeTypes (#44978)
* feat: split english rdbms into individual blocks

fix: stuff

fix: remove from partiallyComplete array on submit

fix: add suggestion

Update client/i18n/locales/english/translations.json

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/i18n/locales/english/intro.json

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/i18n/locales/english/intro.json

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/i18n/locales/english/intro.json

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* fix: prettier

* fix: style suggestion

* Apply suggestions from code review

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2022-02-11 15:39:27 +00:00
Oliver Eyton-Williams
7f027958af
chore: migrate to nanoid 3 (#44893) 2022-01-25 11:09:41 +05:30
Shaun Hamilton
9cb87d0257
chore: remove verify-can-claim-cert logic (#44574)
* chore: remove verify-can-claim-cert logic

* remove extraneous

* remove console log before Nich wakes up

* add api route back with flash

* remove unnecessary logic in completion-epic

* change tests for new layout

* dynamically use api location

* rename file

* fix Cypress api location

* fix(test): anchor does not have disabled class

* fix(tests): change js test to claim from /settings

* chore: change status to 410 (gone)

* update testing again

* oliver is nitpicky

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* make oliver happy

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2022-01-18 08:52:49 -06:00
Tom
b061a760c1
feat: add framework for rwd cert projects (#44505)
* feat: add rwd cert projects

feat: save projects with flag

revert: not needed things

revert: empty line

revert: empty line

fix: it

fix: remove log

* fix: snapshot tests

* fix: show bread crumbs by default

* revert: snapshot fix

* Update curriculum/challenges/_meta/responsive-web-design-projects/meta.json

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* fix: manuallyApproved -> isManuallyApproved

* fix: add review suggestions

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2022-01-06 13:26:54 +00:00
Oliver Eyton-Williams
a726dd381f
fix(client): prevent data url render (#44658)
* fix: only render profile urls

* feat: warn user when submitting data url

* fix: prevent dataurls being saved to db

* fix: tests and imports

Not sure why jest didn't like the es imports, but they aren't necessary
so I dropped them.

* fix: check for url protocol
2022-01-04 11:05:40 +05:30
Nicholas Carrigan (he/him)
42acc542b7
fix: handle uppercase and missing user verification (#44444)
* fix: hotfix for isHonest null

* fix: early return if no user?

* fix: handle invalid input on api

Also lowerCases the username it receives since the client could send any
case.

* fix: report errors to user when verification fails

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-12-10 11:23:26 +00:00
Nicholas Carrigan (he/him)
8372623f69
chore(curriculum): fix + test curriculum order (#44366)
* chore(tools): test curriculum order

* chore: update orders

* fix(tests): temporarily ignore cert super

The Relational Databases cert being 'upcomingChanges' is breaking
the tests.

* fix: graphql query here

* fix: use only one meta

* chore: remove unnecessary superOrders

* chore: zero-based indexing

* fix: update mock

* refactor: remove unused fixture

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-12-06 16:55:13 +00:00
Oliver Eyton-Williams
03309bea9e chore: remove old package-locks 2021-12-02 19:57:47 +05:30
AndreiD049
67d0061aa1
fix: getting of fallback issued date for fullstack certificate (#43977) 2021-11-25 06:37:34 +00:00
Tom
f0698aa517
feat(client,api): add user tokens and route for submitting coderoad tutorials (#43304)
Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-11-17 19:49:24 +05:30
Valeria
753ea937ea
feat: Allow display username with uppercase characters (#43667)
* feat: Allow display username with uppercase characters

* fix: ensure user can change username to uppercased version

* fix: ensure that same username in a different case does not require validation
2021-11-04 11:18:40 +01:00
Ahmad Abdolsaheb
9179b2fc55
feat: add stripe authentication support (#44060)
* feat: add stripe authentication support

Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-11-03 10:32:03 -07:00
Mrugesh Mohapatra
0b79725a9e
chore(deps): apply npm audit fix on all packages (#44108)
chore(deps): apply npm audit fix on all packages
2021-11-03 16:26:50 +05:30
Mrugesh Mohapatra
466f39794b chore: update all lockfiles to v2 2021-11-03 15:06:19 +05:30
Mrugesh Mohapatra
6fef483946 chore: update all packages to node v16 & npm v8 2021-11-03 15:06:19 +05:30
Micah Silverman
2b5c1ed712
chore(deps): updated versions to address vulnerabilities (#44075) 2021-11-02 15:55:05 +05:30
Nicholas Carrigan (he/him)
07bfe87419
feat: add campfire mode (#42663)
* feat: add campfire mode

fix: resolve lint issues

feat: add sound to editor

fix: restore flash messages

fix: linter issues

fix: obey sound setting

Update the editor to obey the camper's sound setting.

chore: apply suggestions from code review

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

fix: use @types/store

fix: linter issues

feat: simplify sound saga

Update client/src/redux/sound-mode-saga.js

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

fix: missing bracket

chore: use new s3 bucket

fix: lint

fix: import only needed bits

fix: remove from navbar

(was intermittently broken here anyway)

fix: dynamic imports?

fix: more dynamic imports

fix: tweak theme logic

chore: boolean | undefined

fix: dns

fix: no hammer local storage

* chore: apply oliver's review suggestions

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* fix: lost an import

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-10-27 17:50:29 -05:00
AndreiD049
a07a16b38b
fix: added possibility to revert back to default profile picture (#43962)
* added possibility to revert to default profile picture

* removed required from picture input

* remove addPlaceholderImage and replaced with empty string

* added test for empty string to avatar-renderer
2021-10-25 21:06:32 +02:00
Mrugesh Mohapatra
0a3ce84e5a chore(api): update non-semver axios 2021-10-25 22:49:46 +05:30
Mrugesh Mohapatra
9780533fa4 chore(api,deps): housekeeping for patch updates 2021-10-25 22:49:46 +05:30
RobertoMSousa
cb0a502d82
chore: tree shaking - unused / redundant code (#43867) 2021-10-15 13:13:43 +05:30
Oliver Eyton-Williams
c8d7f0a782
feat(tools): remove eslint-plugin-prettier for prettier (#42438)
* feat: remove eslint-plugin-prettier for prettier

This removes the annoying lint warnings when all that needs to change is
formatting

* fix: use .js lint-staged config to ignore properly

* fix: lint everything if a lot of files are changed

It's faster than making lots of individual linter calls

* chore: apply prettier

* fix: ignore code in curriculum-file-structure
2021-10-06 21:02:21 +05:30
Eric Cheng
2ba536d559
refactor: enforce consistent camelCase in const names, add comments, condense multiple single-line comments into one multi-line comment (#43699) 2021-10-04 19:15:44 +05:30
Sem Bauke
cd8a71c56d
fix: wrong flash message when changing email (#43653) 2021-10-01 23:04:54 +05:30
Ahmad Abdolsaheb
cf309b5349
fix: optionally add name to customer creation (#43486) 2021-09-20 09:56:42 +02:00
Ahmad Abdolsaheb
e5523bf16e
feat: add Stripe card form (#43433)
* eat: add Stripe card form

* Apply suggestions from code review

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>

* feat: adjust payload and error handling

* feat:  readjust error handling

* Apply suggestions from code review

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>

* feat: refactors from comments

* feat: prevent submition during processing

* feat: redefine isSubmitting

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* fix: show the proper paypal button on donate page

* fix: handle errors from stripe

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: moT01 <20648924+moT01@users.noreply.github.com>
2021-09-17 22:15:56 +03:00
Mrugesh Mohapatra
4dba98eca9 chore(deps): npm audit fix - api-server 2021-08-31 21:38:48 +05:30
Shaun Hamilton
5806c3047d
fix(client): convert challengeFiles->files before sending to api (#43204)
* fix(client): convert challengeFiles->files before sending to api

* update use of user.completeChallenges

* parse response in ajax, pre-typing

* add typing to getSessionUser

* refactor: use Omit

* fix: reorganise getSessionUser

* refactor ajax for simplicity

* refactor to be worse

* allow for undefined completedChallenges

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-08-17 12:31:25 -05:00
Shaun Hamilton
c2a11ad00d
feat: add 'back/front end' in curriculum (#42596)
* chore: rename APIs and Microservices to include "Backend" (#42515)

* fix typo

* fix typo

* undo change

* Corrected grammar mistake

Corrected a grammar mistake by removing a comma.

* change APIs and Microservices cert title

* update title

* Change APIs and Microservices certi title

* Update translations.json

* update title

* feat(curriculum): rename apis and microservices cert

* rename folder structure

* rename certificate

* rename learn Markdown

* apis-and-microservices -> back-end-development-and-apis

* update backend meta

* update i18n langs and cypress test

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>

* fix: add development to front-end libraries (#42512)

* fix: added-the-word-Development-to-front-end-libraries

* fix/added-the-word-Development-to-front-end-libraries

* fix/added-word-development-to-front-end-libraries-in-other-related-files

* fix/added-the-word-Development-to-front-end-and-all-related-files

* fix/removed-typos-from-last-commit-in-index.md

* fix/reverted-changes-that-i-made-to-dependecies

* fix/removed xvfg

* fix/reverted changes that i made to package.json

* remove unwanted changes

* front-end-development-libraries changes

* rename backend certSlug and README

* update i18n folder names and keys

* test: add legacy path redirect tests

This uses serve.json from the client-config repo, since we currently use
that in production

* fix: create public dir before moving serve.json

* fix: add missing script

* refactor: collect redirect tests

* test: convert to cy.location for stricter tests

* rename certificate folder to 00-certificates

* change crowdin config to recognise new certificates location

* allow translations to be used

Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>

* add forwards slashes to path redirects

* fix cypress path tests again

* plese cypress

* fix: test different challenge

Okay so I literally have no idea why this one particular challenge
fails in Cypress Firefox ONLY. Tom and I paired and spun a full build
instance and confirmed in Firefox the page loads and redirects as
expected. Changing to another bootstrap challenge passes Cypress firefox
locally. Absolutely boggled by this.

AAAAAAAAAAAAAAA

* fix: separate the test

Okay apparently the test does not work unless we separate it into
a different `it` statement.

>:( >:( >:( >:(

Co-authored-by: Sujal Gupta <55016909+heysujal@users.noreply.github.com>
Co-authored-by: Noor Fakhry <65724923+NoorFakhry@users.noreply.github.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>
2021-08-13 21:57:13 -05:00
Tom
0ae8b0c0e8
chore: clean-up unsed things in stripe integration (#43156)
* chore: clean-up unsed things in stripe integration

* fix: use logged in users email over email given to payment form
2021-08-09 21:27:14 +03:00
Tom
fcadd534e7
fix: stripe issues (#43152) 2021-08-09 11:02:58 +03:00
Tom
8dec120c19
fix(api-server): server not responding for stripe call (#43149) 2021-08-08 19:47:33 -05:00
Ahmad Abdolsaheb
b623c340a9
feat(client): add google pay (#43117)
* feat: initial button setup client

* feat: rename walletsButton to .tsx

* chore: typescriptize wallet component

* chore: re-add keys to config, env, etc + check in gatsby-node

* feat: refactor donate form and wallet component

* feat(client): set labels correctly

* chore: add stripe package back to server

* chore: add stripe back to allowed paths

* chore: copy donate.js code from PR #41924

* feat: attempt to make back end work

* feat: make redux work

* feat: clean up

* feat: hokify

* feat: add error handling

* fix: back-end should be working

* fix: type errors

* fix: clean up back-end

* feat:addd styles

* feat: connect the client to the api

* feat: display wallets button everywhere

* test: add stripe key for cypress action

* test: fix for cypress tests

* test: cypress tests again

* test: maybe?

* test: more

* test: more

* test: more

* test

* askdfjasklfj

* fix: tests finally?

* revert: remove space from cypress yaml action

* remove logs

Co-authored-by: moT01 <20648924+moT01@users.noreply.github.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-08-08 23:22:25 +03:00