* edited build-main.yml to have workflow_dispatch
* re-added pgadmindata to docker compose
* removed disclaimer about being run on my personal laptop as that's no longer true
---------
Co-authored-by: Aster Fialla <asterfialla@gmail.com>
* Update dockerfile for standalone deployment (#23)
* Add files via upload
* Update Docker image for pluralflux service
* removing unnecessary network and container name definitions
---------
Co-authored-by: Aster Fialla <asterfialla@gmail.com>
* Converting ES6 back to CJS (#25)
converting back to cjs
Co-authored-by: Aster Fialla <asterfialla@gmail.com>
* Fix: Further converting ES6 to CJS - Making exports named instead of default (#26)
* adding to git ignore
* making imports named not default to not break all my tests
* adjusted setup for memberhelper test
---------
Co-authored-by: Aster Fialla <asterfialla@gmail.com>
* feat: add db migrations with typeORM (#28)
* adding typescript packages for typeORM
* add typeORM initial files
* updating package scripts
* updating compose.yaml to have an exposed port for the postgres
* modifying setup for typeORM
* update database stuff and and package.json to help generate migrations
* made models and migrations in typeORM
* delete unneeded database.js
* made database pattern ignored by jest
* remove sequelize
* separate member repo from member helper
* not sure why i made everything numbers in the model but it's fixed now
* edited package.json script
* remove unused index.ts
* adjusted files to reference repository correctly and appdatasource
* made appdatasource export as named
* removed start-db script
* added init to appdatasource in bot.js
* migrations finally!
* new migration matching model names I want
* updating tests
* removing testpathignore patterns since it seems to be unecessary?
* adjusting migrations to match current schema
* removed reference to secrets file
* delete old migration
* Revert "delete old migration"
This reverts commit db1efa39a7.
* Revert "adjusting migrations to match current schema"
This reverts commit ef89a83f6a.
* just deleted system creation since it's got nothing in it anyway
* renamed memberRepository to memberRepo for consistency
* added await back to parseMemberCommand call to memberArgumentHandler
* changed call to memberHelper.getMembersByAuthor to memberRepo
* renamed repo updateMemberValue to updateMemberField
* removed throw references in repo docstrings
* remove unneeded subscriber directory ref
* changed createdAt and updatedAt columns to be auto-generated
made member table have timezone
* changed casing of isInitialized in mock for bot.js
* removed % from ILike query so that it doesn't match substrings/wildcard
* renamed some stray updateMemberValue in mocks -> updateMemberField
---------
Co-authored-by: Aster Fialla <asterfialla@gmail.com>
* feat: Add migration to migrate existing data to new member table (#29)
added migration to fill new Member table with data from Members
Co-authored-by: Aster Fialla <asterfialla@gmail.com>
* fix: update message helper reference hotfix (#30)
* forgot to update a reference in messageHelper to memberRepo instead of memberHelper
* turned off data-source logging
---------
Co-authored-by: Aster Fialla <asterfialla@gmail.com>
* fix: update dockerfile to run npm start (#31)
fix: update dockerfile to run npm start (which runs ts-node) instead of node
Co-authored-by: Aster Fialla <asterfialla@gmail.com>
* added .env with examples, updated data-source to be access a docker container instead of relying on loopback
* i forgot to git add data-source.ts 🤦
* fix: changed property reference for createMember in repo (#32)
fix for createMember object references (was referencing non-existent properties)
Co-authored-by: Aster Fialla <asterfialla@gmail.com>
* fix: memberRepo methods syntax (#35)
* rearranged update member field and remove member to match expected structure in typeORM
* update docstring
* change insert to save in memberRepo
* added command in package.json
---------
Co-authored-by: Aster Fialla <asterfialla@gmail.com>
* Delete duplicate members migration (#33)
* add migration to delete duplicates that currently exist in the db
* added a name attribute for consistency
---------
Co-authored-by: Aster Fialla <asterfialla@gmail.com>
* Add unique index migration (#34)
* add migration to delete duplicates that currently exist in the db
* change model and migration to add a unique index constraint to id and name
* renamed unique index name to be readable
* redid model and migration to use @Unique instead of @Index
* remove //Here comment
---------
Co-authored-by: Aster Fialla <asterfialla@gmail.com>
* why wont these workflows stay up gahdamn
---------
Co-authored-by: Laika Bozhko <63646916+LaikaBzko@users.noreply.github.com>
Co-authored-by: Aster Fialla <asterfialla@gmail.com>
Co-authored-by: laika <laika@sanya.gay>
* refactored async/await for import helper to not also use then/catch
* added enum
* refactor webhookHelper and tests to not use then/catch
* changed docstring
* refactoring bot and tests to not use then/catch
* refactoring commands.js and tests to not use then/catch
* refactoring memberHelper.js and tests to not use then/catch
* removing then/catch from messageHelper.test.js
* fixed set up for commands tests
* edited bot to have top level main function
* one more test in commands.js, and removed console.error
* fixed typo in webhookHelper
* forgot to switch over some tests in bot.test and commands.test
* removed console.log from import helper
* put console.error in commands
* converted utils.js to not use then/catch
* tested utils checkImageFormatValidity
* removed jest-fetch-mock since it turns out I was just manually mocking it anyway
* refactored database to not use then/catch
* added dash to commands.js and test to pass
* added the remaining webhook tests
* changed utils to check for 10MB size not 1MB
* removed unnecessary try/catch from utils
* Simplify getWebhook to use .find() instead of foreach logic
* make memberCommand exit when error occurs with parseMemberCommand
* changed commands.js to not have user interaction within the catch
* updated console.error message in database.js
* made importHelper mock throw error instead of "resolve" error
* replaced "pk;" with "pf;" in test
* Got rid of unnecessary check for empty message from user (Fluxer doesn't allow this to happen)
Removed export of token
* getAllMembersInfo checks for fields.length
* added default case to memberCommandHandler to throw error if command is not recognized
* reversed check for valid proxy (was returning valid if the proxy existed and invalid if it didn't)
* pushes e.message instead of full error object to errors array in importHelper
* adjusted tests to properly use mockRejectedValue for async rejections
* changed getAllMembersInfo map to say `index` not `name` as it actually gets the index of a member and then the member object
* adjusted importHelper to properly test throwing of aggregate error
* revamped setting of expiration warning (moved to utils and changed logic, wrote tests)
---------
Co-authored-by: Aster Fialla <asterfialla@gmail.com>
Tests are mostly complete (though some are failing -- to be fixed in the
async/await refactor.
Also refactored, fixed bugs found while testing, and added ability to
type `pf;m` instead of `pf;member`.
---------
Co-authored-by: Aster Fialla <asterfialla@gmail.com>
* converted import syntax to ES modules
removed unused methods
* got test sort of working (jest set up is not crashing but also not mocking correctly)
* adjusted beforeeach/beforeall so more pass
* more correct test setup
* converted import syntax to commonJS
removed unused methods
* got test sort of working (jest set up is not crashing but also not mocking correctly)
* adjusted beforeeach/beforeall so more pass
* more correct test setup
* more correct dockerfile and compose.yaml
* Revert "converted import syntax to commonJS"
This reverts commit 5ab0d62b
* updated jest to sort of work with es6
* separating out enum return from method return
* mostly working except for the weirdest error
* nevermind it wasn't actually working, gonna move on for now
* added babel to convert es modules to cjs
* finally figured out issue with tests (referencing the method directly in the test.each calls the real method not the mock in beforeEach())
* setup fixed more
* added error handling parseMemberCommand test
* renamed db to database
more tests and fixing logic for memberhelper
* upgraded fluxer.js
* moved import to helpers folder
* moved import to helpers folder
* more tests for member helper
* think i fixed weird error with webhook sending error when a user has no members
* simplified sendMessageAsAttachment
* added return to addFullMember so that addNewMember can reference it properly in strings
* test setup for messagehelper and webhookhelper
* readded line i shouldn't have removed in sendMessageAsMember
* fixed test and logic
* added test for memberHelper
* updated sendMessageAsAttachment to returnBufferFromText and updated commands/webhookHelper accordingly
* added tests for parseProxyTags and updated logic
* added "return" so tests dont terminate on failure and deleted env.jest
* finished tests for messageHelper!
* more cases for messageHelper just in case
* updating docstring for messageHelper parseProxyTags
* more tests for webhookhelper
* deleted extra file added during merge
* removed confusing brackets from enum docs
* finally mocking correctly
* adding more cases to messageHelper tests
* updating enums
* removed error response when proxy is sent without content
* , updated tests for webhookHelper and removed error response when proxy is sent without content
* added debounce to count guilds properly
* added todo note
* added tests for updateDisplayName
* edited help message trigger for updatePropic
* update message helper test to include space case
* update bot to suppress errors from API
* fixed bug for import not sending help text, added help text if you type a unrecognized command
* updated to be enum
* updated member helper and tests
* edit enums, tweak import content command
* removed unnecessary await and console.log
* made it easier to make a member
* added nicer error listing to importHelper
* updated documentation
* Merge branch 'main' of https://github.com/pieartsy/PluralFlux into add-tests
---------
Co-authored-by: Aster Fialla <asterfialla@gmail.com>