Commit graph

205 commits

Author SHA1 Message Date
Bruce Berrios
73f21c9cc5
Remove class syntax from george (#2935)
* Remove class syntax from george

* Remove boolean
2022-05-05 02:00:12 +02:00
Miodec
8524646380 renamed folder dao to dal 2022-05-04 01:51:25 +02:00
Miodec
ec8ec49b71 Merge branch 'master' of https://github.com/Miodec/monkeytype 2022-05-04 01:48:29 +02:00
Bruce Berrios
6ee84b2484
DAO -> DAL (#2928)
* DAO -> DAL

* This what?

Co-authored-by: Jack <jack@monkeytype.com>
2022-05-04 01:47:51 +02:00
Miodec
de97d798eb moved data validation to anticheat repo 2022-05-04 01:44:13 +02:00
Jack
e6982f293d
Small Dao dals (#2927)
* converted preset dao to dal

* psa dao > dal

* typo

* config dao > dal

* public stats dao > dal

* fixed bad merge

* removed this

* removed comment
2022-05-04 00:43:58 +02:00
Bruce Berrios
9b7b5feb71
BotDAO -> BotDAL (#2926) bruception 2022-05-04 00:38:57 +02:00
Miodec
49befe4f76 unborked the code 2022-05-04 00:34:38 +02:00
Miodec
61292dfb8c fixed previous commit 2022-05-04 00:23:31 +02:00
Miodec
a4ca55cb73 converted report dao to dal 2022-05-04 00:17:34 +02:00
Bruce Berrios
12a63b1cb4
Ape keys dal (#2925) bruception
* Convert Ape-keys DAO to DAL

* Fix this reference
2022-05-04 00:13:48 +02:00
Miodec
a41bcad72d further stripping results of empty / zero values and then resetting them back to default when downloading results 2022-04-28 16:05:53 +02:00
Miodec
89e99fa668 added get last result to public api
closes #2893
2022-04-28 12:39:18 +02:00
Miodec
e419187d2c added get stats endpoint
closes #2892
2022-04-28 12:22:54 +02:00
Rizwan Mustafa
369f96691e
Refactor User DAL (#2857) rizwan
* Create romanian quotes (#2846) DKparadox

* Create romanian

* Add files via upload

* Rename romanian quotes.json to romanian.json

* Delete romanian

* Update romanian.json

* Update romanian.json (#2852) DKparadox

* Refactor User DAL

* Remove unnecessary check

* Add stack var in getUser

* removed unnecessary throw

* Fix error

Co-authored-by: DKparadox <93858181+DKparadox@users.noreply.github.com>
Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-04-27 16:42:17 +02:00
Miodec
5f47133b31 added better error message
closes #2871
2022-04-27 16:08:03 +02:00
Evan
58505a9f31
Fix Collection Types (#2864) 2022-04-24 01:37:05 +02:00
Jack
b60e6905ce
Made username non optional (#2859)
* reduced code repetition

* throwing error when no name provided

* stopping signout if no current user

* expanded to 16 chars

* moved code to popup file

* added google sign up popup

* checking if name is available in the backend

* deleting account if popup was closed
uncommented sign up process
addd functions to enable and disable input

* added google sign up event to avoid circular dependency

* hiding by default

* name is no longer optional
user is deleted if its database object is not found

* using loader to indicate background activity
2022-04-23 19:46:41 +02:00
Jack
bdacc24660
Converted new quotes to typescript (#2844)
* renamed to ts

* added type for new quote

* converted to ts

* renamed dao to dal, fixed logic
2022-04-21 17:23:24 +02:00
Jack
6598823d60
Converted leaderboards DAO to typescript (#2843)
* added type for leaderboard entry

* converted leaderboards to ts

* fixed return type

* renamed occurences to DAL

* removed as any

* removed as any

* removed type casting
2022-04-21 12:24:13 +02:00
Rizwan Mustafa
b4c191e931
Convert ResultDAO to typescript and rename to DAL (#2838)
* Started conversion to typescript

* Added types to db collection

* Removed changed logic
2022-04-19 13:49:12 +02:00
Rizwan Mustafa
a0d5392884
(Backend) Ability to make Quotes Favorite (#2826) rizwanmustafa
* Created API for making quotes fav

* Moved routes over to quotes

* Renamed favQuotes to favoriteQuotes

* Renamed routes

* Removed error to prevent confusion and panic

* Added regex check for quote id and added fav quote number check

* Some fixy

* Added configuration for max favorite quotes

* Added grouping

* Created variable for storing collection

* Changed variable name

* Changed variable name

* Fixed some problems

* Fixed bug

* Added length chekc for quoteId

* MOved routes over to user

* Renamed routes
2022-04-14 22:53:44 +02:00
Rizwan Mustafa
f07a6dd656
Convert UserDAO to typescript & rename to UserDAL (#2821)
* Started conversion to typescript

* Some more fixy fixy

* Final fixy fixy or at least that is what it seems

* Even more fixy fixy

* Add verifed = false upon usre creation

* Added return type

* Removed extra data

* Fixes

* Removed class syntax of UserDAO

* Name fix

* Renamed UserDAO to UserDAL

* Fixed errors

* Fixed some problems

* Fixed pb bug

* Strict Equality

* Var name change

* Var name change
2022-04-14 18:07:28 +02:00
Miodec
ccd0bd6174 added support for approving quotes of one language
closes #2825
2022-04-11 16:05:07 +02:00
Miodec
e6fcc2daf2 added name field to approved quotes. closes #2824 2022-04-11 15:55:59 +02:00
Miodec
5545b8e0a3 added error message if user is already linked
closes #2794
2022-03-31 19:47:18 +02:00
Bruce Berrios
beb7e35dcb
Remove class syntax from controllers (#2791)
* Remove class syntax from controllers

* Specify base and rename
2022-03-30 18:20:13 -04:00
Rizwan Mustafa
020ac5cb24
Add logging support from Winston with colored output (#2774)
* Converted initial outputs to color outputs

* Some more coloring

* Colored all error outputs

* Completed coloring of outputs

* Created basic logger instance

* Moved over to Winston for logging

* Remove unnnecessary stuff

* Added max file size

* Renamed log to logToDb

* minor refactor and added tab separation with timestamps

* Some changes. Thanks Bruception

* Created wrapper for logger

* Tiny refactor

* Some fixes

* Some fixes

* Update example env

* Remove general

* using default yellow, making colors bold

* removed square brackets

* removed square brackets

* using logger instead of console log

* updated timestamp format

* moved comment up

* Fixed typo

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-03-27 11:29:11 -04:00
Miodec
a8bf141ed7 checking if resulthash length is 40 2022-03-25 20:46:35 +01:00
Rizwan Mustafa
47c7fd42c7
Improve webpack - Reduced filesize by 18% by converting from node-object-hash to object-hash (#2768) rizwanmustafa
* Refreshed the PR

* not sending stringified result anymore

* removed length check

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-03-25 15:36:04 +01:00
Bruce Berrios
4999fd4bf5
Add Redis client and george task queue (#2765) bruception
* Add Redis client and george task queue

* Add queue configuration

* Change dual write
2022-03-25 13:13:54 +01:00
Miodec
ef5ebe6eb9 cloning request body instead of referencing 2022-03-17 15:09:04 +01:00
Miodec
9f6322e572 temp typo 2022-03-16 23:43:06 +01:00
Miodec
7ee40b6b6f Revert "removing custom text from the hash"
This reverts commit 3b01cd4f19.
2022-03-16 23:00:18 +01:00
Miodec
3b01cd4f19 removing custom text from the hash 2022-03-16 22:41:21 +01:00
Miodec
b6aa92b5cd temp 2022-03-16 21:34:02 +01:00
Miodec
b0a32f37b7 logging test duration 2022-03-16 14:32:40 +01:00
Miodec
e4632d3f91 added buffer second 2022-03-16 14:31:19 +01:00
Miodec
052e120bd8 rewrote spacing check, should work more reliably 2022-03-16 14:17:40 +01:00
Miodec
9dae088202 added result, language and funbox counters 2022-03-12 16:11:00 +01:00
Miodec
fa634e0426 stopping rank command from running if leaderboard is updating 2022-03-11 15:20:43 +01:00
Jack
5bccc789aa
added curly rule, fixed all errors (#2677) 2022-03-10 21:56:45 +01:00
Jack
9e41df2158
Leaderboard update flag (#2676)
* blocking leaderboard get requests if lb is updating

* locking lb while its updating

* brackets
2022-03-10 21:34:20 +01:00
Jack
34e730c6fc
Custom themes storage (#2660)
* Fixed typo

* Created method for adding theme in the UserDAO:

* Created function for checking if custom theme object is valid

* Exported the isThemeValid function

* Added controller for adding customTheme

* Created route for adding custom theme

* Created rateLimit for adding customTheme

* Fixed typo

* Fixed incorrect color length

* Added method for removing, getting and editing custom themes on the backend

* Moved validations from controllers to routes and some aesthetic changes in the user dao

* Started working on frontend and some minor changes in the backend

- Commandline support for custom themes
- Allow user to shift to their custom theme using Shift-click
- Updated the backend to be compatible with some changes
- Create a new custom theme for users with old system to prevent their custom theme loss

* Fixed custom theme type in ape and now new custom theme is created if user clicks the custom tab and doesn't already have one

* Fixed ape type issue

* Format html file

* Fixed wrong tab being active

* Created new custom theme edit section

* Fixed bug where user theme would have impact on icons with custom theme

* Update customThemes API

* Updated the custom theme sharing option to work with multiple custom themes

* Started working on the UI for custom theme buttons

* Added DOM event for clicking custom theme buttons

* Updated the updateActiveButton to work with multiple custom themes

* Removed favorite button for themes and fixed bug where double theme buttons were being added

* Fixed bug where preset theme buttons were not appearing if user has applied custom theme on website load and refreshed

* Moved DOM event for sharing custom theme to more appropriate place

* Integrated the save custom theme button with the changes

* Fixed bug with custom theme tab buttons and theme buttons

* Fixed commented div

* Replaced 'sds' with a meaningful message for custom theme buttons

* Integrated the delete button for deleting custom themes and fixed bug where id of newly added custom theme was not set properly

* Integrated the add button and name field for custom themes editing

* Added addCustomThemeWrapper element

I added it before but seems like vscode and other editors can't handle large files

* Removed some debug statements

* Removed some more debug statements

* Used parial types for custom theme. Thanks Bruce

* Removed unnecssary try catch blocks. Thanks Bruce

* Rephrased custom theme API messages

* Set new theme fields explicitly to prevent validtion failures and rephrased API message

* Replaced let with const

* Replaced let with const for _id

* Replaced let with const and used nullish coalescing

* Improved code quality in User DAO

* Strict equality in user DAO

* Moved validation scheme to a variables at the top of file

* Fixed bugs with strict equality checks

* Renamed themeId to themeID for consistency

* Made customThemes a required type in db to remove unnecessary undefined checks

* Uncommented GET API endpoint

* Prevent colorId being updated on custom theme name chnage

* Removed debug log

* Added loader on api calls

* Commenced shift from customThemeIndex to customThemeId

* Added required to themeColors schema

* Temp fix for validation fail for customThemeId

* Changed default value of customThemeId back to ''

* Temp fix for validation fail for customThemeId

* Fixed minor bug

* Fixed bug where account-controller would pass undefined to ThemeController.set

* Created methods in db.ts for adding, deleting and editing custom themes. Created new interface for raw custom themes and renamed ape methods

* Removed repeating code in account-controller

* Removed repeating code in theme-picker

* Removed setThemes in config

* Fixed minor bug

* Removed repeating code in user DAO

* Made custom themes available to registered users only

* Fixed minor bug

* Removed debug log and updated custom theme commands before showing list

* Added popup for confirming custom theme deletion

* Added custom option for random theme

* Minor improvement

* Workaround for local config firing before firebase initalization

* Removed debug log and created workaround for migration

* Added legacy customTheme config field

* Replaced workaround

* Changed put to patch

* Changed put to patch

* Added customTheme field back

* Integrated customTheme into to feature

* Added notifications for users when they access custom theme cmd option without being logged in

* Removed debug logs and comments

* Replaced literals with constant. Thanks Bruception

* Fixed wrong querySelector parameters and reset custom theme colors after deleting a custom theme

* added notification on save

* duplicating object instead of referencing

* Added return type on function

* Fixed wrong notification code

* spreading default config instead of referencing

* added index, psas, configs, presets

* camel_case

* added ape keys, leaderboards, results, quotes

* Modified setCustomTheme

* Modified setCustomThemeId

* Added tip for random themes settings

* Modified setCustomThemeId

* Now load custom theme before account loading

* Added custom theme compatibility for non-logged in users to theme-controller

* Now update tabs and buttons on custom theme config value change and modified boolean checks to use customTheme instead of customThemeId

* Fixed bug

* Refactoring in theme-controller.ts

* Enable custom theme support in commandline for logged out users

* More refactoring in theme-controller.ts

* Added custom theme compatibility for logged out users

* Removed double events in settings.ts and now turn on custom theme upon applying

* Fixed bug and recursive call

* Fixed bug

* Fixed random theme custom option

* Fix jquery wrong syntax

* Readded notification upon custom theme edit

* One notification upon error only

* Change notification type

* New custom themes now have default colors

* Notification on custom theme edit for non-logged in users

* Refresh buttons upon settings load

* missing gitignore

* updated message

* updated message

* setting config to unchanged when logging in to avoid issues with applying db config

* reverted some over complicated code, excessive auth checks

* removed customthemeid from config

* not setting custom theme id

* removed all customthemeid references

* removed commented code

* removed name field

* added edit button

* unused file

* removed popup

* removed add button, removed text

* removed duplicate code

* added simple popup checkbox support

* whitespace

* added custom theme popups

* removed warning when no custom themes were found

* removed add button click handler

* added function to save custom theme

* saving current theme not default

* removed custom theme id from default config

* not creating new theme by default, just applying

* reacting to customThemeColors save

* unnecessary function call

* removed unused code

* small refactor

* spacing

* unnecessary code

* turned off warnings for non null asertion

* showing theme name when randomising customs

* Revert "turned off warnings for non null asertion"

This reverts commit 433e1dc767.

* optional with default instead

* fixed custom theme colors always loaded on page load

* fixed custom theme buttons not showing up

* fixed various loading issues

* fixed custom theme edit styles

* showing custom in footer, removed unused code

* savaing custom theme colors
fixed typos

* changing theme

* updated custom theme buttons styling

* scaling custom theme buttons on hover

* not updating settings on theme event

* fixed quote id

* only showing custom themes when logged in

* updating save button text depending on auth state

* fixed double notification when trying to save too many custom themes

* fixed custom theme saving when signed out

* removed user check from db

* fixed exception when signed out user tried to open the custom themes command line

* ignoring file when compiling

* typo

* avoiding href errors

* setting href to an existing file
this fixes firefox custom themes not working

* better hex color regex

* spacing

* renamed function

* typo

* destructuring request

* removed unused function

* removed unused code

* removed unused code

* type fix

* removed non capturing group

* saving colors to config before saving custom theme

* encoding in base64

* added handler that can load themes in the old and new format from the url

Co-authored-by: Rizwan Mustafa <rizwanmustafa0000@gmail.com>
Co-authored-by: Rizwan Mustafa <69350358+rizwanmustafa@users.noreply.github.com>
2022-03-09 19:48:22 +01:00
Bruce Berrios
7fa2827a60
Final touches/tuning for ApeKeys (#2663)
* Final touches/tuning to ApeKeys

* Add rate limiting note

* Add malformed status
2022-03-09 19:40:35 +01:00
Bruce Berrios
2dba957adc
Add public api docs (#2656) by bruce
* Add public documentation

* typo

* added hard limit on the leaderboards

* ignoring worker when compiling

* added leaderboard routes

* leaderboards accept apekeys

* Fix docs

* Fix

* Specify parse base

* Add ape rate limiter

* added documentation link

* updated message

Co-authored-by: Miodec <bartnikjack@gmail.com>
2022-03-09 13:02:37 +01:00
Bruce Berrios
9dfb352a40
Update ape keys data model (#2655) by bruce
* Update ape keys data model

* Add use count

* Add safer check
2022-03-08 00:41:04 +01:00
Bruce Berrios
61ebf2cc39
Add error handling for bad requests (#2654) by bruce
* Add error handling for bad requests

* Fix status code

* Update

* Tidy status codes
2022-03-07 22:16:42 +01:00
Bruce Berrios
f4bfb938b2
Consolidate personal bests endpoints (#2653) 2022-03-07 11:25:12 -05:00
Bruce Berrios
3240abc22e
Enable strict null checks in backend (#2639)
* Enable strict null checks in backend

* Fix

* Use non-null assertion

* Add none
2022-03-07 11:10:07 -05:00