{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":301575581,"defaultBranch":"main","name":"volume-backend","ownerLogin":"cuappdev","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-10-06T00:45:02.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/17533691?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1701043007.0","currentOid":""},"activityList":{"items":[{"before":"6ac28e37cce9bcc232416ef64d53dd2fc4ab6889","after":null,"ref":"refs/heads/release-copy","pushedAt":"2023-11-26T23:56:47.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"vinnie4k","name":"Vin Bui","path":"/vinnie4k","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/75594943?s=80&v=4"}},{"before":"18537bbf46fbc665a46deb12877667f7c7d8fbfb","after":"c1ecbf3f4082e1972f4699f775881cb5f5e8ff92","ref":"refs/heads/release","pushedAt":"2023-11-26T23:56:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"vinnie4k","name":"Vin Bui","path":"/vinnie4k","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/75594943?s=80&v=4"},"commit":{"message":"Merge `main` to `release` (#129)\n\n* Add Jest testing (#63)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Add Docstrings to Test Factory Functions (#64)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\n* Add docstrings\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update README.md\r\n\r\n* Implement community board models (#65)\r\n\r\n* Implemented community board models\r\n\r\n- implemented Flyer and Organization models for community board feature\r\n- modified User model\r\n- updated typescript version to 4.0.5 to resolve es lint issue\r\n\r\n* Revert package.json changes\r\n\r\n- reverted package.json changes that are addressed in a different pr\r\n\r\n* Add magazines to weekly debrief (#66)\r\n\r\n* Implemented community board models\r\n\r\n- implemented Flyer and Organization models for community board feature\r\n- modified User model\r\n- updated typescript version to 4.0.5 to resolve es lint issue\r\n\r\n* Implemented weekly debrief magazines\r\n\r\n- added magazines to weekly debrief feature\r\n- updated user and weekly debrief models to allow tracking of read magazines\r\n- updated logic in user and weekly debrief controllers to enable reading of magazines\r\n\r\n* Revert package.json changes\r\n\r\n- reverted package.json changes back to the original file\r\n- added additional rules to eslintrc to suppress es lint warnings\r\n\r\n* Create jest testing for magazines\r\n\r\n- added jest test cases for magazines\r\n\r\n* Implement jest testing for User\r\n\r\n- implemented unit testing for UserRepo\r\n- indirectly test Weekly Debrief with User unit tests\r\n\r\n* Update gitignore\r\n\r\n- updated gitignore file to include secrets folder\r\n\r\n* Implement reshuffle articles (#68)\r\n\r\n* Add Docstrings to Test Factory Functions (#64)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\n* Add docstrings\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\nImplement shuffle article function\r\n\r\ntry to implement reshuffling with aggregate\r\n\r\n* Implement reshuffling of articles\r\n\r\n* Revert package.json, update eslint and update .gitignore to match main branch\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\n\r\n* Implement magazine search (#69)\r\n\r\n* Implement magazine search\r\n\r\n- implemented searching for magazines\r\n\r\n* update magazinerepo\r\n\r\n* Add unit test for magazine search\r\n\r\n- created unit test for MagazineRepo.searchMagazine\r\n\r\n* Convert result of shuffling resolver to ArticleModel (#71)\r\n\r\n* Add 3 new publications (Cornell Daily Sun, Collective X, and Cornell Healthcare Review) to publications.js (#70)\r\n\r\n* Resolve merge conflicts in publications.json (keep release version) (#76)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Revert \"Resolve merge conflicts in publications.json (keep release version) (#76)\" (#77)\r\n\r\nThis reverts commit eccf00c0fe5ebbbe81bf9b1f643640d991cb1c29.\r\n\r\n* fix merge conflicts (#78)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Implement community board [1/7] (#81)\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement flyers for community board\r\n\r\n- alphabetized imports and fields\r\n- finished implementing flyers for community board\r\n\r\n* Address pr review comments\r\n\r\n- addressed pr review comments\r\n- removed redundant filtering in FlyerRepo\r\n- added checks for null return values in FlyerRepo\r\n- alphabetized imports and exports\r\n\r\n* Add imageURL field to Magazine entity. (#73)\r\n\r\n* Add no rules to volume-backend's publications.json (#82)\r\n\r\n* Implement community board (flyer tests) [2/7] (#84)\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement flyers for community board\r\n\r\n- alphabetized imports and fields\r\n- finished implementing flyers for community board\r\n\r\n* Implement jest testing for flyers\r\n\r\n- created jest unit testing for FlyerRepo\r\n- created FlyerFactory to help with jest testing\r\n\r\n* Remove isFiltered field from Flyer entity\r\n\r\n- removed redundant isFiltered field from Flyer entity (already checked in microservice)\r\n- updated FlyerRepo and jest testing to reflect changes\r\n\r\n* Alphabetize imports and exports\r\n\r\n- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory\r\n\r\n* Revert merge conflict changes\r\n\r\n- reverted merge conflict changes (accept incoming when actually wanted to keep current)\r\n\r\n* Address review comments\r\n\r\n- alphabetize imports\r\n- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response\r\n- added unit test case for FlyerRepo.getTrendingFlyers\r\n\r\n* Address review comments (Shungo)\r\n\r\n- added spaces between test cases\r\n\r\n* Implement community board organizations (#85)\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement community board (organization tests) [4/7] (#86)\r\n\r\n* Implement community board organizations\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement jest testing for organizations\r\n\r\n- implemented jest testing for community board organizations\r\n- created organizations.json with 3 onboarded organizations\r\n- added FlyerResolver and OrganizationResolver to app.ts\r\n\r\n* Implement community board (user queries/mutations) [5/7] (#87)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement basic community board features\r\n\r\n- finished implementing basic organization and flyer repos/resolvers\r\n- created jest testing for organization and flyer repos\r\n\r\n* Remove unnecessary OrganizationRepo function\r\n\r\n- removed content types route from organization repo and organization resolver\r\n\r\n* Implement user routes for community board\r\n\r\n- implemented user routes for community board to allow following orgs and reading flyers\r\n- added jest unit test cases for new UserRepo functions\r\n\r\n* Implement mutations for following and unfollowing organizations\r\n\r\n- added resolvers to UserResolver for following and unfollowing organizations\r\n- updated documentation in UserRepo\r\n- added import of FlyerRepo in app.ts\r\n\r\n* Address pr review comments\r\n\r\n- fix spelling\r\n\r\n* Address pr review comments\r\n\r\n- made style consistent in UserRepo by checking for if(user) in appendReadFlyer, appendReadArticle, and appendReadMagazine\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Onboard organizations (#90)\r\n\r\n- add organizations from volume-microservice onto organizations.json\r\n\r\n* Implement community board (categories and org lists) [6/7] (#89)\r\n\r\n* Implement community board organizations\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement jest testing for organizations\r\n\r\n- implemented jest testing for community board organizations\r\n- created organizations.json with 3 onboarded organizations\r\n- added FlyerResolver and OrganizationResolver to app.ts\r\n\r\n* initial commit\r\n\r\n* Implement organizations as list for flyer model\r\n\r\n- updated flyer model to allow a list of organizations and organizationSlugs to be associated with each flyer\r\n- updated flyer and organization queries accordingly\r\n- added unit jest test cases and update old ones accordingly\r\n\r\n* Address pr review comments\r\n\r\n- removed redundant resolvers\r\n- updated getOrganizationByCategory test\r\n\r\n* Address pr review comments (kate)\r\n\r\n- updated docs in OrganizationResolver\r\n\r\n* Implement cboard start and end dates (#93)\r\n\r\n* Implement end dates\r\n\r\n- implemented start and end dates\r\n- changed shoutouts to times clicked\r\n- updated testing and documentation to reflect changes\r\n\r\n* Address pr review comments\r\n\r\n- removed async from getFlyersBeforeDate and getFlyersAfterDate\r\n- updated documentation in FactoryUtils\r\n\r\n* add incrementTimesClicked to resolver\r\n\r\n* update organization shoutouts query (#94)\r\n\r\n* Implement end dates\r\n\r\n- implemented start and end dates\r\n- changed shoutouts to times clicked\r\n- updated testing and documentation to reflect changes\r\n\r\n* Address pr review comments\r\n\r\n- removed async from getFlyersBeforeDate and getFlyersAfterDate\r\n- updated documentation in FactoryUtils\r\n\r\n* add incrementTimesClicked to resolver\r\n\r\n* Update organization clicks\r\n\r\n- changed shoutouts query to clicks in OrganizationResolver\r\n\r\n* Implement trending flyers logic (#95)\r\n\r\n- updated trending flyers logic\r\n- updated FlyerRepo\r\n- updated documentation in FlyerResolver\r\n\r\n* Fixed notification issue (#97)\r\n\r\n* Flyer Notifications + Org/Flyer Model Changes (#99)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Inline notification calls\r\n\r\n* Improve Search Algorithm (#101)\r\n\r\n* Update README.md start instructions\r\n\r\n* Update search function for articles\r\n\r\n* Remove console log\r\n\r\n* Update articles search to use text search instead of regex\r\n\r\n* Update search for Flyers and Magazines\r\n\r\n* Update documentation, remove unused Fuse package\r\n\r\n* Fix README.md start docs\r\n\r\n* Filter out past flyers during flyers search\r\n\r\n* Fix formatting, improve concision\r\n\r\n* Remove start.md\r\n\r\n* Changed indexing method to being declared on the models\r\n\r\n* Update README.md\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n---------\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* getFlyersByCategorySlug Query (#100)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Added getFlyersByCategorySlug query\r\n\r\n* Update query description\r\n\r\n* Inline notification calls\r\n\r\n* Update flyer.test.ts\r\n\r\n* Update flyer.test.ts\r\n\r\n* Merge `vin/create-flyer` to `main` (#104)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Added getFlyersByCategorySlug query\r\n\r\n* Update query description\r\n\r\n* Inline notification calls\r\n\r\n* Add createFlyer mutation\r\n\r\n* `deleteFlyer` mutation (#103)\r\n\r\n* Add deleteFlyer mutation\r\n\r\n* Address PR comments\r\n\r\n* Update utils.ts\r\n\r\n* Update FlyerRepo.ts\r\n\r\n* Trendiness Update and Migration Script for New Flyers Model (#106)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Zach/trendiness and migration hot fix (#107)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Fix TypeScript compilation error\r\n\r\n* Micro PR for Flyers categorySlug migration (#108)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Fix TypeScript compilation error\r\n\r\n* Update migration script to account for category slug\r\n\r\n* Fix formatting for flyers test\r\n\r\n* Create `editFlyer` mutation (#105)\r\n\r\n* Add `editFlyer`\r\n\r\n* Address PR comments\r\n\r\n* `checkAccessCode` query for Organization authentication (#109)\r\n\r\n* Added Organization authentication\r\n\r\n* Updated Authorization\r\n\r\n* Implemented getAllFlyerCategories and tests (#110)\r\n\r\n* Implemented getAllFlyerCategories and tests\r\n\r\n* update jest\r\n\r\n* update jest\r\n\r\n* implemented suggestions from zach, vin, and archit\r\n\r\n* got rid of ESLint comment\r\n\r\n* fixed names for tests\r\n\r\n* Added loops to test cases\r\n\r\n* Fixed test case to create flyers with the same category\r\n\r\n* Changed 'push' to 'concat'\r\n\r\n---------\r\n\r\nCo-authored-by: Cindy \r\n\r\n* Changing specifications for getFlyersBeforeDate and getFlyersAfterDate (#112)\r\n\r\n* Cindy/flyer categories (#113)\r\n\r\n* Implemented getAllFlyerCategories and tests\r\n\r\n* update jest\r\n\r\n* update jest\r\n\r\n* implemented suggestions from zach, vin, and archit\r\n\r\n* got rid of ESLint comment\r\n\r\n* fixed names for tests\r\n\r\n* Added loops to test cases\r\n\r\n* Fixed test case to create flyers with the same category\r\n\r\n* Changed 'push' to 'concat'\r\n\r\n* Updated `getAllFlyerCategories`\r\n\r\n---------\r\n\r\nCo-authored-by: Cindy \r\nCo-authored-by: Vin Bui \r\n\r\n* Increased HTTP request size (#114)\r\n\r\n* Added limit to JSON request body\r\n\r\n* Update package-lock.json\r\n\r\n* Add error message (#116)\r\n\r\n* Added limit to JSON request body\r\n\r\n* Update package-lock.json\r\n\r\n* Added error message\r\n\r\n* Update FlyerMiddleware.ts (#119)\r\n\r\n* Update publications.json (#122)\r\n\r\nAdd WoMENA as a publication\r\n\r\n* Change Create Flyer route to use form data for image upload (#121)\r\n\r\n* Add post express route using form data\r\n\r\n* Remove .idea\r\n\r\n* revert readme\r\n\r\n* try catch for large file uploads\r\n\r\n* Remove uncertain comments\r\n\r\n* Refactor upload image util to use form data\r\n\r\n* Cover the case where the Flyer ID that was sent is invalid\r\n\r\n* Update file key, add documentation\r\n\r\n* Fixed issue with edit flyer (#124)\r\n\r\n* Fixed issue with edit flyer\r\n\r\n* Update app.ts\r\n\r\n* Adding routes and migration script for bookmarking (#126)\r\n\r\n* Adding routes and migration script for bookmarking\r\n\r\n* Refactoring WeeklyDebrief\r\n\r\n* Fixing unbookmarking functions\r\n\r\n* Adding (un)bookmark articles tests\r\n\r\n* More article bookmark tests\r\n\r\n* Adding more tests for flyers and magazines\r\n\r\n* Enabling notifications for adding, editing, and deleting a flyer (#118)\r\n\r\n* Implemented getAllFlyerCategories and tests\r\n\r\n* update jest\r\n\r\n* update jest\r\n\r\n* implemented suggestions from zach, vin, and archit\r\n\r\n* got rid of ESLint comment\r\n\r\n* fixed names for tests\r\n\r\n* Added loops to test cases\r\n\r\n* Fixed test case to create flyers with the same category\r\n\r\n* Changed 'push' to 'concat'\r\n\r\n* Enabled notifications for adding, editing, and deleting a flyer\r\n\r\n- Created a function in NotificationRepo.ts called notifyFlyersForOrganization that takes in a flyerID and a title of the notification\r\n- the title of the notification should reflect the action performed (add, edit, delete)\r\n- This function is called in FlyerResolver.ts\r\n\r\n* Added more specific body text for updating flyers, removed notifyNewFlyers\r\n\r\n* Addressed Vin's Comments\r\n\r\n- used enums for action commparison instead of strings\r\n- used template strings instead of concat\r\n- added documentation for the various branches of the if statement in the notification for editing a flyer\r\n\r\n* Addressing Vin's Comments\r\n\r\n- changed nested if statements to a switch block\r\n- used proper capitlization for Enums\r\n\r\n* add num flyers for organizations\r\n\r\n* Changed edit and delete flyer notifications to only be sent to users who have flyers bookmarked\r\n\r\n- in UserRepo added getUsersBookmarkedFlyers to get a list of all the users that have the desired flyer bookmarked\r\n- in NotificationRepo, factored out a function titled notifyFlyersForBookmarks\r\n- in FlyerResolver, for edit/delete flyers notifyFlyersForBookmarks will be called instead of notifyFlyersForOrganizations\r\n\r\n* fixed specs for added functions\r\n\r\n* addressing vin's comments\r\n\r\n---------\r\n\r\nCo-authored-by: Cindy \r\nCo-authored-by: Vin Bui \r\n\r\n* Update app.ts (#128)\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\nCo-authored-by: Shungo Najima \r\nCo-authored-by: Isaac Han \r\nCo-authored-by: Sasha Loayza <104698418+SashaLoayza@users.noreply.github.com>\r\nCo-authored-by: Zachary Seidner <58796478+zachseidner1@users.noreply.github.com>\r\nCo-authored-by: cindy-x-liang <67083541+cindy-x-liang@users.noreply.github.com>\r\nCo-authored-by: Cindy \r\nCo-authored-by: Aayush <68517064+Aayush-Agnihotri@users.noreply.github.com>\r\nCo-authored-by: Jennifer Gu <57200368+jjennifergu@users.noreply.github.com>","shortMessageHtmlLink":"Merge main to release (#129)"}},{"before":"18537bbf46fbc665a46deb12877667f7c7d8fbfb","after":"6ac28e37cce9bcc232416ef64d53dd2fc4ab6889","ref":"refs/heads/release-copy","pushedAt":"2023-11-26T23:54:44.000Z","pushType":"push","commitsCount":47,"pusher":{"login":"vinnie4k","name":"Vin Bui","path":"/vinnie4k","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/75594943?s=80&v=4"},"commit":{"message":"Merge branch 'main' into release-copy","shortMessageHtmlLink":"Merge branch 'main' into release-copy"}},{"before":null,"after":"18537bbf46fbc665a46deb12877667f7c7d8fbfb","ref":"refs/heads/release-copy","pushedAt":"2023-11-26T23:53:04.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"vinnie4k","name":"Vin Bui","path":"/vinnie4k","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/75594943?s=80&v=4"},"commit":{"message":"Merge `main` to `release` (#127)\n\n* Add Jest testing (#63)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Add Docstrings to Test Factory Functions (#64)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\n* Add docstrings\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update README.md\r\n\r\n* Implement community board models (#65)\r\n\r\n* Implemented community board models\r\n\r\n- implemented Flyer and Organization models for community board feature\r\n- modified User model\r\n- updated typescript version to 4.0.5 to resolve es lint issue\r\n\r\n* Revert package.json changes\r\n\r\n- reverted package.json changes that are addressed in a different pr\r\n\r\n* Add magazines to weekly debrief (#66)\r\n\r\n* Implemented community board models\r\n\r\n- implemented Flyer and Organization models for community board feature\r\n- modified User model\r\n- updated typescript version to 4.0.5 to resolve es lint issue\r\n\r\n* Implemented weekly debrief magazines\r\n\r\n- added magazines to weekly debrief feature\r\n- updated user and weekly debrief models to allow tracking of read magazines\r\n- updated logic in user and weekly debrief controllers to enable reading of magazines\r\n\r\n* Revert package.json changes\r\n\r\n- reverted package.json changes back to the original file\r\n- added additional rules to eslintrc to suppress es lint warnings\r\n\r\n* Create jest testing for magazines\r\n\r\n- added jest test cases for magazines\r\n\r\n* Implement jest testing for User\r\n\r\n- implemented unit testing for UserRepo\r\n- indirectly test Weekly Debrief with User unit tests\r\n\r\n* Update gitignore\r\n\r\n- updated gitignore file to include secrets folder\r\n\r\n* Implement reshuffle articles (#68)\r\n\r\n* Add Docstrings to Test Factory Functions (#64)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\n* Add docstrings\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\nImplement shuffle article function\r\n\r\ntry to implement reshuffling with aggregate\r\n\r\n* Implement reshuffling of articles\r\n\r\n* Revert package.json, update eslint and update .gitignore to match main branch\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\n\r\n* Implement magazine search (#69)\r\n\r\n* Implement magazine search\r\n\r\n- implemented searching for magazines\r\n\r\n* update magazinerepo\r\n\r\n* Add unit test for magazine search\r\n\r\n- created unit test for MagazineRepo.searchMagazine\r\n\r\n* Convert result of shuffling resolver to ArticleModel (#71)\r\n\r\n* Add 3 new publications (Cornell Daily Sun, Collective X, and Cornell Healthcare Review) to publications.js (#70)\r\n\r\n* Resolve merge conflicts in publications.json (keep release version) (#76)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Revert \"Resolve merge conflicts in publications.json (keep release version) (#76)\" (#77)\r\n\r\nThis reverts commit eccf00c0fe5ebbbe81bf9b1f643640d991cb1c29.\r\n\r\n* fix merge conflicts (#78)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Implement community board [1/7] (#81)\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement flyers for community board\r\n\r\n- alphabetized imports and fields\r\n- finished implementing flyers for community board\r\n\r\n* Address pr review comments\r\n\r\n- addressed pr review comments\r\n- removed redundant filtering in FlyerRepo\r\n- added checks for null return values in FlyerRepo\r\n- alphabetized imports and exports\r\n\r\n* Add imageURL field to Magazine entity. (#73)\r\n\r\n* Add no rules to volume-backend's publications.json (#82)\r\n\r\n* Implement community board (flyer tests) [2/7] (#84)\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement flyers for community board\r\n\r\n- alphabetized imports and fields\r\n- finished implementing flyers for community board\r\n\r\n* Implement jest testing for flyers\r\n\r\n- created jest unit testing for FlyerRepo\r\n- created FlyerFactory to help with jest testing\r\n\r\n* Remove isFiltered field from Flyer entity\r\n\r\n- removed redundant isFiltered field from Flyer entity (already checked in microservice)\r\n- updated FlyerRepo and jest testing to reflect changes\r\n\r\n* Alphabetize imports and exports\r\n\r\n- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory\r\n\r\n* Revert merge conflict changes\r\n\r\n- reverted merge conflict changes (accept incoming when actually wanted to keep current)\r\n\r\n* Address review comments\r\n\r\n- alphabetize imports\r\n- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response\r\n- added unit test case for FlyerRepo.getTrendingFlyers\r\n\r\n* Address review comments (Shungo)\r\n\r\n- added spaces between test cases\r\n\r\n* Implement community board organizations (#85)\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement community board (organization tests) [4/7] (#86)\r\n\r\n* Implement community board organizations\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement jest testing for organizations\r\n\r\n- implemented jest testing for community board organizations\r\n- created organizations.json with 3 onboarded organizations\r\n- added FlyerResolver and OrganizationResolver to app.ts\r\n\r\n* Implement community board (user queries/mutations) [5/7] (#87)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement basic community board features\r\n\r\n- finished implementing basic organization and flyer repos/resolvers\r\n- created jest testing for organization and flyer repos\r\n\r\n* Remove unnecessary OrganizationRepo function\r\n\r\n- removed content types route from organization repo and organization resolver\r\n\r\n* Implement user routes for community board\r\n\r\n- implemented user routes for community board to allow following orgs and reading flyers\r\n- added jest unit test cases for new UserRepo functions\r\n\r\n* Implement mutations for following and unfollowing organizations\r\n\r\n- added resolvers to UserResolver for following and unfollowing organizations\r\n- updated documentation in UserRepo\r\n- added import of FlyerRepo in app.ts\r\n\r\n* Address pr review comments\r\n\r\n- fix spelling\r\n\r\n* Address pr review comments\r\n\r\n- made style consistent in UserRepo by checking for if(user) in appendReadFlyer, appendReadArticle, and appendReadMagazine\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Onboard organizations (#90)\r\n\r\n- add organizations from volume-microservice onto organizations.json\r\n\r\n* Implement community board (categories and org lists) [6/7] (#89)\r\n\r\n* Implement community board organizations\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement jest testing for organizations\r\n\r\n- implemented jest testing for community board organizations\r\n- created organizations.json with 3 onboarded organizations\r\n- added FlyerResolver and OrganizationResolver to app.ts\r\n\r\n* initial commit\r\n\r\n* Implement organizations as list for flyer model\r\n\r\n- updated flyer model to allow a list of organizations and organizationSlugs to be associated with each flyer\r\n- updated flyer and organization queries accordingly\r\n- added unit jest test cases and update old ones accordingly\r\n\r\n* Address pr review comments\r\n\r\n- removed redundant resolvers\r\n- updated getOrganizationByCategory test\r\n\r\n* Address pr review comments (kate)\r\n\r\n- updated docs in OrganizationResolver\r\n\r\n* Implement cboard start and end dates (#93)\r\n\r\n* Implement end dates\r\n\r\n- implemented start and end dates\r\n- changed shoutouts to times clicked\r\n- updated testing and documentation to reflect changes\r\n\r\n* Address pr review comments\r\n\r\n- removed async from getFlyersBeforeDate and getFlyersAfterDate\r\n- updated documentation in FactoryUtils\r\n\r\n* add incrementTimesClicked to resolver\r\n\r\n* update organization shoutouts query (#94)\r\n\r\n* Implement end dates\r\n\r\n- implemented start and end dates\r\n- changed shoutouts to times clicked\r\n- updated testing and documentation to reflect changes\r\n\r\n* Address pr review comments\r\n\r\n- removed async from getFlyersBeforeDate and getFlyersAfterDate\r\n- updated documentation in FactoryUtils\r\n\r\n* add incrementTimesClicked to resolver\r\n\r\n* Update organization clicks\r\n\r\n- changed shoutouts query to clicks in OrganizationResolver\r\n\r\n* Implement trending flyers logic (#95)\r\n\r\n- updated trending flyers logic\r\n- updated FlyerRepo\r\n- updated documentation in FlyerResolver\r\n\r\n* Fixed notification issue (#97)\r\n\r\n* Flyer Notifications + Org/Flyer Model Changes (#99)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Inline notification calls\r\n\r\n* Improve Search Algorithm (#101)\r\n\r\n* Update README.md start instructions\r\n\r\n* Update search function for articles\r\n\r\n* Remove console log\r\n\r\n* Update articles search to use text search instead of regex\r\n\r\n* Update search for Flyers and Magazines\r\n\r\n* Update documentation, remove unused Fuse package\r\n\r\n* Fix README.md start docs\r\n\r\n* Filter out past flyers during flyers search\r\n\r\n* Fix formatting, improve concision\r\n\r\n* Remove start.md\r\n\r\n* Changed indexing method to being declared on the models\r\n\r\n* Update README.md\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n---------\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* getFlyersByCategorySlug Query (#100)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Added getFlyersByCategorySlug query\r\n\r\n* Update query description\r\n\r\n* Inline notification calls\r\n\r\n* Update flyer.test.ts\r\n\r\n* Update flyer.test.ts\r\n\r\n* Merge `vin/create-flyer` to `main` (#104)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Added getFlyersByCategorySlug query\r\n\r\n* Update query description\r\n\r\n* Inline notification calls\r\n\r\n* Add createFlyer mutation\r\n\r\n* `deleteFlyer` mutation (#103)\r\n\r\n* Add deleteFlyer mutation\r\n\r\n* Address PR comments\r\n\r\n* Update utils.ts\r\n\r\n* Update FlyerRepo.ts\r\n\r\n* Trendiness Update and Migration Script for New Flyers Model (#106)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Zach/trendiness and migration hot fix (#107)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Fix TypeScript compilation error\r\n\r\n* Micro PR for Flyers categorySlug migration (#108)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Fix TypeScript compilation error\r\n\r\n* Update migration script to account for category slug\r\n\r\n* Fix formatting for flyers test\r\n\r\n* Create `editFlyer` mutation (#105)\r\n\r\n* Add `editFlyer`\r\n\r\n* Address PR comments\r\n\r\n* `checkAccessCode` query for Organization authentication (#109)\r\n\r\n* Added Organization authentication\r\n\r\n* Updated Authorization\r\n\r\n* Implemented getAllFlyerCategories and tests (#110)\r\n\r\n* Implemented getAllFlyerCategories and tests\r\n\r\n* update jest\r\n\r\n* update jest\r\n\r\n* implemented suggestions from zach, vin, and archit\r\n\r\n* got rid of ESLint comment\r\n\r\n* fixed names for tests\r\n\r\n* Added loops to test cases\r\n\r\n* Fixed test case to create flyers with the same category\r\n\r\n* Changed 'push' to 'concat'\r\n\r\n---------\r\n\r\nCo-authored-by: Cindy \r\n\r\n* Changing specifications for getFlyersBeforeDate and getFlyersAfterDate (#112)\r\n\r\n* Cindy/flyer categories (#113)\r\n\r\n* Implemented getAllFlyerCategories and tests\r\n\r\n* update jest\r\n\r\n* update jest\r\n\r\n* implemented suggestions from zach, vin, and archit\r\n\r\n* got rid of ESLint comment\r\n\r\n* fixed names for tests\r\n\r\n* Added loops to test cases\r\n\r\n* Fixed test case to create flyers with the same category\r\n\r\n* Changed 'push' to 'concat'\r\n\r\n* Updated `getAllFlyerCategories`\r\n\r\n---------\r\n\r\nCo-authored-by: Cindy \r\nCo-authored-by: Vin Bui \r\n\r\n* Increased HTTP request size (#114)\r\n\r\n* Added limit to JSON request body\r\n\r\n* Update package-lock.json\r\n\r\n* Add error message (#116)\r\n\r\n* Added limit to JSON request body\r\n\r\n* Update package-lock.json\r\n\r\n* Added error message\r\n\r\n* Update FlyerMiddleware.ts (#119)\r\n\r\n* Update publications.json (#122)\r\n\r\nAdd WoMENA as a publication\r\n\r\n* Change Create Flyer route to use form data for image upload (#121)\r\n\r\n* Add post express route using form data\r\n\r\n* Remove .idea\r\n\r\n* revert readme\r\n\r\n* try catch for large file uploads\r\n\r\n* Remove uncertain comments\r\n\r\n* Refactor upload image util to use form data\r\n\r\n* Cover the case where the Flyer ID that was sent is invalid\r\n\r\n* Update file key, add documentation\r\n\r\n* Fixed issue with edit flyer (#124)\r\n\r\n* Fixed issue with edit flyer\r\n\r\n* Update app.ts\r\n\r\n* Adding routes and migration script for bookmarking (#126)\r\n\r\n* Adding routes and migration script for bookmarking\r\n\r\n* Refactoring WeeklyDebrief\r\n\r\n* Fixing unbookmarking functions\r\n\r\n* Adding (un)bookmark articles tests\r\n\r\n* More article bookmark tests\r\n\r\n* Adding more tests for flyers and magazines\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\nCo-authored-by: Shungo Najima \r\nCo-authored-by: Isaac Han \r\nCo-authored-by: Sasha Loayza <104698418+SashaLoayza@users.noreply.github.com>\r\nCo-authored-by: Zachary Seidner <58796478+zachseidner1@users.noreply.github.com>\r\nCo-authored-by: cindy-x-liang <67083541+cindy-x-liang@users.noreply.github.com>\r\nCo-authored-by: Cindy \r\nCo-authored-by: Aayush <68517064+Aayush-Agnihotri@users.noreply.github.com>\r\nCo-authored-by: Jennifer Gu <57200368+jjennifergu@users.noreply.github.com>","shortMessageHtmlLink":"Merge main to release (#127)"}},{"before":"9cd39454577845d450ba63131b65eaecee166c8a","after":null,"ref":"refs/heads/vin/flyer-notifs","pushedAt":"2023-11-26T22:41:34.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"vinnie4k","name":"Vin Bui","path":"/vinnie4k","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/75594943?s=80&v=4"}},{"before":"6fe1c48cb7038ffab0a60eee570ef7107168d392","after":"b8d70270b7af695e2d5453e2970e637b373ba15e","ref":"refs/heads/main","pushedAt":"2023-11-26T22:41:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"vinnie4k","name":"Vin Bui","path":"/vinnie4k","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/75594943?s=80&v=4"},"commit":{"message":"Update app.ts (#128)","shortMessageHtmlLink":"Update app.ts (#128)"}},{"before":"6fe1c48cb7038ffab0a60eee570ef7107168d392","after":"9cd39454577845d450ba63131b65eaecee166c8a","ref":"refs/heads/vin/flyer-notifs","pushedAt":"2023-11-26T22:34:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"vinnie4k","name":"Vin Bui","path":"/vinnie4k","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/75594943?s=80&v=4"},"commit":{"message":"Update app.ts","shortMessageHtmlLink":"Update app.ts"}},{"before":null,"after":"6fe1c48cb7038ffab0a60eee570ef7107168d392","ref":"refs/heads/vin/flyer-notifs","pushedAt":"2023-11-26T22:29:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"vinnie4k","name":"Vin Bui","path":"/vinnie4k","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/75594943?s=80&v=4"},"commit":{"message":"Enabling notifications for adding, editing, and deleting a flyer (#118)\n\n* Implemented getAllFlyerCategories and tests\r\n\r\n* update jest\r\n\r\n* update jest\r\n\r\n* implemented suggestions from zach, vin, and archit\r\n\r\n* got rid of ESLint comment\r\n\r\n* fixed names for tests\r\n\r\n* Added loops to test cases\r\n\r\n* Fixed test case to create flyers with the same category\r\n\r\n* Changed 'push' to 'concat'\r\n\r\n* Enabled notifications for adding, editing, and deleting a flyer\r\n\r\n- Created a function in NotificationRepo.ts called notifyFlyersForOrganization that takes in a flyerID and a title of the notification\r\n- the title of the notification should reflect the action performed (add, edit, delete)\r\n- This function is called in FlyerResolver.ts\r\n\r\n* Added more specific body text for updating flyers, removed notifyNewFlyers\r\n\r\n* Addressed Vin's Comments\r\n\r\n- used enums for action commparison instead of strings\r\n- used template strings instead of concat\r\n- added documentation for the various branches of the if statement in the notification for editing a flyer\r\n\r\n* Addressing Vin's Comments\r\n\r\n- changed nested if statements to a switch block\r\n- used proper capitlization for Enums\r\n\r\n* add num flyers for organizations\r\n\r\n* Changed edit and delete flyer notifications to only be sent to users who have flyers bookmarked\r\n\r\n- in UserRepo added getUsersBookmarkedFlyers to get a list of all the users that have the desired flyer bookmarked\r\n- in NotificationRepo, factored out a function titled notifyFlyersForBookmarks\r\n- in FlyerResolver, for edit/delete flyers notifyFlyersForBookmarks will be called instead of notifyFlyersForOrganizations\r\n\r\n* fixed specs for added functions\r\n\r\n* addressing vin's comments\r\n\r\n---------\r\n\r\nCo-authored-by: Cindy \r\nCo-authored-by: Vin Bui ","shortMessageHtmlLink":"Enabling notifications for adding, editing, and deleting a flyer (#118)"}},{"before":"e454f47e960642b6f7fcb01a5f2c774ae3a6dfb0","after":null,"ref":"refs/heads/cindy/flyer_notifications","pushedAt":"2023-11-26T22:11:30.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"cindy-x-liang","name":"Cindy Liang","path":"/cindy-x-liang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67083541?s=80&v=4"}},{"before":"8acc8fadb4884ae6bcc297e30d03033ce1aca6e6","after":"6fe1c48cb7038ffab0a60eee570ef7107168d392","ref":"refs/heads/main","pushedAt":"2023-11-26T22:11:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cindy-x-liang","name":"Cindy Liang","path":"/cindy-x-liang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67083541?s=80&v=4"},"commit":{"message":"Enabling notifications for adding, editing, and deleting a flyer (#118)\n\n* Implemented getAllFlyerCategories and tests\r\n\r\n* update jest\r\n\r\n* update jest\r\n\r\n* implemented suggestions from zach, vin, and archit\r\n\r\n* got rid of ESLint comment\r\n\r\n* fixed names for tests\r\n\r\n* Added loops to test cases\r\n\r\n* Fixed test case to create flyers with the same category\r\n\r\n* Changed 'push' to 'concat'\r\n\r\n* Enabled notifications for adding, editing, and deleting a flyer\r\n\r\n- Created a function in NotificationRepo.ts called notifyFlyersForOrganization that takes in a flyerID and a title of the notification\r\n- the title of the notification should reflect the action performed (add, edit, delete)\r\n- This function is called in FlyerResolver.ts\r\n\r\n* Added more specific body text for updating flyers, removed notifyNewFlyers\r\n\r\n* Addressed Vin's Comments\r\n\r\n- used enums for action commparison instead of strings\r\n- used template strings instead of concat\r\n- added documentation for the various branches of the if statement in the notification for editing a flyer\r\n\r\n* Addressing Vin's Comments\r\n\r\n- changed nested if statements to a switch block\r\n- used proper capitlization for Enums\r\n\r\n* add num flyers for organizations\r\n\r\n* Changed edit and delete flyer notifications to only be sent to users who have flyers bookmarked\r\n\r\n- in UserRepo added getUsersBookmarkedFlyers to get a list of all the users that have the desired flyer bookmarked\r\n- in NotificationRepo, factored out a function titled notifyFlyersForBookmarks\r\n- in FlyerResolver, for edit/delete flyers notifyFlyersForBookmarks will be called instead of notifyFlyersForOrganizations\r\n\r\n* fixed specs for added functions\r\n\r\n* addressing vin's comments\r\n\r\n---------\r\n\r\nCo-authored-by: Cindy \r\nCo-authored-by: Vin Bui ","shortMessageHtmlLink":"Enabling notifications for adding, editing, and deleting a flyer (#118)"}},{"before":"a398bec51e804020b49b9d91d2194947548e5d8a","after":null,"ref":"refs/heads/release-copy","pushedAt":"2023-11-25T05:43:54.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"vinnie4k","name":"Vin Bui","path":"/vinnie4k","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/75594943?s=80&v=4"}},{"before":"788778647671d6137bb87820c516dc5b0eedc2b7","after":"18537bbf46fbc665a46deb12877667f7c7d8fbfb","ref":"refs/heads/release","pushedAt":"2023-11-25T05:43:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"vinnie4k","name":"Vin Bui","path":"/vinnie4k","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/75594943?s=80&v=4"},"commit":{"message":"Merge `main` to `release` (#127)\n\n* Add Jest testing (#63)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Add Docstrings to Test Factory Functions (#64)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\n* Add docstrings\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update README.md\r\n\r\n* Implement community board models (#65)\r\n\r\n* Implemented community board models\r\n\r\n- implemented Flyer and Organization models for community board feature\r\n- modified User model\r\n- updated typescript version to 4.0.5 to resolve es lint issue\r\n\r\n* Revert package.json changes\r\n\r\n- reverted package.json changes that are addressed in a different pr\r\n\r\n* Add magazines to weekly debrief (#66)\r\n\r\n* Implemented community board models\r\n\r\n- implemented Flyer and Organization models for community board feature\r\n- modified User model\r\n- updated typescript version to 4.0.5 to resolve es lint issue\r\n\r\n* Implemented weekly debrief magazines\r\n\r\n- added magazines to weekly debrief feature\r\n- updated user and weekly debrief models to allow tracking of read magazines\r\n- updated logic in user and weekly debrief controllers to enable reading of magazines\r\n\r\n* Revert package.json changes\r\n\r\n- reverted package.json changes back to the original file\r\n- added additional rules to eslintrc to suppress es lint warnings\r\n\r\n* Create jest testing for magazines\r\n\r\n- added jest test cases for magazines\r\n\r\n* Implement jest testing for User\r\n\r\n- implemented unit testing for UserRepo\r\n- indirectly test Weekly Debrief with User unit tests\r\n\r\n* Update gitignore\r\n\r\n- updated gitignore file to include secrets folder\r\n\r\n* Implement reshuffle articles (#68)\r\n\r\n* Add Docstrings to Test Factory Functions (#64)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\n* Add docstrings\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\nImplement shuffle article function\r\n\r\ntry to implement reshuffling with aggregate\r\n\r\n* Implement reshuffling of articles\r\n\r\n* Revert package.json, update eslint and update .gitignore to match main branch\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\n\r\n* Implement magazine search (#69)\r\n\r\n* Implement magazine search\r\n\r\n- implemented searching for magazines\r\n\r\n* update magazinerepo\r\n\r\n* Add unit test for magazine search\r\n\r\n- created unit test for MagazineRepo.searchMagazine\r\n\r\n* Convert result of shuffling resolver to ArticleModel (#71)\r\n\r\n* Add 3 new publications (Cornell Daily Sun, Collective X, and Cornell Healthcare Review) to publications.js (#70)\r\n\r\n* Resolve merge conflicts in publications.json (keep release version) (#76)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Revert \"Resolve merge conflicts in publications.json (keep release version) (#76)\" (#77)\r\n\r\nThis reverts commit eccf00c0fe5ebbbe81bf9b1f643640d991cb1c29.\r\n\r\n* fix merge conflicts (#78)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Implement community board [1/7] (#81)\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement flyers for community board\r\n\r\n- alphabetized imports and fields\r\n- finished implementing flyers for community board\r\n\r\n* Address pr review comments\r\n\r\n- addressed pr review comments\r\n- removed redundant filtering in FlyerRepo\r\n- added checks for null return values in FlyerRepo\r\n- alphabetized imports and exports\r\n\r\n* Add imageURL field to Magazine entity. (#73)\r\n\r\n* Add no rules to volume-backend's publications.json (#82)\r\n\r\n* Implement community board (flyer tests) [2/7] (#84)\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement flyers for community board\r\n\r\n- alphabetized imports and fields\r\n- finished implementing flyers for community board\r\n\r\n* Implement jest testing for flyers\r\n\r\n- created jest unit testing for FlyerRepo\r\n- created FlyerFactory to help with jest testing\r\n\r\n* Remove isFiltered field from Flyer entity\r\n\r\n- removed redundant isFiltered field from Flyer entity (already checked in microservice)\r\n- updated FlyerRepo and jest testing to reflect changes\r\n\r\n* Alphabetize imports and exports\r\n\r\n- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory\r\n\r\n* Revert merge conflict changes\r\n\r\n- reverted merge conflict changes (accept incoming when actually wanted to keep current)\r\n\r\n* Address review comments\r\n\r\n- alphabetize imports\r\n- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response\r\n- added unit test case for FlyerRepo.getTrendingFlyers\r\n\r\n* Address review comments (Shungo)\r\n\r\n- added spaces between test cases\r\n\r\n* Implement community board organizations (#85)\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement community board (organization tests) [4/7] (#86)\r\n\r\n* Implement community board organizations\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement jest testing for organizations\r\n\r\n- implemented jest testing for community board organizations\r\n- created organizations.json with 3 onboarded organizations\r\n- added FlyerResolver and OrganizationResolver to app.ts\r\n\r\n* Implement community board (user queries/mutations) [5/7] (#87)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement basic community board features\r\n\r\n- finished implementing basic organization and flyer repos/resolvers\r\n- created jest testing for organization and flyer repos\r\n\r\n* Remove unnecessary OrganizationRepo function\r\n\r\n- removed content types route from organization repo and organization resolver\r\n\r\n* Implement user routes for community board\r\n\r\n- implemented user routes for community board to allow following orgs and reading flyers\r\n- added jest unit test cases for new UserRepo functions\r\n\r\n* Implement mutations for following and unfollowing organizations\r\n\r\n- added resolvers to UserResolver for following and unfollowing organizations\r\n- updated documentation in UserRepo\r\n- added import of FlyerRepo in app.ts\r\n\r\n* Address pr review comments\r\n\r\n- fix spelling\r\n\r\n* Address pr review comments\r\n\r\n- made style consistent in UserRepo by checking for if(user) in appendReadFlyer, appendReadArticle, and appendReadMagazine\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Onboard organizations (#90)\r\n\r\n- add organizations from volume-microservice onto organizations.json\r\n\r\n* Implement community board (categories and org lists) [6/7] (#89)\r\n\r\n* Implement community board organizations\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement jest testing for organizations\r\n\r\n- implemented jest testing for community board organizations\r\n- created organizations.json with 3 onboarded organizations\r\n- added FlyerResolver and OrganizationResolver to app.ts\r\n\r\n* initial commit\r\n\r\n* Implement organizations as list for flyer model\r\n\r\n- updated flyer model to allow a list of organizations and organizationSlugs to be associated with each flyer\r\n- updated flyer and organization queries accordingly\r\n- added unit jest test cases and update old ones accordingly\r\n\r\n* Address pr review comments\r\n\r\n- removed redundant resolvers\r\n- updated getOrganizationByCategory test\r\n\r\n* Address pr review comments (kate)\r\n\r\n- updated docs in OrganizationResolver\r\n\r\n* Implement cboard start and end dates (#93)\r\n\r\n* Implement end dates\r\n\r\n- implemented start and end dates\r\n- changed shoutouts to times clicked\r\n- updated testing and documentation to reflect changes\r\n\r\n* Address pr review comments\r\n\r\n- removed async from getFlyersBeforeDate and getFlyersAfterDate\r\n- updated documentation in FactoryUtils\r\n\r\n* add incrementTimesClicked to resolver\r\n\r\n* update organization shoutouts query (#94)\r\n\r\n* Implement end dates\r\n\r\n- implemented start and end dates\r\n- changed shoutouts to times clicked\r\n- updated testing and documentation to reflect changes\r\n\r\n* Address pr review comments\r\n\r\n- removed async from getFlyersBeforeDate and getFlyersAfterDate\r\n- updated documentation in FactoryUtils\r\n\r\n* add incrementTimesClicked to resolver\r\n\r\n* Update organization clicks\r\n\r\n- changed shoutouts query to clicks in OrganizationResolver\r\n\r\n* Implement trending flyers logic (#95)\r\n\r\n- updated trending flyers logic\r\n- updated FlyerRepo\r\n- updated documentation in FlyerResolver\r\n\r\n* Fixed notification issue (#97)\r\n\r\n* Flyer Notifications + Org/Flyer Model Changes (#99)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Inline notification calls\r\n\r\n* Improve Search Algorithm (#101)\r\n\r\n* Update README.md start instructions\r\n\r\n* Update search function for articles\r\n\r\n* Remove console log\r\n\r\n* Update articles search to use text search instead of regex\r\n\r\n* Update search for Flyers and Magazines\r\n\r\n* Update documentation, remove unused Fuse package\r\n\r\n* Fix README.md start docs\r\n\r\n* Filter out past flyers during flyers search\r\n\r\n* Fix formatting, improve concision\r\n\r\n* Remove start.md\r\n\r\n* Changed indexing method to being declared on the models\r\n\r\n* Update README.md\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n---------\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* getFlyersByCategorySlug Query (#100)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Added getFlyersByCategorySlug query\r\n\r\n* Update query description\r\n\r\n* Inline notification calls\r\n\r\n* Update flyer.test.ts\r\n\r\n* Update flyer.test.ts\r\n\r\n* Merge `vin/create-flyer` to `main` (#104)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Added getFlyersByCategorySlug query\r\n\r\n* Update query description\r\n\r\n* Inline notification calls\r\n\r\n* Add createFlyer mutation\r\n\r\n* `deleteFlyer` mutation (#103)\r\n\r\n* Add deleteFlyer mutation\r\n\r\n* Address PR comments\r\n\r\n* Update utils.ts\r\n\r\n* Update FlyerRepo.ts\r\n\r\n* Trendiness Update and Migration Script for New Flyers Model (#106)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Zach/trendiness and migration hot fix (#107)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Fix TypeScript compilation error\r\n\r\n* Micro PR for Flyers categorySlug migration (#108)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Fix TypeScript compilation error\r\n\r\n* Update migration script to account for category slug\r\n\r\n* Fix formatting for flyers test\r\n\r\n* Create `editFlyer` mutation (#105)\r\n\r\n* Add `editFlyer`\r\n\r\n* Address PR comments\r\n\r\n* `checkAccessCode` query for Organization authentication (#109)\r\n\r\n* Added Organization authentication\r\n\r\n* Updated Authorization\r\n\r\n* Implemented getAllFlyerCategories and tests (#110)\r\n\r\n* Implemented getAllFlyerCategories and tests\r\n\r\n* update jest\r\n\r\n* update jest\r\n\r\n* implemented suggestions from zach, vin, and archit\r\n\r\n* got rid of ESLint comment\r\n\r\n* fixed names for tests\r\n\r\n* Added loops to test cases\r\n\r\n* Fixed test case to create flyers with the same category\r\n\r\n* Changed 'push' to 'concat'\r\n\r\n---------\r\n\r\nCo-authored-by: Cindy \r\n\r\n* Changing specifications for getFlyersBeforeDate and getFlyersAfterDate (#112)\r\n\r\n* Cindy/flyer categories (#113)\r\n\r\n* Implemented getAllFlyerCategories and tests\r\n\r\n* update jest\r\n\r\n* update jest\r\n\r\n* implemented suggestions from zach, vin, and archit\r\n\r\n* got rid of ESLint comment\r\n\r\n* fixed names for tests\r\n\r\n* Added loops to test cases\r\n\r\n* Fixed test case to create flyers with the same category\r\n\r\n* Changed 'push' to 'concat'\r\n\r\n* Updated `getAllFlyerCategories`\r\n\r\n---------\r\n\r\nCo-authored-by: Cindy \r\nCo-authored-by: Vin Bui \r\n\r\n* Increased HTTP request size (#114)\r\n\r\n* Added limit to JSON request body\r\n\r\n* Update package-lock.json\r\n\r\n* Add error message (#116)\r\n\r\n* Added limit to JSON request body\r\n\r\n* Update package-lock.json\r\n\r\n* Added error message\r\n\r\n* Update FlyerMiddleware.ts (#119)\r\n\r\n* Update publications.json (#122)\r\n\r\nAdd WoMENA as a publication\r\n\r\n* Change Create Flyer route to use form data for image upload (#121)\r\n\r\n* Add post express route using form data\r\n\r\n* Remove .idea\r\n\r\n* revert readme\r\n\r\n* try catch for large file uploads\r\n\r\n* Remove uncertain comments\r\n\r\n* Refactor upload image util to use form data\r\n\r\n* Cover the case where the Flyer ID that was sent is invalid\r\n\r\n* Update file key, add documentation\r\n\r\n* Fixed issue with edit flyer (#124)\r\n\r\n* Fixed issue with edit flyer\r\n\r\n* Update app.ts\r\n\r\n* Adding routes and migration script for bookmarking (#126)\r\n\r\n* Adding routes and migration script for bookmarking\r\n\r\n* Refactoring WeeklyDebrief\r\n\r\n* Fixing unbookmarking functions\r\n\r\n* Adding (un)bookmark articles tests\r\n\r\n* More article bookmark tests\r\n\r\n* Adding more tests for flyers and magazines\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\nCo-authored-by: Shungo Najima \r\nCo-authored-by: Isaac Han \r\nCo-authored-by: Sasha Loayza <104698418+SashaLoayza@users.noreply.github.com>\r\nCo-authored-by: Zachary Seidner <58796478+zachseidner1@users.noreply.github.com>\r\nCo-authored-by: cindy-x-liang <67083541+cindy-x-liang@users.noreply.github.com>\r\nCo-authored-by: Cindy \r\nCo-authored-by: Aayush <68517064+Aayush-Agnihotri@users.noreply.github.com>\r\nCo-authored-by: Jennifer Gu <57200368+jjennifergu@users.noreply.github.com>","shortMessageHtmlLink":"Merge main to release (#127)"}},{"before":"788778647671d6137bb87820c516dc5b0eedc2b7","after":"a398bec51e804020b49b9d91d2194947548e5d8a","ref":"refs/heads/release-copy","pushedAt":"2023-11-25T05:42:17.000Z","pushType":"push","commitsCount":45,"pusher":{"login":"vinnie4k","name":"Vin Bui","path":"/vinnie4k","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/75594943?s=80&v=4"},"commit":{"message":"Merge branch 'main' into release-copy","shortMessageHtmlLink":"Merge branch 'main' into release-copy"}},{"before":null,"after":"788778647671d6137bb87820c516dc5b0eedc2b7","ref":"refs/heads/release-copy","pushedAt":"2023-11-25T05:41:30.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"vinnie4k","name":"Vin Bui","path":"/vinnie4k","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/75594943?s=80&v=4"},"commit":{"message":"Merge `main` to `release` (#125)\n\n* Add Jest testing (#63)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Add Docstrings to Test Factory Functions (#64)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\n* Add docstrings\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update README.md\r\n\r\n* Implement community board models (#65)\r\n\r\n* Implemented community board models\r\n\r\n- implemented Flyer and Organization models for community board feature\r\n- modified User model\r\n- updated typescript version to 4.0.5 to resolve es lint issue\r\n\r\n* Revert package.json changes\r\n\r\n- reverted package.json changes that are addressed in a different pr\r\n\r\n* Add magazines to weekly debrief (#66)\r\n\r\n* Implemented community board models\r\n\r\n- implemented Flyer and Organization models for community board feature\r\n- modified User model\r\n- updated typescript version to 4.0.5 to resolve es lint issue\r\n\r\n* Implemented weekly debrief magazines\r\n\r\n- added magazines to weekly debrief feature\r\n- updated user and weekly debrief models to allow tracking of read magazines\r\n- updated logic in user and weekly debrief controllers to enable reading of magazines\r\n\r\n* Revert package.json changes\r\n\r\n- reverted package.json changes back to the original file\r\n- added additional rules to eslintrc to suppress es lint warnings\r\n\r\n* Create jest testing for magazines\r\n\r\n- added jest test cases for magazines\r\n\r\n* Implement jest testing for User\r\n\r\n- implemented unit testing for UserRepo\r\n- indirectly test Weekly Debrief with User unit tests\r\n\r\n* Update gitignore\r\n\r\n- updated gitignore file to include secrets folder\r\n\r\n* Implement reshuffle articles (#68)\r\n\r\n* Add Docstrings to Test Factory Functions (#64)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\n* Add docstrings\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\nImplement shuffle article function\r\n\r\ntry to implement reshuffling with aggregate\r\n\r\n* Implement reshuffling of articles\r\n\r\n* Revert package.json, update eslint and update .gitignore to match main branch\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\n\r\n* Implement magazine search (#69)\r\n\r\n* Implement magazine search\r\n\r\n- implemented searching for magazines\r\n\r\n* update magazinerepo\r\n\r\n* Add unit test for magazine search\r\n\r\n- created unit test for MagazineRepo.searchMagazine\r\n\r\n* Convert result of shuffling resolver to ArticleModel (#71)\r\n\r\n* Add 3 new publications (Cornell Daily Sun, Collective X, and Cornell Healthcare Review) to publications.js (#70)\r\n\r\n* Resolve merge conflicts in publications.json (keep release version) (#76)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Revert \"Resolve merge conflicts in publications.json (keep release version) (#76)\" (#77)\r\n\r\nThis reverts commit eccf00c0fe5ebbbe81bf9b1f643640d991cb1c29.\r\n\r\n* fix merge conflicts (#78)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Implement community board [1/7] (#81)\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement flyers for community board\r\n\r\n- alphabetized imports and fields\r\n- finished implementing flyers for community board\r\n\r\n* Address pr review comments\r\n\r\n- addressed pr review comments\r\n- removed redundant filtering in FlyerRepo\r\n- added checks for null return values in FlyerRepo\r\n- alphabetized imports and exports\r\n\r\n* Add imageURL field to Magazine entity. (#73)\r\n\r\n* Add no rules to volume-backend's publications.json (#82)\r\n\r\n* Implement community board (flyer tests) [2/7] (#84)\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement flyers for community board\r\n\r\n- alphabetized imports and fields\r\n- finished implementing flyers for community board\r\n\r\n* Implement jest testing for flyers\r\n\r\n- created jest unit testing for FlyerRepo\r\n- created FlyerFactory to help with jest testing\r\n\r\n* Remove isFiltered field from Flyer entity\r\n\r\n- removed redundant isFiltered field from Flyer entity (already checked in microservice)\r\n- updated FlyerRepo and jest testing to reflect changes\r\n\r\n* Alphabetize imports and exports\r\n\r\n- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory\r\n\r\n* Revert merge conflict changes\r\n\r\n- reverted merge conflict changes (accept incoming when actually wanted to keep current)\r\n\r\n* Address review comments\r\n\r\n- alphabetize imports\r\n- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response\r\n- added unit test case for FlyerRepo.getTrendingFlyers\r\n\r\n* Address review comments (Shungo)\r\n\r\n- added spaces between test cases\r\n\r\n* Implement community board organizations (#85)\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement community board (organization tests) [4/7] (#86)\r\n\r\n* Implement community board organizations\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement jest testing for organizations\r\n\r\n- implemented jest testing for community board organizations\r\n- created organizations.json with 3 onboarded organizations\r\n- added FlyerResolver and OrganizationResolver to app.ts\r\n\r\n* Implement community board (user queries/mutations) [5/7] (#87)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement basic community board features\r\n\r\n- finished implementing basic organization and flyer repos/resolvers\r\n- created jest testing for organization and flyer repos\r\n\r\n* Remove unnecessary OrganizationRepo function\r\n\r\n- removed content types route from organization repo and organization resolver\r\n\r\n* Implement user routes for community board\r\n\r\n- implemented user routes for community board to allow following orgs and reading flyers\r\n- added jest unit test cases for new UserRepo functions\r\n\r\n* Implement mutations for following and unfollowing organizations\r\n\r\n- added resolvers to UserResolver for following and unfollowing organizations\r\n- updated documentation in UserRepo\r\n- added import of FlyerRepo in app.ts\r\n\r\n* Address pr review comments\r\n\r\n- fix spelling\r\n\r\n* Address pr review comments\r\n\r\n- made style consistent in UserRepo by checking for if(user) in appendReadFlyer, appendReadArticle, and appendReadMagazine\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Onboard organizations (#90)\r\n\r\n- add organizations from volume-microservice onto organizations.json\r\n\r\n* Implement community board (categories and org lists) [6/7] (#89)\r\n\r\n* Implement community board organizations\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement jest testing for organizations\r\n\r\n- implemented jest testing for community board organizations\r\n- created organizations.json with 3 onboarded organizations\r\n- added FlyerResolver and OrganizationResolver to app.ts\r\n\r\n* initial commit\r\n\r\n* Implement organizations as list for flyer model\r\n\r\n- updated flyer model to allow a list of organizations and organizationSlugs to be associated with each flyer\r\n- updated flyer and organization queries accordingly\r\n- added unit jest test cases and update old ones accordingly\r\n\r\n* Address pr review comments\r\n\r\n- removed redundant resolvers\r\n- updated getOrganizationByCategory test\r\n\r\n* Address pr review comments (kate)\r\n\r\n- updated docs in OrganizationResolver\r\n\r\n* Implement cboard start and end dates (#93)\r\n\r\n* Implement end dates\r\n\r\n- implemented start and end dates\r\n- changed shoutouts to times clicked\r\n- updated testing and documentation to reflect changes\r\n\r\n* Address pr review comments\r\n\r\n- removed async from getFlyersBeforeDate and getFlyersAfterDate\r\n- updated documentation in FactoryUtils\r\n\r\n* add incrementTimesClicked to resolver\r\n\r\n* update organization shoutouts query (#94)\r\n\r\n* Implement end dates\r\n\r\n- implemented start and end dates\r\n- changed shoutouts to times clicked\r\n- updated testing and documentation to reflect changes\r\n\r\n* Address pr review comments\r\n\r\n- removed async from getFlyersBeforeDate and getFlyersAfterDate\r\n- updated documentation in FactoryUtils\r\n\r\n* add incrementTimesClicked to resolver\r\n\r\n* Update organization clicks\r\n\r\n- changed shoutouts query to clicks in OrganizationResolver\r\n\r\n* Implement trending flyers logic (#95)\r\n\r\n- updated trending flyers logic\r\n- updated FlyerRepo\r\n- updated documentation in FlyerResolver\r\n\r\n* Fixed notification issue (#97)\r\n\r\n* Flyer Notifications + Org/Flyer Model Changes (#99)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Inline notification calls\r\n\r\n* Improve Search Algorithm (#101)\r\n\r\n* Update README.md start instructions\r\n\r\n* Update search function for articles\r\n\r\n* Remove console log\r\n\r\n* Update articles search to use text search instead of regex\r\n\r\n* Update search for Flyers and Magazines\r\n\r\n* Update documentation, remove unused Fuse package\r\n\r\n* Fix README.md start docs\r\n\r\n* Filter out past flyers during flyers search\r\n\r\n* Fix formatting, improve concision\r\n\r\n* Remove start.md\r\n\r\n* Changed indexing method to being declared on the models\r\n\r\n* Update README.md\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n---------\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* getFlyersByCategorySlug Query (#100)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Added getFlyersByCategorySlug query\r\n\r\n* Update query description\r\n\r\n* Inline notification calls\r\n\r\n* Update flyer.test.ts\r\n\r\n* Update flyer.test.ts\r\n\r\n* Merge `vin/create-flyer` to `main` (#104)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Added getFlyersByCategorySlug query\r\n\r\n* Update query description\r\n\r\n* Inline notification calls\r\n\r\n* Add createFlyer mutation\r\n\r\n* `deleteFlyer` mutation (#103)\r\n\r\n* Add deleteFlyer mutation\r\n\r\n* Address PR comments\r\n\r\n* Update utils.ts\r\n\r\n* Update FlyerRepo.ts\r\n\r\n* Trendiness Update and Migration Script for New Flyers Model (#106)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Zach/trendiness and migration hot fix (#107)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Fix TypeScript compilation error\r\n\r\n* Micro PR for Flyers categorySlug migration (#108)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Fix TypeScript compilation error\r\n\r\n* Update migration script to account for category slug\r\n\r\n* Fix formatting for flyers test\r\n\r\n* Create `editFlyer` mutation (#105)\r\n\r\n* Add `editFlyer`\r\n\r\n* Address PR comments\r\n\r\n* `checkAccessCode` query for Organization authentication (#109)\r\n\r\n* Added Organization authentication\r\n\r\n* Updated Authorization\r\n\r\n* Implemented getAllFlyerCategories and tests (#110)\r\n\r\n* Implemented getAllFlyerCategories and tests\r\n\r\n* update jest\r\n\r\n* update jest\r\n\r\n* implemented suggestions from zach, vin, and archit\r\n\r\n* got rid of ESLint comment\r\n\r\n* fixed names for tests\r\n\r\n* Added loops to test cases\r\n\r\n* Fixed test case to create flyers with the same category\r\n\r\n* Changed 'push' to 'concat'\r\n\r\n---------\r\n\r\nCo-authored-by: Cindy \r\n\r\n* Changing specifications for getFlyersBeforeDate and getFlyersAfterDate (#112)\r\n\r\n* Cindy/flyer categories (#113)\r\n\r\n* Implemented getAllFlyerCategories and tests\r\n\r\n* update jest\r\n\r\n* update jest\r\n\r\n* implemented suggestions from zach, vin, and archit\r\n\r\n* got rid of ESLint comment\r\n\r\n* fixed names for tests\r\n\r\n* Added loops to test cases\r\n\r\n* Fixed test case to create flyers with the same category\r\n\r\n* Changed 'push' to 'concat'\r\n\r\n* Updated `getAllFlyerCategories`\r\n\r\n---------\r\n\r\nCo-authored-by: Cindy \r\nCo-authored-by: Vin Bui \r\n\r\n* Increased HTTP request size (#114)\r\n\r\n* Added limit to JSON request body\r\n\r\n* Update package-lock.json\r\n\r\n* Add error message (#116)\r\n\r\n* Added limit to JSON request body\r\n\r\n* Update package-lock.json\r\n\r\n* Added error message\r\n\r\n* Update FlyerMiddleware.ts (#119)\r\n\r\n* Update publications.json (#122)\r\n\r\nAdd WoMENA as a publication\r\n\r\n* Change Create Flyer route to use form data for image upload (#121)\r\n\r\n* Add post express route using form data\r\n\r\n* Remove .idea\r\n\r\n* revert readme\r\n\r\n* try catch for large file uploads\r\n\r\n* Remove uncertain comments\r\n\r\n* Refactor upload image util to use form data\r\n\r\n* Cover the case where the Flyer ID that was sent is invalid\r\n\r\n* Update file key, add documentation\r\n\r\n* Fixed issue with edit flyer (#124)\r\n\r\n* Fixed issue with edit flyer\r\n\r\n* Update app.ts\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\nCo-authored-by: Shungo Najima \r\nCo-authored-by: Isaac Han \r\nCo-authored-by: Sasha Loayza <104698418+SashaLoayza@users.noreply.github.com>\r\nCo-authored-by: Zachary Seidner <58796478+zachseidner1@users.noreply.github.com>\r\nCo-authored-by: cindy-x-liang <67083541+cindy-x-liang@users.noreply.github.com>\r\nCo-authored-by: Cindy \r\nCo-authored-by: Aayush <68517064+Aayush-Agnihotri@users.noreply.github.com>\r\nCo-authored-by: Jennifer Gu <57200368+jjennifergu@users.noreply.github.com>","shortMessageHtmlLink":"Merge main to release (#125)"}},{"before":"c1e79842457f75d05c6f946bd8ff172b4a2f0cff","after":"e454f47e960642b6f7fcb01a5f2c774ae3a6dfb0","ref":"refs/heads/cindy/flyer_notifications","pushedAt":"2023-11-24T03:47:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cindy-x-liang","name":"Cindy Liang","path":"/cindy-x-liang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67083541?s=80&v=4"},"commit":{"message":"addressing vin's comments","shortMessageHtmlLink":"addressing vin's comments"}},{"before":"9d7480d56965e836c208e7d61cf6ae1f8d4a24f7","after":"c1e79842457f75d05c6f946bd8ff172b4a2f0cff","ref":"refs/heads/cindy/flyer_notifications","pushedAt":"2023-11-23T21:35:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cindy-x-liang","name":"Cindy Liang","path":"/cindy-x-liang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67083541?s=80&v=4"},"commit":{"message":"fixed specs for added functions","shortMessageHtmlLink":"fixed specs for added functions"}},{"before":"c230d32a47bd005750629b82f3befe1f5be7de6c","after":"9d7480d56965e836c208e7d61cf6ae1f8d4a24f7","ref":"refs/heads/cindy/flyer_notifications","pushedAt":"2023-11-23T21:33:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cindy-x-liang","name":"Cindy Liang","path":"/cindy-x-liang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67083541?s=80&v=4"},"commit":{"message":"Changed edit and delete flyer notifications to only be sent to users who have flyers bookmarked\n\n- in UserRepo added getUsersBookmarkedFlyers to get a list of all the users that have the desired flyer bookmarked\n- in NotificationRepo, factored out a function titled notifyFlyersForBookmarks\n- in FlyerResolver, for edit/delete flyers notifyFlyersForBookmarks will be called instead of notifyFlyersForOrganizations","shortMessageHtmlLink":"Changed edit and delete flyer notifications to only be sent to users …"}},{"before":"83ea894896b4110bab4d1a6f72da1e98b3c844fb","after":"c230d32a47bd005750629b82f3befe1f5be7de6c","ref":"refs/heads/cindy/flyer_notifications","pushedAt":"2023-11-22T04:15:21.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"vinnie4k","name":"Vin Bui","path":"/vinnie4k","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/75594943?s=80&v=4"},"commit":{"message":"Merge branch 'main' into cindy/flyer_notifications","shortMessageHtmlLink":"Merge branch 'main' into cindy/flyer_notifications"}},{"before":"8cbfc06464d8314ced6b25eb8aa95516d9b10bef","after":"83ea894896b4110bab4d1a6f72da1e98b3c844fb","ref":"refs/heads/cindy/flyer_notifications","pushedAt":"2023-11-22T03:59:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cindy-x-liang","name":"Cindy Liang","path":"/cindy-x-liang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67083541?s=80&v=4"},"commit":{"message":"add num flyers for organizations","shortMessageHtmlLink":"add num flyers for organizations"}},{"before":"74333d538e9b448dbeed16afada53f04cb389b5f","after":"8cbfc06464d8314ced6b25eb8aa95516d9b10bef","ref":"refs/heads/cindy/flyer_notifications","pushedAt":"2023-11-22T03:45:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cindy-x-liang","name":"Cindy Liang","path":"/cindy-x-liang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67083541?s=80&v=4"},"commit":{"message":"add num flyers for organizations","shortMessageHtmlLink":"add num flyers for organizations"}},{"before":"cdd926ac7059f208ba78394a48dfe9cd5e097539","after":null,"ref":"refs/heads/aayush/bookmarking","pushedAt":"2023-11-21T03:37:27.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Aayush-Agnihotri","name":"Aayush Agnihotri","path":"/Aayush-Agnihotri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/68517064?s=80&v=4"}},{"before":"b70e2f13d865c87bd03c11ac6966b9c5df1bb567","after":"8acc8fadb4884ae6bcc297e30d03033ce1aca6e6","ref":"refs/heads/main","pushedAt":"2023-11-21T03:37:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Aayush-Agnihotri","name":"Aayush Agnihotri","path":"/Aayush-Agnihotri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/68517064?s=80&v=4"},"commit":{"message":"Adding routes and migration script for bookmarking (#126)\n\n* Adding routes and migration script for bookmarking\r\n\r\n* Refactoring WeeklyDebrief\r\n\r\n* Fixing unbookmarking functions\r\n\r\n* Adding (un)bookmark articles tests\r\n\r\n* More article bookmark tests\r\n\r\n* Adding more tests for flyers and magazines","shortMessageHtmlLink":"Adding routes and migration script for bookmarking (#126)"}},{"before":"0d56657811c24b60db8c8b71f5e04b0cb5c7b6b9","after":"cdd926ac7059f208ba78394a48dfe9cd5e097539","ref":"refs/heads/aayush/bookmarking","pushedAt":"2023-11-21T00:51:06.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"Aayush-Agnihotri","name":"Aayush Agnihotri","path":"/Aayush-Agnihotri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/68517064?s=80&v=4"},"commit":{"message":"Adding more tests for flyers and magazines","shortMessageHtmlLink":"Adding more tests for flyers and magazines"}},{"before":"2d6131f80203fce2326c55c31c9626bb898e5640","after":"0d56657811c24b60db8c8b71f5e04b0cb5c7b6b9","ref":"refs/heads/aayush/bookmarking","pushedAt":"2023-11-15T22:16:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Aayush-Agnihotri","name":"Aayush Agnihotri","path":"/Aayush-Agnihotri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/68517064?s=80&v=4"},"commit":{"message":"Fixing unbookmarking functions","shortMessageHtmlLink":"Fixing unbookmarking functions"}},{"before":"3eba4eff473750e4ceee1623de7abde2def2cbf1","after":"2d6131f80203fce2326c55c31c9626bb898e5640","ref":"refs/heads/aayush/bookmarking","pushedAt":"2023-11-12T19:02:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Aayush-Agnihotri","name":"Aayush Agnihotri","path":"/Aayush-Agnihotri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/68517064?s=80&v=4"},"commit":{"message":"Refactoring WeeklyDebrief","shortMessageHtmlLink":"Refactoring WeeklyDebrief"}},{"before":null,"after":"3eba4eff473750e4ceee1623de7abde2def2cbf1","ref":"refs/heads/aayush/bookmarking","pushedAt":"2023-11-12T18:50:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Aayush-Agnihotri","name":"Aayush Agnihotri","path":"/Aayush-Agnihotri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/68517064?s=80&v=4"},"commit":{"message":"Adding routes and migration script for bookmarking","shortMessageHtmlLink":"Adding routes and migration script for bookmarking"}},{"before":"269eee4ad7dca8a5a5137f0bade561a06d2b07de","after":null,"ref":"refs/heads/release-copy","pushedAt":"2023-11-07T17:41:13.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"vinnie4k","name":"Vin Bui","path":"/vinnie4k","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/75594943?s=80&v=4"}},{"before":"1a3ba2de735d717fe573e8b54658fcb6db4762b7","after":"788778647671d6137bb87820c516dc5b0eedc2b7","ref":"refs/heads/release","pushedAt":"2023-11-07T17:41:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"vinnie4k","name":"Vin Bui","path":"/vinnie4k","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/75594943?s=80&v=4"},"commit":{"message":"Merge `main` to `release` (#125)\n\n* Add Jest testing (#63)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Add Docstrings to Test Factory Functions (#64)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\n* Add docstrings\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update README.md\r\n\r\n* Implement community board models (#65)\r\n\r\n* Implemented community board models\r\n\r\n- implemented Flyer and Organization models for community board feature\r\n- modified User model\r\n- updated typescript version to 4.0.5 to resolve es lint issue\r\n\r\n* Revert package.json changes\r\n\r\n- reverted package.json changes that are addressed in a different pr\r\n\r\n* Add magazines to weekly debrief (#66)\r\n\r\n* Implemented community board models\r\n\r\n- implemented Flyer and Organization models for community board feature\r\n- modified User model\r\n- updated typescript version to 4.0.5 to resolve es lint issue\r\n\r\n* Implemented weekly debrief magazines\r\n\r\n- added magazines to weekly debrief feature\r\n- updated user and weekly debrief models to allow tracking of read magazines\r\n- updated logic in user and weekly debrief controllers to enable reading of magazines\r\n\r\n* Revert package.json changes\r\n\r\n- reverted package.json changes back to the original file\r\n- added additional rules to eslintrc to suppress es lint warnings\r\n\r\n* Create jest testing for magazines\r\n\r\n- added jest test cases for magazines\r\n\r\n* Implement jest testing for User\r\n\r\n- implemented unit testing for UserRepo\r\n- indirectly test Weekly Debrief with User unit tests\r\n\r\n* Update gitignore\r\n\r\n- updated gitignore file to include secrets folder\r\n\r\n* Implement reshuffle articles (#68)\r\n\r\n* Add Docstrings to Test Factory Functions (#64)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\n* Add docstrings\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\nImplement shuffle article function\r\n\r\ntry to implement reshuffling with aggregate\r\n\r\n* Implement reshuffling of articles\r\n\r\n* Revert package.json, update eslint and update .gitignore to match main branch\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\n\r\n* Implement magazine search (#69)\r\n\r\n* Implement magazine search\r\n\r\n- implemented searching for magazines\r\n\r\n* update magazinerepo\r\n\r\n* Add unit test for magazine search\r\n\r\n- created unit test for MagazineRepo.searchMagazine\r\n\r\n* Convert result of shuffling resolver to ArticleModel (#71)\r\n\r\n* Add 3 new publications (Cornell Daily Sun, Collective X, and Cornell Healthcare Review) to publications.js (#70)\r\n\r\n* Resolve merge conflicts in publications.json (keep release version) (#76)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Revert \"Resolve merge conflicts in publications.json (keep release version) (#76)\" (#77)\r\n\r\nThis reverts commit eccf00c0fe5ebbbe81bf9b1f643640d991cb1c29.\r\n\r\n* fix merge conflicts (#78)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Implement community board [1/7] (#81)\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement flyers for community board\r\n\r\n- alphabetized imports and fields\r\n- finished implementing flyers for community board\r\n\r\n* Address pr review comments\r\n\r\n- addressed pr review comments\r\n- removed redundant filtering in FlyerRepo\r\n- added checks for null return values in FlyerRepo\r\n- alphabetized imports and exports\r\n\r\n* Add imageURL field to Magazine entity. (#73)\r\n\r\n* Add no rules to volume-backend's publications.json (#82)\r\n\r\n* Implement community board (flyer tests) [2/7] (#84)\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement flyers for community board\r\n\r\n- alphabetized imports and fields\r\n- finished implementing flyers for community board\r\n\r\n* Implement jest testing for flyers\r\n\r\n- created jest unit testing for FlyerRepo\r\n- created FlyerFactory to help with jest testing\r\n\r\n* Remove isFiltered field from Flyer entity\r\n\r\n- removed redundant isFiltered field from Flyer entity (already checked in microservice)\r\n- updated FlyerRepo and jest testing to reflect changes\r\n\r\n* Alphabetize imports and exports\r\n\r\n- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory\r\n\r\n* Revert merge conflict changes\r\n\r\n- reverted merge conflict changes (accept incoming when actually wanted to keep current)\r\n\r\n* Address review comments\r\n\r\n- alphabetize imports\r\n- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response\r\n- added unit test case for FlyerRepo.getTrendingFlyers\r\n\r\n* Address review comments (Shungo)\r\n\r\n- added spaces between test cases\r\n\r\n* Implement community board organizations (#85)\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement community board (organization tests) [4/7] (#86)\r\n\r\n* Implement community board organizations\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement jest testing for organizations\r\n\r\n- implemented jest testing for community board organizations\r\n- created organizations.json with 3 onboarded organizations\r\n- added FlyerResolver and OrganizationResolver to app.ts\r\n\r\n* Implement community board (user queries/mutations) [5/7] (#87)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement basic community board features\r\n\r\n- finished implementing basic organization and flyer repos/resolvers\r\n- created jest testing for organization and flyer repos\r\n\r\n* Remove unnecessary OrganizationRepo function\r\n\r\n- removed content types route from organization repo and organization resolver\r\n\r\n* Implement user routes for community board\r\n\r\n- implemented user routes for community board to allow following orgs and reading flyers\r\n- added jest unit test cases for new UserRepo functions\r\n\r\n* Implement mutations for following and unfollowing organizations\r\n\r\n- added resolvers to UserResolver for following and unfollowing organizations\r\n- updated documentation in UserRepo\r\n- added import of FlyerRepo in app.ts\r\n\r\n* Address pr review comments\r\n\r\n- fix spelling\r\n\r\n* Address pr review comments\r\n\r\n- made style consistent in UserRepo by checking for if(user) in appendReadFlyer, appendReadArticle, and appendReadMagazine\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Onboard organizations (#90)\r\n\r\n- add organizations from volume-microservice onto organizations.json\r\n\r\n* Implement community board (categories and org lists) [6/7] (#89)\r\n\r\n* Implement community board organizations\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement jest testing for organizations\r\n\r\n- implemented jest testing for community board organizations\r\n- created organizations.json with 3 onboarded organizations\r\n- added FlyerResolver and OrganizationResolver to app.ts\r\n\r\n* initial commit\r\n\r\n* Implement organizations as list for flyer model\r\n\r\n- updated flyer model to allow a list of organizations and organizationSlugs to be associated with each flyer\r\n- updated flyer and organization queries accordingly\r\n- added unit jest test cases and update old ones accordingly\r\n\r\n* Address pr review comments\r\n\r\n- removed redundant resolvers\r\n- updated getOrganizationByCategory test\r\n\r\n* Address pr review comments (kate)\r\n\r\n- updated docs in OrganizationResolver\r\n\r\n* Implement cboard start and end dates (#93)\r\n\r\n* Implement end dates\r\n\r\n- implemented start and end dates\r\n- changed shoutouts to times clicked\r\n- updated testing and documentation to reflect changes\r\n\r\n* Address pr review comments\r\n\r\n- removed async from getFlyersBeforeDate and getFlyersAfterDate\r\n- updated documentation in FactoryUtils\r\n\r\n* add incrementTimesClicked to resolver\r\n\r\n* update organization shoutouts query (#94)\r\n\r\n* Implement end dates\r\n\r\n- implemented start and end dates\r\n- changed shoutouts to times clicked\r\n- updated testing and documentation to reflect changes\r\n\r\n* Address pr review comments\r\n\r\n- removed async from getFlyersBeforeDate and getFlyersAfterDate\r\n- updated documentation in FactoryUtils\r\n\r\n* add incrementTimesClicked to resolver\r\n\r\n* Update organization clicks\r\n\r\n- changed shoutouts query to clicks in OrganizationResolver\r\n\r\n* Implement trending flyers logic (#95)\r\n\r\n- updated trending flyers logic\r\n- updated FlyerRepo\r\n- updated documentation in FlyerResolver\r\n\r\n* Fixed notification issue (#97)\r\n\r\n* Flyer Notifications + Org/Flyer Model Changes (#99)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Inline notification calls\r\n\r\n* Improve Search Algorithm (#101)\r\n\r\n* Update README.md start instructions\r\n\r\n* Update search function for articles\r\n\r\n* Remove console log\r\n\r\n* Update articles search to use text search instead of regex\r\n\r\n* Update search for Flyers and Magazines\r\n\r\n* Update documentation, remove unused Fuse package\r\n\r\n* Fix README.md start docs\r\n\r\n* Filter out past flyers during flyers search\r\n\r\n* Fix formatting, improve concision\r\n\r\n* Remove start.md\r\n\r\n* Changed indexing method to being declared on the models\r\n\r\n* Update README.md\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n---------\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* getFlyersByCategorySlug Query (#100)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Added getFlyersByCategorySlug query\r\n\r\n* Update query description\r\n\r\n* Inline notification calls\r\n\r\n* Update flyer.test.ts\r\n\r\n* Update flyer.test.ts\r\n\r\n* Merge `vin/create-flyer` to `main` (#104)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Added getFlyersByCategorySlug query\r\n\r\n* Update query description\r\n\r\n* Inline notification calls\r\n\r\n* Add createFlyer mutation\r\n\r\n* `deleteFlyer` mutation (#103)\r\n\r\n* Add deleteFlyer mutation\r\n\r\n* Address PR comments\r\n\r\n* Update utils.ts\r\n\r\n* Update FlyerRepo.ts\r\n\r\n* Trendiness Update and Migration Script for New Flyers Model (#106)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Zach/trendiness and migration hot fix (#107)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Fix TypeScript compilation error\r\n\r\n* Micro PR for Flyers categorySlug migration (#108)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Fix TypeScript compilation error\r\n\r\n* Update migration script to account for category slug\r\n\r\n* Fix formatting for flyers test\r\n\r\n* Create `editFlyer` mutation (#105)\r\n\r\n* Add `editFlyer`\r\n\r\n* Address PR comments\r\n\r\n* `checkAccessCode` query for Organization authentication (#109)\r\n\r\n* Added Organization authentication\r\n\r\n* Updated Authorization\r\n\r\n* Implemented getAllFlyerCategories and tests (#110)\r\n\r\n* Implemented getAllFlyerCategories and tests\r\n\r\n* update jest\r\n\r\n* update jest\r\n\r\n* implemented suggestions from zach, vin, and archit\r\n\r\n* got rid of ESLint comment\r\n\r\n* fixed names for tests\r\n\r\n* Added loops to test cases\r\n\r\n* Fixed test case to create flyers with the same category\r\n\r\n* Changed 'push' to 'concat'\r\n\r\n---------\r\n\r\nCo-authored-by: Cindy \r\n\r\n* Changing specifications for getFlyersBeforeDate and getFlyersAfterDate (#112)\r\n\r\n* Cindy/flyer categories (#113)\r\n\r\n* Implemented getAllFlyerCategories and tests\r\n\r\n* update jest\r\n\r\n* update jest\r\n\r\n* implemented suggestions from zach, vin, and archit\r\n\r\n* got rid of ESLint comment\r\n\r\n* fixed names for tests\r\n\r\n* Added loops to test cases\r\n\r\n* Fixed test case to create flyers with the same category\r\n\r\n* Changed 'push' to 'concat'\r\n\r\n* Updated `getAllFlyerCategories`\r\n\r\n---------\r\n\r\nCo-authored-by: Cindy \r\nCo-authored-by: Vin Bui \r\n\r\n* Increased HTTP request size (#114)\r\n\r\n* Added limit to JSON request body\r\n\r\n* Update package-lock.json\r\n\r\n* Add error message (#116)\r\n\r\n* Added limit to JSON request body\r\n\r\n* Update package-lock.json\r\n\r\n* Added error message\r\n\r\n* Update FlyerMiddleware.ts (#119)\r\n\r\n* Update publications.json (#122)\r\n\r\nAdd WoMENA as a publication\r\n\r\n* Change Create Flyer route to use form data for image upload (#121)\r\n\r\n* Add post express route using form data\r\n\r\n* Remove .idea\r\n\r\n* revert readme\r\n\r\n* try catch for large file uploads\r\n\r\n* Remove uncertain comments\r\n\r\n* Refactor upload image util to use form data\r\n\r\n* Cover the case where the Flyer ID that was sent is invalid\r\n\r\n* Update file key, add documentation\r\n\r\n* Fixed issue with edit flyer (#124)\r\n\r\n* Fixed issue with edit flyer\r\n\r\n* Update app.ts\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\nCo-authored-by: Shungo Najima \r\nCo-authored-by: Isaac Han \r\nCo-authored-by: Sasha Loayza <104698418+SashaLoayza@users.noreply.github.com>\r\nCo-authored-by: Zachary Seidner <58796478+zachseidner1@users.noreply.github.com>\r\nCo-authored-by: cindy-x-liang <67083541+cindy-x-liang@users.noreply.github.com>\r\nCo-authored-by: Cindy \r\nCo-authored-by: Aayush <68517064+Aayush-Agnihotri@users.noreply.github.com>\r\nCo-authored-by: Jennifer Gu <57200368+jjennifergu@users.noreply.github.com>","shortMessageHtmlLink":"Merge main to release (#125)"}},{"before":"1a3ba2de735d717fe573e8b54658fcb6db4762b7","after":"269eee4ad7dca8a5a5137f0bade561a06d2b07de","ref":"refs/heads/release-copy","pushedAt":"2023-11-07T17:39:37.000Z","pushType":"push","commitsCount":44,"pusher":{"login":"vinnie4k","name":"Vin Bui","path":"/vinnie4k","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/75594943?s=80&v=4"},"commit":{"message":"Merge branch 'main' into release-copy","shortMessageHtmlLink":"Merge branch 'main' into release-copy"}},{"before":null,"after":"1a3ba2de735d717fe573e8b54658fcb6db4762b7","ref":"refs/heads/release-copy","pushedAt":"2023-11-07T17:38:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"vinnie4k","name":"Vin Bui","path":"/vinnie4k","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/75594943?s=80&v=4"},"commit":{"message":"Merge `main` to `release` (#123)\n\n* Add Jest testing (#63)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Add Docstrings to Test Factory Functions (#64)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\n* Add docstrings\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update README.md\r\n\r\n* Implement community board models (#65)\r\n\r\n* Implemented community board models\r\n\r\n- implemented Flyer and Organization models for community board feature\r\n- modified User model\r\n- updated typescript version to 4.0.5 to resolve es lint issue\r\n\r\n* Revert package.json changes\r\n\r\n- reverted package.json changes that are addressed in a different pr\r\n\r\n* Add magazines to weekly debrief (#66)\r\n\r\n* Implemented community board models\r\n\r\n- implemented Flyer and Organization models for community board feature\r\n- modified User model\r\n- updated typescript version to 4.0.5 to resolve es lint issue\r\n\r\n* Implemented weekly debrief magazines\r\n\r\n- added magazines to weekly debrief feature\r\n- updated user and weekly debrief models to allow tracking of read magazines\r\n- updated logic in user and weekly debrief controllers to enable reading of magazines\r\n\r\n* Revert package.json changes\r\n\r\n- reverted package.json changes back to the original file\r\n- added additional rules to eslintrc to suppress es lint warnings\r\n\r\n* Create jest testing for magazines\r\n\r\n- added jest test cases for magazines\r\n\r\n* Implement jest testing for User\r\n\r\n- implemented unit testing for UserRepo\r\n- indirectly test Weekly Debrief with User unit tests\r\n\r\n* Update gitignore\r\n\r\n- updated gitignore file to include secrets folder\r\n\r\n* Implement reshuffle articles (#68)\r\n\r\n* Add Docstrings to Test Factory Functions (#64)\r\n\r\n* Initial boilerplate setup\r\n\r\n* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file\r\n\r\n* Add test cases on getAllArticles\r\n\r\n* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)\r\n\r\n* Add hooks\r\n\r\n* Update README\r\n\r\n* Add pr changes\r\n\r\n* Add pr changes\r\n\r\n* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate\r\n\r\n* Add publication tests and refactor factory files\r\n\r\n* Remove test db open message\r\n\r\n* Update src/tests/article.test.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Update src/tests/data/ArticleFactory.ts\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* Refactor code\r\n\r\n* Refactor byDate\r\n\r\n* Add docstrings\r\n\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\nImplement shuffle article function\r\n\r\ntry to implement reshuffling with aggregate\r\n\r\n* Implement reshuffling of articles\r\n\r\n* Revert package.json, update eslint and update .gitignore to match main branch\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\n\r\n* Implement magazine search (#69)\r\n\r\n* Implement magazine search\r\n\r\n- implemented searching for magazines\r\n\r\n* update magazinerepo\r\n\r\n* Add unit test for magazine search\r\n\r\n- created unit test for MagazineRepo.searchMagazine\r\n\r\n* Convert result of shuffling resolver to ArticleModel (#71)\r\n\r\n* Add 3 new publications (Cornell Daily Sun, Collective X, and Cornell Healthcare Review) to publications.js (#70)\r\n\r\n* Resolve merge conflicts in publications.json (keep release version) (#76)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Revert \"Resolve merge conflicts in publications.json (keep release version) (#76)\" (#77)\r\n\r\nThis reverts commit eccf00c0fe5ebbbe81bf9b1f643640d991cb1c29.\r\n\r\n* fix merge conflicts (#78)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Implement community board [1/7] (#81)\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement flyers for community board\r\n\r\n- alphabetized imports and fields\r\n- finished implementing flyers for community board\r\n\r\n* Address pr review comments\r\n\r\n- addressed pr review comments\r\n- removed redundant filtering in FlyerRepo\r\n- added checks for null return values in FlyerRepo\r\n- alphabetized imports and exports\r\n\r\n* Add imageURL field to Magazine entity. (#73)\r\n\r\n* Add no rules to volume-backend's publications.json (#82)\r\n\r\n* Implement community board (flyer tests) [2/7] (#84)\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement flyers for community board\r\n\r\n- alphabetized imports and fields\r\n- finished implementing flyers for community board\r\n\r\n* Implement jest testing for flyers\r\n\r\n- created jest unit testing for FlyerRepo\r\n- created FlyerFactory to help with jest testing\r\n\r\n* Remove isFiltered field from Flyer entity\r\n\r\n- removed redundant isFiltered field from Flyer entity (already checked in microservice)\r\n- updated FlyerRepo and jest testing to reflect changes\r\n\r\n* Alphabetize imports and exports\r\n\r\n- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory\r\n\r\n* Revert merge conflict changes\r\n\r\n- reverted merge conflict changes (accept incoming when actually wanted to keep current)\r\n\r\n* Address review comments\r\n\r\n- alphabetize imports\r\n- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response\r\n- added unit test case for FlyerRepo.getTrendingFlyers\r\n\r\n* Address review comments (Shungo)\r\n\r\n- added spaces between test cases\r\n\r\n* Implement community board organizations (#85)\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement community board (organization tests) [4/7] (#86)\r\n\r\n* Implement community board organizations\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement jest testing for organizations\r\n\r\n- implemented jest testing for community board organizations\r\n- created organizations.json with 3 onboarded organizations\r\n- added FlyerResolver and OrganizationResolver to app.ts\r\n\r\n* Implement community board (user queries/mutations) [5/7] (#87)\r\n\r\n* Kidus/filter articles (#48)\r\n\r\n* Add covid filter to all article query functions\r\n\r\n* Add filtering capability\r\n\r\n* Fix getArticleById filter\r\n\r\n* Create filter migration script\r\n\r\n* Finish migration script\r\n\r\n* Add toggle for filtering enforcement\r\n\r\n* Implement PR changes\r\n\r\nCo-authored-by: Kidus Zegeye \r\n\r\n* Fix BRSN's url\r\n\r\n* Migrate bookmark resolver and update User Repo & Entity\r\n\r\n* Resolve remaining merge conflicts\r\n\r\n* Implement chronological sorting\r\n\r\n* Update prod deployment script\r\n\r\n* Remove unused MagazineURL index from Magazine DB\r\n\r\n* Add no rules to publications.json\r\n\r\n* Remove trailing comma\r\n\r\n* Begin implementing FlyerRepo\r\n\r\n- implemented basic FlyerRepo functions\r\n- updated Flyer model to support uploading in app instead of through a google form\r\n\r\n* Implement basic community board features\r\n\r\n- finished implementing basic organization and flyer repos/resolvers\r\n- created jest testing for organization and flyer repos\r\n\r\n* Remove unnecessary OrganizationRepo function\r\n\r\n- removed content types route from organization repo and organization resolver\r\n\r\n* Implement user routes for community board\r\n\r\n- implemented user routes for community board to allow following orgs and reading flyers\r\n- added jest unit test cases for new UserRepo functions\r\n\r\n* Implement mutations for following and unfollowing organizations\r\n\r\n- added resolvers to UserResolver for following and unfollowing organizations\r\n- updated documentation in UserRepo\r\n- added import of FlyerRepo in app.ts\r\n\r\n* Address pr review comments\r\n\r\n- fix spelling\r\n\r\n* Address pr review comments\r\n\r\n- made style consistent in UserRepo by checking for if(user) in appendReadFlyer, appendReadArticle, and appendReadMagazine\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit404Error <4architmehta@gmail.com>\r\n\r\n* Onboard organizations (#90)\r\n\r\n- add organizations from volume-microservice onto organizations.json\r\n\r\n* Implement community board (categories and org lists) [6/7] (#89)\r\n\r\n* Implement community board organizations\r\n\r\n- resolve merge conflicts in Flyer.ts and FlyerFactory.ts\r\n- update Organization model\r\n- implement logic in OrganizationRepo\r\n- implement queries and mutations in OrganizationResolver\r\n\r\n* Implement jest testing for organizations\r\n\r\n- implemented jest testing for community board organizations\r\n- created organizations.json with 3 onboarded organizations\r\n- added FlyerResolver and OrganizationResolver to app.ts\r\n\r\n* initial commit\r\n\r\n* Implement organizations as list for flyer model\r\n\r\n- updated flyer model to allow a list of organizations and organizationSlugs to be associated with each flyer\r\n- updated flyer and organization queries accordingly\r\n- added unit jest test cases and update old ones accordingly\r\n\r\n* Address pr review comments\r\n\r\n- removed redundant resolvers\r\n- updated getOrganizationByCategory test\r\n\r\n* Address pr review comments (kate)\r\n\r\n- updated docs in OrganizationResolver\r\n\r\n* Implement cboard start and end dates (#93)\r\n\r\n* Implement end dates\r\n\r\n- implemented start and end dates\r\n- changed shoutouts to times clicked\r\n- updated testing and documentation to reflect changes\r\n\r\n* Address pr review comments\r\n\r\n- removed async from getFlyersBeforeDate and getFlyersAfterDate\r\n- updated documentation in FactoryUtils\r\n\r\n* add incrementTimesClicked to resolver\r\n\r\n* update organization shoutouts query (#94)\r\n\r\n* Implement end dates\r\n\r\n- implemented start and end dates\r\n- changed shoutouts to times clicked\r\n- updated testing and documentation to reflect changes\r\n\r\n* Address pr review comments\r\n\r\n- removed async from getFlyersBeforeDate and getFlyersAfterDate\r\n- updated documentation in FactoryUtils\r\n\r\n* add incrementTimesClicked to resolver\r\n\r\n* Update organization clicks\r\n\r\n- changed shoutouts query to clicks in OrganizationResolver\r\n\r\n* Implement trending flyers logic (#95)\r\n\r\n- updated trending flyers logic\r\n- updated FlyerRepo\r\n- updated documentation in FlyerResolver\r\n\r\n* Fixed notification issue (#97)\r\n\r\n* Flyer Notifications + Org/Flyer Model Changes (#99)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Inline notification calls\r\n\r\n* Improve Search Algorithm (#101)\r\n\r\n* Update README.md start instructions\r\n\r\n* Update search function for articles\r\n\r\n* Remove console log\r\n\r\n* Update articles search to use text search instead of regex\r\n\r\n* Update search for Flyers and Magazines\r\n\r\n* Update documentation, remove unused Fuse package\r\n\r\n* Fix README.md start docs\r\n\r\n* Filter out past flyers during flyers search\r\n\r\n* Fix formatting, improve concision\r\n\r\n* Remove start.md\r\n\r\n* Changed indexing method to being declared on the models\r\n\r\n* Update README.md\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n---------\r\n\r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\n\r\n* getFlyersByCategorySlug Query (#100)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Added getFlyersByCategorySlug query\r\n\r\n* Update query description\r\n\r\n* Inline notification calls\r\n\r\n* Update flyer.test.ts\r\n\r\n* Update flyer.test.ts\r\n\r\n* Merge `vin/create-flyer` to `main` (#104)\r\n\r\n* Fixed notification issue\r\n\r\n* Added flyer notification\r\n\r\n* Added flyer notification\r\n\r\n* Updated Organization and Flyer models\r\n\r\n* Updated test cases\r\n\r\n* Added getFlyersByCategorySlug query\r\n\r\n* Update query description\r\n\r\n* Inline notification calls\r\n\r\n* Add createFlyer mutation\r\n\r\n* `deleteFlyer` mutation (#103)\r\n\r\n* Add deleteFlyer mutation\r\n\r\n* Address PR comments\r\n\r\n* Update utils.ts\r\n\r\n* Update FlyerRepo.ts\r\n\r\n* Trendiness Update and Migration Script for New Flyers Model (#106)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Zach/trendiness and migration hot fix (#107)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Fix TypeScript compilation error\r\n\r\n* Micro PR for Flyers categorySlug migration (#108)\r\n\r\n* Add migration script to update data based on new Flyers schema\r\n\r\n* Update Flyer trendiness\r\n\r\n* Fix comments\r\n\r\n* Clean up syntax for get trending flyers\r\n\r\n* Remove unnecessary createSpecificsByIndex function\r\n\r\n* Fix TypeScript compilation error\r\n\r\n* Update migration script to account for category slug\r\n\r\n* Fix formatting for flyers test\r\n\r\n* Create `editFlyer` mutation (#105)\r\n\r\n* Add `editFlyer`\r\n\r\n* Address PR comments\r\n\r\n* `checkAccessCode` query for Organization authentication (#109)\r\n\r\n* Added Organization authentication\r\n\r\n* Updated Authorization\r\n\r\n* Implemented getAllFlyerCategories and tests (#110)\r\n\r\n* Implemented getAllFlyerCategories and tests\r\n\r\n* update jest\r\n\r\n* update jest\r\n\r\n* implemented suggestions from zach, vin, and archit\r\n\r\n* got rid of ESLint comment\r\n\r\n* fixed names for tests\r\n\r\n* Added loops to test cases\r\n\r\n* Fixed test case to create flyers with the same category\r\n\r\n* Changed 'push' to 'concat'\r\n\r\n---------\r\n\r\nCo-authored-by: Cindy \r\n\r\n* Changing specifications for getFlyersBeforeDate and getFlyersAfterDate (#112)\r\n\r\n* Cindy/flyer categories (#113)\r\n\r\n* Implemented getAllFlyerCategories and tests\r\n\r\n* update jest\r\n\r\n* update jest\r\n\r\n* implemented suggestions from zach, vin, and archit\r\n\r\n* got rid of ESLint comment\r\n\r\n* fixed names for tests\r\n\r\n* Added loops to test cases\r\n\r\n* Fixed test case to create flyers with the same category\r\n\r\n* Changed 'push' to 'concat'\r\n\r\n* Updated `getAllFlyerCategories`\r\n\r\n---------\r\n\r\nCo-authored-by: Cindy \r\nCo-authored-by: Vin Bui \r\n\r\n* Increased HTTP request size (#114)\r\n\r\n* Added limit to JSON request body\r\n\r\n* Update package-lock.json\r\n\r\n* Add error message (#116)\r\n\r\n* Added limit to JSON request body\r\n\r\n* Update package-lock.json\r\n\r\n* Added error message\r\n\r\n* Update FlyerMiddleware.ts (#119)\r\n\r\n* Update publications.json (#122)\r\n\r\nAdd WoMENA as a publication\r\n\r\n* Change Create Flyer route to use form data for image upload (#121)\r\n\r\n* Add post express route using form data\r\n\r\n* Remove .idea\r\n\r\n* revert readme\r\n\r\n* try catch for large file uploads\r\n\r\n* Remove uncertain comments\r\n\r\n* Refactor upload image util to use form data\r\n\r\n* Cover the case where the Flyer ID that was sent is invalid\r\n\r\n* Update file key, add documentation\r\n\r\n---------\r\n\r\nCo-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>\r\nCo-authored-by: Kidus Zegeye \r\nCo-authored-by: Archit Mehta <4architmehta@gmail.com>\r\nCo-authored-by: Shungo Najima \r\nCo-authored-by: Isaac Han \r\nCo-authored-by: Sasha Loayza <104698418+SashaLoayza@users.noreply.github.com>\r\nCo-authored-by: Zachary Seidner <58796478+zachseidner1@users.noreply.github.com>\r\nCo-authored-by: cindy-x-liang <67083541+cindy-x-liang@users.noreply.github.com>\r\nCo-authored-by: Cindy \r\nCo-authored-by: Aayush <68517064+Aayush-Agnihotri@users.noreply.github.com>\r\nCo-authored-by: Jennifer Gu <57200368+jjennifergu@users.noreply.github.com>","shortMessageHtmlLink":"Merge main to release (#123)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyMy0xMS0yNlQyMzo1Njo0Ny4wMDAwMDBazwAAAAO4KNZ1","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0xMS0wN1QxNzozODo1MS4wMDAwMDBazwAAAAOpne1k"}},"title":"Activity · cuappdev/volume-backend"}