Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement community board (flyer tests) [2/7] #84

Merged
merged 10 commits into from
Apr 25, 2023

Conversation

isaachan100
Copy link
Contributor

Overview

Implement jest testing for FlyerRepo

Changes Made

Create unit jest test cases for FlyerRepo

Test Coverage

jest testing runs to completion

Next Steps (delete if not applicable)

Next steps: make PRs 3-7 that will implement organizations, categories, and user routes

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form
- alphabetized imports and fields
- finished implementing flyers for community board
- created jest unit testing for FlyerRepo
- created FlyerFactory to help with jest testing
- removed redundant isFiltered field from Flyer entity (already checked in microservice)
- updated FlyerRepo and jest testing to reflect changes
- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory
- reverted merge conflict changes (accept incoming when actually wanted to keep current)
Copy link

@katesliang katesliang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nicee! should change your PR title to Implement Flyer tests [2/7] to distinguish the PRs in your stack

also why are no tests for getTrendingFlyers and refreshTrendingFlyers?

const exampleOrg = await OrganizationFactory.getRandomOrganization();

fakeFlyer.date = faker.date.past();
fakeFlyer.imageURL = faker.image.cats();

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

meow

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

meow

src/tests/data/FlyerFactory.ts Show resolved Hide resolved
src/tests/flyer.test.ts Show resolved Hide resolved
@isaachan100 isaachan100 changed the title Implement community board [2/7] Implement community board (flyer tests) [2/7] Apr 23, 2023
- alphabetize imports
- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response
- added unit test case for FlyerRepo.getTrendingFlyers
@isaachan100 isaachan100 requested a review from katesliang April 23, 2023 19:18
katesliang
katesliang previously approved these changes Apr 24, 2023
Copy link

@katesliang katesliang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

prod

snajima
snajima previously approved these changes Apr 24, 2023
Copy link
Contributor

@snajima snajima left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm! can we add spaces between all the tests before we merge

- added spaces between test cases
@isaachan100 isaachan100 dismissed stale reviews from snajima and katesliang via f99c5a0 April 24, 2023 23:42
Copy link

@katesliang katesliang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice

@isaachan100 isaachan100 merged commit 34f1bd8 into main Apr 25, 2023
isaachan100 added a commit that referenced this pull request Apr 29, 2023
* Add Jest testing (#63)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update README.md

* Implement community board models (#65)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Revert package.json changes

- reverted package.json changes that are addressed in a different pr

* Add magazines to weekly debrief (#66)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Implemented weekly debrief magazines

- added magazines to weekly debrief feature
- updated user and weekly debrief models to allow tracking of read magazines
- updated logic in user and weekly debrief controllers to enable reading of magazines

* Revert package.json changes

- reverted package.json changes back to the original file
- added additional rules to eslintrc to suppress es lint warnings

* Create jest testing for magazines

- added jest test cases for magazines

* Implement jest testing for User

- implemented unit testing for UserRepo
- indirectly test Weekly Debrief with User unit tests

* Update gitignore

- updated gitignore file to include secrets folder

* Implement reshuffle articles (#68)

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

Implement shuffle article function

try to implement reshuffling with aggregate

* Implement reshuffling of articles

* Revert package.json, update eslint and update .gitignore to match main branch

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>

* Implement magazine search (#69)

* Implement magazine search

- implemented searching for magazines

* update magazinerepo

* Add unit test for magazine search

- created unit test for MagazineRepo.searchMagazine

* Convert result of shuffling resolver to ArticleModel (#71)

* Add 3 new publications (Cornell Daily Sun, Collective X, and Cornell Healthcare Review) to publications.js (#70)

* Resolve merge conflicts in publications.json (keep release version) (#76)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Revert "Resolve merge conflicts in publications.json (keep release version) (#76)" (#77)

This reverts commit eccf00c.

* fix merge conflicts (#78)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Implement community board [1/7] (#81)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Address pr review comments

- addressed pr review comments
- removed redundant filtering in FlyerRepo
- added checks for null return values in FlyerRepo
- alphabetized imports and exports

* Add imageURL field to Magazine entity. (#73)

* Add no rules to volume-backend's publications.json (#82)

* Implement community board (flyer tests) [2/7] (#84)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Implement jest testing for flyers

- created jest unit testing for FlyerRepo
- created FlyerFactory to help with jest testing

* Remove isFiltered field from Flyer entity

- removed redundant isFiltered field from Flyer entity (already checked in microservice)
- updated FlyerRepo and jest testing to reflect changes

* Alphabetize imports and exports

- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory

* Revert merge conflict changes

- reverted merge conflict changes (accept incoming when actually wanted to keep current)

* Address review comments

- alphabetize imports
- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response
- added unit test case for FlyerRepo.getTrendingFlyers

* Address review comments (Shungo)

- added spaces between test cases

* Implement community board organizations (#85)

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement community board (organization tests) [4/7] (#86)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>
Co-authored-by: Shungo Najima <sn685@cornell.edu>
Co-authored-by: Sasha Loayza <104698418+SashaLoayza@users.noreply.github.com>
@isaachan100 isaachan100 deleted the isaac/community-board-02 branch May 3, 2023 12:54
isaachan100 added a commit that referenced this pull request May 3, 2023
* Add Jest testing (#63)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update README.md

* Implement community board models (#65)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Revert package.json changes

- reverted package.json changes that are addressed in a different pr

* Add magazines to weekly debrief (#66)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Implemented weekly debrief magazines

- added magazines to weekly debrief feature
- updated user and weekly debrief models to allow tracking of read magazines
- updated logic in user and weekly debrief controllers to enable reading of magazines

* Revert package.json changes

- reverted package.json changes back to the original file
- added additional rules to eslintrc to suppress es lint warnings

* Create jest testing for magazines

- added jest test cases for magazines

* Implement jest testing for User

- implemented unit testing for UserRepo
- indirectly test Weekly Debrief with User unit tests

* Update gitignore

- updated gitignore file to include secrets folder

* Implement reshuffle articles (#68)

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

Implement shuffle article function

try to implement reshuffling with aggregate

* Implement reshuffling of articles

* Revert package.json, update eslint and update .gitignore to match main branch

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>

* Implement magazine search (#69)

* Implement magazine search

- implemented searching for magazines

* update magazinerepo

* Add unit test for magazine search

- created unit test for MagazineRepo.searchMagazine

* Convert result of shuffling resolver to ArticleModel (#71)

* Add 3 new publications (Cornell Daily Sun, Collective X, and Cornell Healthcare Review) to publications.js (#70)

* Resolve merge conflicts in publications.json (keep release version) (#76)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Revert "Resolve merge conflicts in publications.json (keep release version) (#76)" (#77)

This reverts commit eccf00c.

* fix merge conflicts (#78)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Implement community board [1/7] (#81)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Address pr review comments

- addressed pr review comments
- removed redundant filtering in FlyerRepo
- added checks for null return values in FlyerRepo
- alphabetized imports and exports

* Add imageURL field to Magazine entity. (#73)

* Add no rules to volume-backend's publications.json (#82)

* Implement community board (flyer tests) [2/7] (#84)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Implement jest testing for flyers

- created jest unit testing for FlyerRepo
- created FlyerFactory to help with jest testing

* Remove isFiltered field from Flyer entity

- removed redundant isFiltered field from Flyer entity (already checked in microservice)
- updated FlyerRepo and jest testing to reflect changes

* Alphabetize imports and exports

- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory

* Revert merge conflict changes

- reverted merge conflict changes (accept incoming when actually wanted to keep current)

* Address review comments

- alphabetize imports
- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response
- added unit test case for FlyerRepo.getTrendingFlyers

* Address review comments (Shungo)

- added spaces between test cases

* Implement community board organizations (#85)

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement community board (organization tests) [4/7] (#86)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* Implement community board (user queries/mutations) [5/7] (#87)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement basic community board features

- finished implementing basic organization and flyer repos/resolvers
- created jest testing for organization and flyer repos

* Remove unnecessary OrganizationRepo function

- removed content types route from organization repo and organization resolver

* Implement user routes for community board

- implemented user routes for community board to allow following orgs and reading flyers
- added jest unit test cases for new UserRepo functions

* Implement mutations for following and unfollowing organizations

- added resolvers to UserResolver for following and unfollowing organizations
- updated documentation in UserRepo
- added import of FlyerRepo in app.ts

* Address pr review comments

- fix spelling

* Address pr review comments

- made style consistent in UserRepo by checking for if(user) in appendReadFlyer, appendReadArticle, and appendReadMagazine

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Onboard organizations (#90)

- add organizations from volume-microservice onto organizations.json

* Implement community board (categories and org lists) [6/7] (#89)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* initial commit

* Implement organizations as list for flyer model

- updated flyer model to allow a list of organizations and organizationSlugs to be associated with each flyer
- updated flyer and organization queries accordingly
- added unit jest test cases and update old ones accordingly

* Address pr review comments

- removed redundant resolvers
- updated getOrganizationByCategory test

* Address pr review comments (kate)

- updated docs in OrganizationResolver

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>
Co-authored-by: Shungo Najima <sn685@cornell.edu>
Co-authored-by: Sasha Loayza <104698418+SashaLoayza@users.noreply.github.com>
isaachan100 added a commit that referenced this pull request Jun 26, 2023
* Add Jest testing (#63)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update README.md

* Implement community board models (#65)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Revert package.json changes

- reverted package.json changes that are addressed in a different pr

* Add magazines to weekly debrief (#66)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Implemented weekly debrief magazines

- added magazines to weekly debrief feature
- updated user and weekly debrief models to allow tracking of read magazines
- updated logic in user and weekly debrief controllers to enable reading of magazines

* Revert package.json changes

- reverted package.json changes back to the original file
- added additional rules to eslintrc to suppress es lint warnings

* Create jest testing for magazines

- added jest test cases for magazines

* Implement jest testing for User

- implemented unit testing for UserRepo
- indirectly test Weekly Debrief with User unit tests

* Update gitignore

- updated gitignore file to include secrets folder

* Implement reshuffle articles (#68)

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

Implement shuffle article function

try to implement reshuffling with aggregate

* Implement reshuffling of articles

* Revert package.json, update eslint and update .gitignore to match main branch

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>

* Implement magazine search (#69)

* Implement magazine search

- implemented searching for magazines

* update magazinerepo

* Add unit test for magazine search

- created unit test for MagazineRepo.searchMagazine

* Convert result of shuffling resolver to ArticleModel (#71)

* Add 3 new publications (Cornell Daily Sun, Collective X, and Cornell Healthcare Review) to publications.js (#70)

* Resolve merge conflicts in publications.json (keep release version) (#76)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Revert "Resolve merge conflicts in publications.json (keep release version) (#76)" (#77)

This reverts commit eccf00c.

* fix merge conflicts (#78)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Implement community board [1/7] (#81)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Address pr review comments

- addressed pr review comments
- removed redundant filtering in FlyerRepo
- added checks for null return values in FlyerRepo
- alphabetized imports and exports

* Add imageURL field to Magazine entity. (#73)

* Add no rules to volume-backend's publications.json (#82)

* Implement community board (flyer tests) [2/7] (#84)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Implement jest testing for flyers

- created jest unit testing for FlyerRepo
- created FlyerFactory to help with jest testing

* Remove isFiltered field from Flyer entity

- removed redundant isFiltered field from Flyer entity (already checked in microservice)
- updated FlyerRepo and jest testing to reflect changes

* Alphabetize imports and exports

- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory

* Revert merge conflict changes

- reverted merge conflict changes (accept incoming when actually wanted to keep current)

* Address review comments

- alphabetize imports
- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response
- added unit test case for FlyerRepo.getTrendingFlyers

* Address review comments (Shungo)

- added spaces between test cases

* Implement community board organizations (#85)

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement community board (organization tests) [4/7] (#86)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* Implement community board (user queries/mutations) [5/7] (#87)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement basic community board features

- finished implementing basic organization and flyer repos/resolvers
- created jest testing for organization and flyer repos

* Remove unnecessary OrganizationRepo function

- removed content types route from organization repo and organization resolver

* Implement user routes for community board

- implemented user routes for community board to allow following orgs and reading flyers
- added jest unit test cases for new UserRepo functions

* Implement mutations for following and unfollowing organizations

- added resolvers to UserResolver for following and unfollowing organizations
- updated documentation in UserRepo
- added import of FlyerRepo in app.ts

* Address pr review comments

- fix spelling

* Address pr review comments

- made style consistent in UserRepo by checking for if(user) in appendReadFlyer, appendReadArticle, and appendReadMagazine

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Onboard organizations (#90)

- add organizations from volume-microservice onto organizations.json

* Implement community board (categories and org lists) [6/7] (#89)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* initial commit

* Implement organizations as list for flyer model

- updated flyer model to allow a list of organizations and organizationSlugs to be associated with each flyer
- updated flyer and organization queries accordingly
- added unit jest test cases and update old ones accordingly

* Address pr review comments

- removed redundant resolvers
- updated getOrganizationByCategory test

* Address pr review comments (kate)

- updated docs in OrganizationResolver

* Implement cboard start and end dates (#93)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* update organization shoutouts query (#94)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* Update organization clicks

- changed shoutouts query to clicks in OrganizationResolver

* Implement trending flyers logic (#95)

- updated trending flyers logic
- updated FlyerRepo
- updated documentation in FlyerResolver

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>
Co-authored-by: Shungo Najima <sn685@cornell.edu>
Co-authored-by: Sasha Loayza <104698418+SashaLoayza@users.noreply.github.com>
vinnie4k added a commit that referenced this pull request Aug 26, 2023
* Add Jest testing (#63)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update README.md

* Implement community board models (#65)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Revert package.json changes

- reverted package.json changes that are addressed in a different pr

* Add magazines to weekly debrief (#66)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Implemented weekly debrief magazines

- added magazines to weekly debrief feature
- updated user and weekly debrief models to allow tracking of read magazines
- updated logic in user and weekly debrief controllers to enable reading of magazines

* Revert package.json changes

- reverted package.json changes back to the original file
- added additional rules to eslintrc to suppress es lint warnings

* Create jest testing for magazines

- added jest test cases for magazines

* Implement jest testing for User

- implemented unit testing for UserRepo
- indirectly test Weekly Debrief with User unit tests

* Update gitignore

- updated gitignore file to include secrets folder

* Implement reshuffle articles (#68)

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

Implement shuffle article function

try to implement reshuffling with aggregate

* Implement reshuffling of articles

* Revert package.json, update eslint and update .gitignore to match main branch

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>

* Implement magazine search (#69)

* Implement magazine search

- implemented searching for magazines

* update magazinerepo

* Add unit test for magazine search

- created unit test for MagazineRepo.searchMagazine

* Convert result of shuffling resolver to ArticleModel (#71)

* Add 3 new publications (Cornell Daily Sun, Collective X, and Cornell Healthcare Review) to publications.js (#70)

* Resolve merge conflicts in publications.json (keep release version) (#76)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Revert "Resolve merge conflicts in publications.json (keep release version) (#76)" (#77)

This reverts commit eccf00c.

* fix merge conflicts (#78)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Implement community board [1/7] (#81)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Address pr review comments

- addressed pr review comments
- removed redundant filtering in FlyerRepo
- added checks for null return values in FlyerRepo
- alphabetized imports and exports

* Add imageURL field to Magazine entity. (#73)

* Add no rules to volume-backend's publications.json (#82)

* Implement community board (flyer tests) [2/7] (#84)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Implement jest testing for flyers

- created jest unit testing for FlyerRepo
- created FlyerFactory to help with jest testing

* Remove isFiltered field from Flyer entity

- removed redundant isFiltered field from Flyer entity (already checked in microservice)
- updated FlyerRepo and jest testing to reflect changes

* Alphabetize imports and exports

- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory

* Revert merge conflict changes

- reverted merge conflict changes (accept incoming when actually wanted to keep current)

* Address review comments

- alphabetize imports
- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response
- added unit test case for FlyerRepo.getTrendingFlyers

* Address review comments (Shungo)

- added spaces between test cases

* Implement community board organizations (#85)

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement community board (organization tests) [4/7] (#86)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* Implement community board (user queries/mutations) [5/7] (#87)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement basic community board features

- finished implementing basic organization and flyer repos/resolvers
- created jest testing for organization and flyer repos

* Remove unnecessary OrganizationRepo function

- removed content types route from organization repo and organization resolver

* Implement user routes for community board

- implemented user routes for community board to allow following orgs and reading flyers
- added jest unit test cases for new UserRepo functions

* Implement mutations for following and unfollowing organizations

- added resolvers to UserResolver for following and unfollowing organizations
- updated documentation in UserRepo
- added import of FlyerRepo in app.ts

* Address pr review comments

- fix spelling

* Address pr review comments

- made style consistent in UserRepo by checking for if(user) in appendReadFlyer, appendReadArticle, and appendReadMagazine

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Onboard organizations (#90)

- add organizations from volume-microservice onto organizations.json

* Implement community board (categories and org lists) [6/7] (#89)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* initial commit

* Implement organizations as list for flyer model

- updated flyer model to allow a list of organizations and organizationSlugs to be associated with each flyer
- updated flyer and organization queries accordingly
- added unit jest test cases and update old ones accordingly

* Address pr review comments

- removed redundant resolvers
- updated getOrganizationByCategory test

* Address pr review comments (kate)

- updated docs in OrganizationResolver

* Implement cboard start and end dates (#93)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* update organization shoutouts query (#94)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* Update organization clicks

- changed shoutouts query to clicks in OrganizationResolver

* Implement trending flyers logic (#95)

- updated trending flyers logic
- updated FlyerRepo
- updated documentation in FlyerResolver

* Fixed notification issue (#97)

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>
Co-authored-by: Shungo Najima <sn685@cornell.edu>
Co-authored-by: Isaac Han <isaac.han100@gmail.com>
Co-authored-by: Sasha Loayza <104698418+SashaLoayza@users.noreply.github.com>
vinnie4k added a commit that referenced this pull request Sep 29, 2023
* Add Jest testing (#63)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update README.md

* Implement community board models (#65)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Revert package.json changes

- reverted package.json changes that are addressed in a different pr

* Add magazines to weekly debrief (#66)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Implemented weekly debrief magazines

- added magazines to weekly debrief feature
- updated user and weekly debrief models to allow tracking of read magazines
- updated logic in user and weekly debrief controllers to enable reading of magazines

* Revert package.json changes

- reverted package.json changes back to the original file
- added additional rules to eslintrc to suppress es lint warnings

* Create jest testing for magazines

- added jest test cases for magazines

* Implement jest testing for User

- implemented unit testing for UserRepo
- indirectly test Weekly Debrief with User unit tests

* Update gitignore

- updated gitignore file to include secrets folder

* Implement reshuffle articles (#68)

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

Implement shuffle article function

try to implement reshuffling with aggregate

* Implement reshuffling of articles

* Revert package.json, update eslint and update .gitignore to match main branch

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>

* Implement magazine search (#69)

* Implement magazine search

- implemented searching for magazines

* update magazinerepo

* Add unit test for magazine search

- created unit test for MagazineRepo.searchMagazine

* Convert result of shuffling resolver to ArticleModel (#71)

* Add 3 new publications (Cornell Daily Sun, Collective X, and Cornell Healthcare Review) to publications.js (#70)

* Resolve merge conflicts in publications.json (keep release version) (#76)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Revert "Resolve merge conflicts in publications.json (keep release version) (#76)" (#77)

This reverts commit eccf00c.

* fix merge conflicts (#78)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Implement community board [1/7] (#81)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Address pr review comments

- addressed pr review comments
- removed redundant filtering in FlyerRepo
- added checks for null return values in FlyerRepo
- alphabetized imports and exports

* Add imageURL field to Magazine entity. (#73)

* Add no rules to volume-backend's publications.json (#82)

* Implement community board (flyer tests) [2/7] (#84)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Implement jest testing for flyers

- created jest unit testing for FlyerRepo
- created FlyerFactory to help with jest testing

* Remove isFiltered field from Flyer entity

- removed redundant isFiltered field from Flyer entity (already checked in microservice)
- updated FlyerRepo and jest testing to reflect changes

* Alphabetize imports and exports

- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory

* Revert merge conflict changes

- reverted merge conflict changes (accept incoming when actually wanted to keep current)

* Address review comments

- alphabetize imports
- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response
- added unit test case for FlyerRepo.getTrendingFlyers

* Address review comments (Shungo)

- added spaces between test cases

* Implement community board organizations (#85)

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement community board (organization tests) [4/7] (#86)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* Implement community board (user queries/mutations) [5/7] (#87)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement basic community board features

- finished implementing basic organization and flyer repos/resolvers
- created jest testing for organization and flyer repos

* Remove unnecessary OrganizationRepo function

- removed content types route from organization repo and organization resolver

* Implement user routes for community board

- implemented user routes for community board to allow following orgs and reading flyers
- added jest unit test cases for new UserRepo functions

* Implement mutations for following and unfollowing organizations

- added resolvers to UserResolver for following and unfollowing organizations
- updated documentation in UserRepo
- added import of FlyerRepo in app.ts

* Address pr review comments

- fix spelling

* Address pr review comments

- made style consistent in UserRepo by checking for if(user) in appendReadFlyer, appendReadArticle, and appendReadMagazine

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Onboard organizations (#90)

- add organizations from volume-microservice onto organizations.json

* Implement community board (categories and org lists) [6/7] (#89)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* initial commit

* Implement organizations as list for flyer model

- updated flyer model to allow a list of organizations and organizationSlugs to be associated with each flyer
- updated flyer and organization queries accordingly
- added unit jest test cases and update old ones accordingly

* Address pr review comments

- removed redundant resolvers
- updated getOrganizationByCategory test

* Address pr review comments (kate)

- updated docs in OrganizationResolver

* Implement cboard start and end dates (#93)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* update organization shoutouts query (#94)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* Update organization clicks

- changed shoutouts query to clicks in OrganizationResolver

* Implement trending flyers logic (#95)

- updated trending flyers logic
- updated FlyerRepo
- updated documentation in FlyerResolver

* Fixed notification issue (#97)

* Flyer Notifications + Org/Flyer Model Changes (#99)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Inline notification calls

* Improve Search Algorithm (#101)

* Update README.md start instructions

* Update search function for articles

* Remove console log

* Update articles search to use text search instead of regex

* Update search for Flyers and Magazines

* Update documentation, remove unused Fuse package

* Fix README.md start docs

* Filter out past flyers during flyers search

* Fix formatting, improve concision

* Remove start.md

* Changed indexing method to being declared on the models

* Update README.md

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

---------

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* getFlyersByCategorySlug Query (#100)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Added getFlyersByCategorySlug query

* Update query description

* Inline notification calls

* Update flyer.test.ts

* Update flyer.test.ts

* Merge `vin/create-flyer` to `main` (#104)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Added getFlyersByCategorySlug query

* Update query description

* Inline notification calls

* Add createFlyer mutation

* `deleteFlyer` mutation (#103)

* Add deleteFlyer mutation

* Address PR comments

* Update utils.ts

* Update FlyerRepo.ts

* Trendiness Update and Migration Script for New Flyers Model (#106)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Zach/trendiness and migration hot fix (#107)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Fix TypeScript compilation error

* Micro PR for Flyers categorySlug migration (#108)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Fix TypeScript compilation error

* Update migration script to account for category slug

* Fix formatting for flyers test

* Create `editFlyer` mutation (#105)

* Add `editFlyer`

* Address PR comments

* `checkAccessCode` query for Organization authentication (#109)

* Added Organization authentication

* Updated Authorization

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>
Co-authored-by: Shungo Najima <sn685@cornell.edu>
Co-authored-by: Isaac Han <isaac.han100@gmail.com>
Co-authored-by: Sasha Loayza <104698418+SashaLoayza@users.noreply.github.com>
Co-authored-by: Zachary Seidner <58796478+zachseidner1@users.noreply.github.com>
vinnie4k added a commit that referenced this pull request Oct 9, 2023
* Add Jest testing (#63)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update README.md

* Implement community board models (#65)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Revert package.json changes

- reverted package.json changes that are addressed in a different pr

* Add magazines to weekly debrief (#66)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Implemented weekly debrief magazines

- added magazines to weekly debrief feature
- updated user and weekly debrief models to allow tracking of read magazines
- updated logic in user and weekly debrief controllers to enable reading of magazines

* Revert package.json changes

- reverted package.json changes back to the original file
- added additional rules to eslintrc to suppress es lint warnings

* Create jest testing for magazines

- added jest test cases for magazines

* Implement jest testing for User

- implemented unit testing for UserRepo
- indirectly test Weekly Debrief with User unit tests

* Update gitignore

- updated gitignore file to include secrets folder

* Implement reshuffle articles (#68)

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

Implement shuffle article function

try to implement reshuffling with aggregate

* Implement reshuffling of articles

* Revert package.json, update eslint and update .gitignore to match main branch

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>

* Implement magazine search (#69)

* Implement magazine search

- implemented searching for magazines

* update magazinerepo

* Add unit test for magazine search

- created unit test for MagazineRepo.searchMagazine

* Convert result of shuffling resolver to ArticleModel (#71)

* Add 3 new publications (Cornell Daily Sun, Collective X, and Cornell Healthcare Review) to publications.js (#70)

* Resolve merge conflicts in publications.json (keep release version) (#76)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Revert "Resolve merge conflicts in publications.json (keep release version) (#76)" (#77)

This reverts commit eccf00c.

* fix merge conflicts (#78)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Implement community board [1/7] (#81)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Address pr review comments

- addressed pr review comments
- removed redundant filtering in FlyerRepo
- added checks for null return values in FlyerRepo
- alphabetized imports and exports

* Add imageURL field to Magazine entity. (#73)

* Add no rules to volume-backend's publications.json (#82)

* Implement community board (flyer tests) [2/7] (#84)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Implement jest testing for flyers

- created jest unit testing for FlyerRepo
- created FlyerFactory to help with jest testing

* Remove isFiltered field from Flyer entity

- removed redundant isFiltered field from Flyer entity (already checked in microservice)
- updated FlyerRepo and jest testing to reflect changes

* Alphabetize imports and exports

- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory

* Revert merge conflict changes

- reverted merge conflict changes (accept incoming when actually wanted to keep current)

* Address review comments

- alphabetize imports
- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response
- added unit test case for FlyerRepo.getTrendingFlyers

* Address review comments (Shungo)

- added spaces between test cases

* Implement community board organizations (#85)

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement community board (organization tests) [4/7] (#86)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* Implement community board (user queries/mutations) [5/7] (#87)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement basic community board features

- finished implementing basic organization and flyer repos/resolvers
- created jest testing for organization and flyer repos

* Remove unnecessary OrganizationRepo function

- removed content types route from organization repo and organization resolver

* Implement user routes for community board

- implemented user routes for community board to allow following orgs and reading flyers
- added jest unit test cases for new UserRepo functions

* Implement mutations for following and unfollowing organizations

- added resolvers to UserResolver for following and unfollowing organizations
- updated documentation in UserRepo
- added import of FlyerRepo in app.ts

* Address pr review comments

- fix spelling

* Address pr review comments

- made style consistent in UserRepo by checking for if(user) in appendReadFlyer, appendReadArticle, and appendReadMagazine

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Onboard organizations (#90)

- add organizations from volume-microservice onto organizations.json

* Implement community board (categories and org lists) [6/7] (#89)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* initial commit

* Implement organizations as list for flyer model

- updated flyer model to allow a list of organizations and organizationSlugs to be associated with each flyer
- updated flyer and organization queries accordingly
- added unit jest test cases and update old ones accordingly

* Address pr review comments

- removed redundant resolvers
- updated getOrganizationByCategory test

* Address pr review comments (kate)

- updated docs in OrganizationResolver

* Implement cboard start and end dates (#93)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* update organization shoutouts query (#94)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* Update organization clicks

- changed shoutouts query to clicks in OrganizationResolver

* Implement trending flyers logic (#95)

- updated trending flyers logic
- updated FlyerRepo
- updated documentation in FlyerResolver

* Fixed notification issue (#97)

* Flyer Notifications + Org/Flyer Model Changes (#99)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Inline notification calls

* Improve Search Algorithm (#101)

* Update README.md start instructions

* Update search function for articles

* Remove console log

* Update articles search to use text search instead of regex

* Update search for Flyers and Magazines

* Update documentation, remove unused Fuse package

* Fix README.md start docs

* Filter out past flyers during flyers search

* Fix formatting, improve concision

* Remove start.md

* Changed indexing method to being declared on the models

* Update README.md

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

---------

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* getFlyersByCategorySlug Query (#100)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Added getFlyersByCategorySlug query

* Update query description

* Inline notification calls

* Update flyer.test.ts

* Update flyer.test.ts

* Merge `vin/create-flyer` to `main` (#104)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Added getFlyersByCategorySlug query

* Update query description

* Inline notification calls

* Add createFlyer mutation

* `deleteFlyer` mutation (#103)

* Add deleteFlyer mutation

* Address PR comments

* Update utils.ts

* Update FlyerRepo.ts

* Trendiness Update and Migration Script for New Flyers Model (#106)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Zach/trendiness and migration hot fix (#107)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Fix TypeScript compilation error

* Micro PR for Flyers categorySlug migration (#108)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Fix TypeScript compilation error

* Update migration script to account for category slug

* Fix formatting for flyers test

* Create `editFlyer` mutation (#105)

* Add `editFlyer`

* Address PR comments

* `checkAccessCode` query for Organization authentication (#109)

* Added Organization authentication

* Updated Authorization

* Implemented  getAllFlyerCategories and tests (#110)

* Implemented  getAllFlyerCategories and tests

* update jest

* update jest

* implemented suggestions from zach, vin, and archit

* got rid of ESLint comment

* fixed names for tests

* Added loops to test cases

* Fixed test case to create flyers with the same category

* Changed 'push' to 'concat'

---------

Co-authored-by: Cindy <cl2329@cornell.edu>

* Changing specifications for getFlyersBeforeDate and getFlyersAfterDate (#112)

* Cindy/flyer categories (#113)

* Implemented  getAllFlyerCategories and tests

* update jest

* update jest

* implemented suggestions from zach, vin, and archit

* got rid of ESLint comment

* fixed names for tests

* Added loops to test cases

* Fixed test case to create flyers with the same category

* Changed 'push' to 'concat'

* Updated `getAllFlyerCategories`

---------

Co-authored-by: Cindy <cl2329@cornell.edu>
Co-authored-by: Vin Bui <vdb23@cornell.edu>

* Increased HTTP request size (#114)

* Added limit to JSON request body

* Update package-lock.json

* Add error message (#116)

* Added limit to JSON request body

* Update package-lock.json

* Added error message

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>
Co-authored-by: Shungo Najima <sn685@cornell.edu>
Co-authored-by: Isaac Han <isaac.han100@gmail.com>
Co-authored-by: Sasha Loayza <104698418+SashaLoayza@users.noreply.github.com>
Co-authored-by: Zachary Seidner <58796478+zachseidner1@users.noreply.github.com>
Co-authored-by: cindy-x-liang <67083541+cindy-x-liang@users.noreply.github.com>
Co-authored-by: Cindy <cl2329@cornell.edu>
Co-authored-by: Aayush <68517064+Aayush-Agnihotri@users.noreply.github.com>
vinnie4k added a commit that referenced this pull request Oct 16, 2023
* Add Jest testing (#63)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update README.md

* Implement community board models (#65)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Revert package.json changes

- reverted package.json changes that are addressed in a different pr

* Add magazines to weekly debrief (#66)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Implemented weekly debrief magazines

- added magazines to weekly debrief feature
- updated user and weekly debrief models to allow tracking of read magazines
- updated logic in user and weekly debrief controllers to enable reading of magazines

* Revert package.json changes

- reverted package.json changes back to the original file
- added additional rules to eslintrc to suppress es lint warnings

* Create jest testing for magazines

- added jest test cases for magazines

* Implement jest testing for User

- implemented unit testing for UserRepo
- indirectly test Weekly Debrief with User unit tests

* Update gitignore

- updated gitignore file to include secrets folder

* Implement reshuffle articles (#68)

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

Implement shuffle article function

try to implement reshuffling with aggregate

* Implement reshuffling of articles

* Revert package.json, update eslint and update .gitignore to match main branch

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>

* Implement magazine search (#69)

* Implement magazine search

- implemented searching for magazines

* update magazinerepo

* Add unit test for magazine search

- created unit test for MagazineRepo.searchMagazine

* Convert result of shuffling resolver to ArticleModel (#71)

* Add 3 new publications (Cornell Daily Sun, Collective X, and Cornell Healthcare Review) to publications.js (#70)

* Resolve merge conflicts in publications.json (keep release version) (#76)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Revert "Resolve merge conflicts in publications.json (keep release version) (#76)" (#77)

This reverts commit eccf00c.

* fix merge conflicts (#78)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Implement community board [1/7] (#81)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Address pr review comments

- addressed pr review comments
- removed redundant filtering in FlyerRepo
- added checks for null return values in FlyerRepo
- alphabetized imports and exports

* Add imageURL field to Magazine entity. (#73)

* Add no rules to volume-backend's publications.json (#82)

* Implement community board (flyer tests) [2/7] (#84)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Implement jest testing for flyers

- created jest unit testing for FlyerRepo
- created FlyerFactory to help with jest testing

* Remove isFiltered field from Flyer entity

- removed redundant isFiltered field from Flyer entity (already checked in microservice)
- updated FlyerRepo and jest testing to reflect changes

* Alphabetize imports and exports

- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory

* Revert merge conflict changes

- reverted merge conflict changes (accept incoming when actually wanted to keep current)

* Address review comments

- alphabetize imports
- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response
- added unit test case for FlyerRepo.getTrendingFlyers

* Address review comments (Shungo)

- added spaces between test cases

* Implement community board organizations (#85)

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement community board (organization tests) [4/7] (#86)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* Implement community board (user queries/mutations) [5/7] (#87)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement basic community board features

- finished implementing basic organization and flyer repos/resolvers
- created jest testing for organization and flyer repos

* Remove unnecessary OrganizationRepo function

- removed content types route from organization repo and organization resolver

* Implement user routes for community board

- implemented user routes for community board to allow following orgs and reading flyers
- added jest unit test cases for new UserRepo functions

* Implement mutations for following and unfollowing organizations

- added resolvers to UserResolver for following and unfollowing organizations
- updated documentation in UserRepo
- added import of FlyerRepo in app.ts

* Address pr review comments

- fix spelling

* Address pr review comments

- made style consistent in UserRepo by checking for if(user) in appendReadFlyer, appendReadArticle, and appendReadMagazine

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Onboard organizations (#90)

- add organizations from volume-microservice onto organizations.json

* Implement community board (categories and org lists) [6/7] (#89)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* initial commit

* Implement organizations as list for flyer model

- updated flyer model to allow a list of organizations and organizationSlugs to be associated with each flyer
- updated flyer and organization queries accordingly
- added unit jest test cases and update old ones accordingly

* Address pr review comments

- removed redundant resolvers
- updated getOrganizationByCategory test

* Address pr review comments (kate)

- updated docs in OrganizationResolver

* Implement cboard start and end dates (#93)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* update organization shoutouts query (#94)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* Update organization clicks

- changed shoutouts query to clicks in OrganizationResolver

* Implement trending flyers logic (#95)

- updated trending flyers logic
- updated FlyerRepo
- updated documentation in FlyerResolver

* Fixed notification issue (#97)

* Flyer Notifications + Org/Flyer Model Changes (#99)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Inline notification calls

* Improve Search Algorithm (#101)

* Update README.md start instructions

* Update search function for articles

* Remove console log

* Update articles search to use text search instead of regex

* Update search for Flyers and Magazines

* Update documentation, remove unused Fuse package

* Fix README.md start docs

* Filter out past flyers during flyers search

* Fix formatting, improve concision

* Remove start.md

* Changed indexing method to being declared on the models

* Update README.md

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

---------

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* getFlyersByCategorySlug Query (#100)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Added getFlyersByCategorySlug query

* Update query description

* Inline notification calls

* Update flyer.test.ts

* Update flyer.test.ts

* Merge `vin/create-flyer` to `main` (#104)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Added getFlyersByCategorySlug query

* Update query description

* Inline notification calls

* Add createFlyer mutation

* `deleteFlyer` mutation (#103)

* Add deleteFlyer mutation

* Address PR comments

* Update utils.ts

* Update FlyerRepo.ts

* Trendiness Update and Migration Script for New Flyers Model (#106)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Zach/trendiness and migration hot fix (#107)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Fix TypeScript compilation error

* Micro PR for Flyers categorySlug migration (#108)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Fix TypeScript compilation error

* Update migration script to account for category slug

* Fix formatting for flyers test

* Create `editFlyer` mutation (#105)

* Add `editFlyer`

* Address PR comments

* `checkAccessCode` query for Organization authentication (#109)

* Added Organization authentication

* Updated Authorization

* Implemented  getAllFlyerCategories and tests (#110)

* Implemented  getAllFlyerCategories and tests

* update jest

* update jest

* implemented suggestions from zach, vin, and archit

* got rid of ESLint comment

* fixed names for tests

* Added loops to test cases

* Fixed test case to create flyers with the same category

* Changed 'push' to 'concat'

---------

Co-authored-by: Cindy <cl2329@cornell.edu>

* Changing specifications for getFlyersBeforeDate and getFlyersAfterDate (#112)

* Cindy/flyer categories (#113)

* Implemented  getAllFlyerCategories and tests

* update jest

* update jest

* implemented suggestions from zach, vin, and archit

* got rid of ESLint comment

* fixed names for tests

* Added loops to test cases

* Fixed test case to create flyers with the same category

* Changed 'push' to 'concat'

* Updated `getAllFlyerCategories`

---------

Co-authored-by: Cindy <cl2329@cornell.edu>
Co-authored-by: Vin Bui <vdb23@cornell.edu>

* Increased HTTP request size (#114)

* Added limit to JSON request body

* Update package-lock.json

* Add error message (#116)

* Added limit to JSON request body

* Update package-lock.json

* Added error message

* Update FlyerMiddleware.ts

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>
Co-authored-by: Shungo Najima <sn685@cornell.edu>
Co-authored-by: Isaac Han <isaac.han100@gmail.com>
Co-authored-by: Sasha Loayza <104698418+SashaLoayza@users.noreply.github.com>
Co-authored-by: Zachary Seidner <58796478+zachseidner1@users.noreply.github.com>
Co-authored-by: cindy-x-liang <67083541+cindy-x-liang@users.noreply.github.com>
Co-authored-by: Cindy <cl2329@cornell.edu>
Co-authored-by: Aayush <68517064+Aayush-Agnihotri@users.noreply.github.com>
vinnie4k added a commit that referenced this pull request Nov 2, 2023
* Add Jest testing (#63)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update README.md

* Implement community board models (#65)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Revert package.json changes

- reverted package.json changes that are addressed in a different pr

* Add magazines to weekly debrief (#66)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Implemented weekly debrief magazines

- added magazines to weekly debrief feature
- updated user and weekly debrief models to allow tracking of read magazines
- updated logic in user and weekly debrief controllers to enable reading of magazines

* Revert package.json changes

- reverted package.json changes back to the original file
- added additional rules to eslintrc to suppress es lint warnings

* Create jest testing for magazines

- added jest test cases for magazines

* Implement jest testing for User

- implemented unit testing for UserRepo
- indirectly test Weekly Debrief with User unit tests

* Update gitignore

- updated gitignore file to include secrets folder

* Implement reshuffle articles (#68)

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

Implement shuffle article function

try to implement reshuffling with aggregate

* Implement reshuffling of articles

* Revert package.json, update eslint and update .gitignore to match main branch

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>

* Implement magazine search (#69)

* Implement magazine search

- implemented searching for magazines

* update magazinerepo

* Add unit test for magazine search

- created unit test for MagazineRepo.searchMagazine

* Convert result of shuffling resolver to ArticleModel (#71)

* Add 3 new publications (Cornell Daily Sun, Collective X, and Cornell Healthcare Review) to publications.js (#70)

* Resolve merge conflicts in publications.json (keep release version) (#76)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Revert "Resolve merge conflicts in publications.json (keep release version) (#76)" (#77)

This reverts commit eccf00c.

* fix merge conflicts (#78)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Implement community board [1/7] (#81)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Address pr review comments

- addressed pr review comments
- removed redundant filtering in FlyerRepo
- added checks for null return values in FlyerRepo
- alphabetized imports and exports

* Add imageURL field to Magazine entity. (#73)

* Add no rules to volume-backend's publications.json (#82)

* Implement community board (flyer tests) [2/7] (#84)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Implement jest testing for flyers

- created jest unit testing for FlyerRepo
- created FlyerFactory to help with jest testing

* Remove isFiltered field from Flyer entity

- removed redundant isFiltered field from Flyer entity (already checked in microservice)
- updated FlyerRepo and jest testing to reflect changes

* Alphabetize imports and exports

- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory

* Revert merge conflict changes

- reverted merge conflict changes (accept incoming when actually wanted to keep current)

* Address review comments

- alphabetize imports
- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response
- added unit test case for FlyerRepo.getTrendingFlyers

* Address review comments (Shungo)

- added spaces between test cases

* Implement community board organizations (#85)

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement community board (organization tests) [4/7] (#86)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* Implement community board (user queries/mutations) [5/7] (#87)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement basic community board features

- finished implementing basic organization and flyer repos/resolvers
- created jest testing for organization and flyer repos

* Remove unnecessary OrganizationRepo function

- removed content types route from organization repo and organization resolver

* Implement user routes for community board

- implemented user routes for community board to allow following orgs and reading flyers
- added jest unit test cases for new UserRepo functions

* Implement mutations for following and unfollowing organizations

- added resolvers to UserResolver for following and unfollowing organizations
- updated documentation in UserRepo
- added import of FlyerRepo in app.ts

* Address pr review comments

- fix spelling

* Address pr review comments

- made style consistent in UserRepo by checking for if(user) in appendReadFlyer, appendReadArticle, and appendReadMagazine

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Onboard organizations (#90)

- add organizations from volume-microservice onto organizations.json

* Implement community board (categories and org lists) [6/7] (#89)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* initial commit

* Implement organizations as list for flyer model

- updated flyer model to allow a list of organizations and organizationSlugs to be associated with each flyer
- updated flyer and organization queries accordingly
- added unit jest test cases and update old ones accordingly

* Address pr review comments

- removed redundant resolvers
- updated getOrganizationByCategory test

* Address pr review comments (kate)

- updated docs in OrganizationResolver

* Implement cboard start and end dates (#93)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* update organization shoutouts query (#94)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* Update organization clicks

- changed shoutouts query to clicks in OrganizationResolver

* Implement trending flyers logic (#95)

- updated trending flyers logic
- updated FlyerRepo
- updated documentation in FlyerResolver

* Fixed notification issue (#97)

* Flyer Notifications + Org/Flyer Model Changes (#99)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Inline notification calls

* Improve Search Algorithm (#101)

* Update README.md start instructions

* Update search function for articles

* Remove console log

* Update articles search to use text search instead of regex

* Update search for Flyers and Magazines

* Update documentation, remove unused Fuse package

* Fix README.md start docs

* Filter out past flyers during flyers search

* Fix formatting, improve concision

* Remove start.md

* Changed indexing method to being declared on the models

* Update README.md

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

---------

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* getFlyersByCategorySlug Query (#100)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Added getFlyersByCategorySlug query

* Update query description

* Inline notification calls

* Update flyer.test.ts

* Update flyer.test.ts

* Merge `vin/create-flyer` to `main` (#104)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Added getFlyersByCategorySlug query

* Update query description

* Inline notification calls

* Add createFlyer mutation

* `deleteFlyer` mutation (#103)

* Add deleteFlyer mutation

* Address PR comments

* Update utils.ts

* Update FlyerRepo.ts

* Trendiness Update and Migration Script for New Flyers Model (#106)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Zach/trendiness and migration hot fix (#107)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Fix TypeScript compilation error

* Micro PR for Flyers categorySlug migration (#108)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Fix TypeScript compilation error

* Update migration script to account for category slug

* Fix formatting for flyers test

* Create `editFlyer` mutation (#105)

* Add `editFlyer`

* Address PR comments

* `checkAccessCode` query for Organization authentication (#109)

* Added Organization authentication

* Updated Authorization

* Implemented  getAllFlyerCategories and tests (#110)

* Implemented  getAllFlyerCategories and tests

* update jest

* update jest

* implemented suggestions from zach, vin, and archit

* got rid of ESLint comment

* fixed names for tests

* Added loops to test cases

* Fixed test case to create flyers with the same category

* Changed 'push' to 'concat'

---------

Co-authored-by: Cindy <cl2329@cornell.edu>

* Changing specifications for getFlyersBeforeDate and getFlyersAfterDate (#112)

* Cindy/flyer categories (#113)

* Implemented  getAllFlyerCategories and tests

* update jest

* update jest

* implemented suggestions from zach, vin, and archit

* got rid of ESLint comment

* fixed names for tests

* Added loops to test cases

* Fixed test case to create flyers with the same category

* Changed 'push' to 'concat'

* Updated `getAllFlyerCategories`

---------

Co-authored-by: Cindy <cl2329@cornell.edu>
Co-authored-by: Vin Bui <vdb23@cornell.edu>

* Increased HTTP request size (#114)

* Added limit to JSON request body

* Update package-lock.json

* Add error message (#116)

* Added limit to JSON request body

* Update package-lock.json

* Added error message

* Update FlyerMiddleware.ts (#119)

* Update publications.json (#122)

Add WoMENA as a publication

* Change Create Flyer route to use form data for image upload (#121)

* Add post express route using form data

* Remove .idea

* revert readme

* try catch for large file uploads

* Remove uncertain comments

* Refactor upload image util to use form data

* Cover the case where the Flyer ID that was sent is invalid

* Update file key, add documentation

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>
Co-authored-by: Shungo Najima <sn685@cornell.edu>
Co-authored-by: Isaac Han <isaac.han100@gmail.com>
Co-authored-by: Sasha Loayza <104698418+SashaLoayza@users.noreply.github.com>
Co-authored-by: Zachary Seidner <58796478+zachseidner1@users.noreply.github.com>
Co-authored-by: cindy-x-liang <67083541+cindy-x-liang@users.noreply.github.com>
Co-authored-by: Cindy <cl2329@cornell.edu>
Co-authored-by: Aayush <68517064+Aayush-Agnihotri@users.noreply.github.com>
Co-authored-by: Jennifer Gu <57200368+jjennifergu@users.noreply.github.com>
vinnie4k added a commit that referenced this pull request Nov 7, 2023
* Add Jest testing (#63)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update README.md

* Implement community board models (#65)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Revert package.json changes

- reverted package.json changes that are addressed in a different pr

* Add magazines to weekly debrief (#66)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Implemented weekly debrief magazines

- added magazines to weekly debrief feature
- updated user and weekly debrief models to allow tracking of read magazines
- updated logic in user and weekly debrief controllers to enable reading of magazines

* Revert package.json changes

- reverted package.json changes back to the original file
- added additional rules to eslintrc to suppress es lint warnings

* Create jest testing for magazines

- added jest test cases for magazines

* Implement jest testing for User

- implemented unit testing for UserRepo
- indirectly test Weekly Debrief with User unit tests

* Update gitignore

- updated gitignore file to include secrets folder

* Implement reshuffle articles (#68)

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

Implement shuffle article function

try to implement reshuffling with aggregate

* Implement reshuffling of articles

* Revert package.json, update eslint and update .gitignore to match main branch

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>

* Implement magazine search (#69)

* Implement magazine search

- implemented searching for magazines

* update magazinerepo

* Add unit test for magazine search

- created unit test for MagazineRepo.searchMagazine

* Convert result of shuffling resolver to ArticleModel (#71)

* Add 3 new publications (Cornell Daily Sun, Collective X, and Cornell Healthcare Review) to publications.js (#70)

* Resolve merge conflicts in publications.json (keep release version) (#76)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Revert "Resolve merge conflicts in publications.json (keep release version) (#76)" (#77)

This reverts commit eccf00c.

* fix merge conflicts (#78)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Implement community board [1/7] (#81)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Address pr review comments

- addressed pr review comments
- removed redundant filtering in FlyerRepo
- added checks for null return values in FlyerRepo
- alphabetized imports and exports

* Add imageURL field to Magazine entity. (#73)

* Add no rules to volume-backend's publications.json (#82)

* Implement community board (flyer tests) [2/7] (#84)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Implement jest testing for flyers

- created jest unit testing for FlyerRepo
- created FlyerFactory to help with jest testing

* Remove isFiltered field from Flyer entity

- removed redundant isFiltered field from Flyer entity (already checked in microservice)
- updated FlyerRepo and jest testing to reflect changes

* Alphabetize imports and exports

- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory

* Revert merge conflict changes

- reverted merge conflict changes (accept incoming when actually wanted to keep current)

* Address review comments

- alphabetize imports
- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response
- added unit test case for FlyerRepo.getTrendingFlyers

* Address review comments (Shungo)

- added spaces between test cases

* Implement community board organizations (#85)

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement community board (organization tests) [4/7] (#86)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* Implement community board (user queries/mutations) [5/7] (#87)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement basic community board features

- finished implementing basic organization and flyer repos/resolvers
- created jest testing for organization and flyer repos

* Remove unnecessary OrganizationRepo function

- removed content types route from organization repo and organization resolver

* Implement user routes for community board

- implemented user routes for community board to allow following orgs and reading flyers
- added jest unit test cases for new UserRepo functions

* Implement mutations for following and unfollowing organizations

- added resolvers to UserResolver for following and unfollowing organizations
- updated documentation in UserRepo
- added import of FlyerRepo in app.ts

* Address pr review comments

- fix spelling

* Address pr review comments

- made style consistent in UserRepo by checking for if(user) in appendReadFlyer, appendReadArticle, and appendReadMagazine

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Onboard organizations (#90)

- add organizations from volume-microservice onto organizations.json

* Implement community board (categories and org lists) [6/7] (#89)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* initial commit

* Implement organizations as list for flyer model

- updated flyer model to allow a list of organizations and organizationSlugs to be associated with each flyer
- updated flyer and organization queries accordingly
- added unit jest test cases and update old ones accordingly

* Address pr review comments

- removed redundant resolvers
- updated getOrganizationByCategory test

* Address pr review comments (kate)

- updated docs in OrganizationResolver

* Implement cboard start and end dates (#93)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* update organization shoutouts query (#94)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* Update organization clicks

- changed shoutouts query to clicks in OrganizationResolver

* Implement trending flyers logic (#95)

- updated trending flyers logic
- updated FlyerRepo
- updated documentation in FlyerResolver

* Fixed notification issue (#97)

* Flyer Notifications + Org/Flyer Model Changes (#99)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Inline notification calls

* Improve Search Algorithm (#101)

* Update README.md start instructions

* Update search function for articles

* Remove console log

* Update articles search to use text search instead of regex

* Update search for Flyers and Magazines

* Update documentation, remove unused Fuse package

* Fix README.md start docs

* Filter out past flyers during flyers search

* Fix formatting, improve concision

* Remove start.md

* Changed indexing method to being declared on the models

* Update README.md

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

---------

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* getFlyersByCategorySlug Query (#100)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Added getFlyersByCategorySlug query

* Update query description

* Inline notification calls

* Update flyer.test.ts

* Update flyer.test.ts

* Merge `vin/create-flyer` to `main` (#104)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Added getFlyersByCategorySlug query

* Update query description

* Inline notification calls

* Add createFlyer mutation

* `deleteFlyer` mutation (#103)

* Add deleteFlyer mutation

* Address PR comments

* Update utils.ts

* Update FlyerRepo.ts

* Trendiness Update and Migration Script for New Flyers Model (#106)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Zach/trendiness and migration hot fix (#107)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Fix TypeScript compilation error

* Micro PR for Flyers categorySlug migration (#108)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Fix TypeScript compilation error

* Update migration script to account for category slug

* Fix formatting for flyers test

* Create `editFlyer` mutation (#105)

* Add `editFlyer`

* Address PR comments

* `checkAccessCode` query for Organization authentication (#109)

* Added Organization authentication

* Updated Authorization

* Implemented  getAllFlyerCategories and tests (#110)

* Implemented  getAllFlyerCategories and tests

* update jest

* update jest

* implemented suggestions from zach, vin, and archit

* got rid of ESLint comment

* fixed names for tests

* Added loops to test cases

* Fixed test case to create flyers with the same category

* Changed 'push' to 'concat'

---------

Co-authored-by: Cindy <cl2329@cornell.edu>

* Changing specifications for getFlyersBeforeDate and getFlyersAfterDate (#112)

* Cindy/flyer categories (#113)

* Implemented  getAllFlyerCategories and tests

* update jest

* update jest

* implemented suggestions from zach, vin, and archit

* got rid of ESLint comment

* fixed names for tests

* Added loops to test cases

* Fixed test case to create flyers with the same category

* Changed 'push' to 'concat'

* Updated `getAllFlyerCategories`

---------

Co-authored-by: Cindy <cl2329@cornell.edu>
Co-authored-by: Vin Bui <vdb23@cornell.edu>

* Increased HTTP request size (#114)

* Added limit to JSON request body

* Update package-lock.json

* Add error message (#116)

* Added limit to JSON request body

* Update package-lock.json

* Added error message

* Update FlyerMiddleware.ts (#119)

* Update publications.json (#122)

Add WoMENA as a publication

* Change Create Flyer route to use form data for image upload (#121)

* Add post express route using form data

* Remove .idea

* revert readme

* try catch for large file uploads

* Remove uncertain comments

* Refactor upload image util to use form data

* Cover the case where the Flyer ID that was sent is invalid

* Update file key, add documentation

* Fixed issue with edit flyer (#124)

* Fixed issue with edit flyer

* Update app.ts

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>
Co-authored-by: Shungo Najima <sn685@cornell.edu>
Co-authored-by: Isaac Han <isaac.han100@gmail.com>
Co-authored-by: Sasha Loayza <104698418+SashaLoayza@users.noreply.github.com>
Co-authored-by: Zachary Seidner <58796478+zachseidner1@users.noreply.github.com>
Co-authored-by: cindy-x-liang <67083541+cindy-x-liang@users.noreply.github.com>
Co-authored-by: Cindy <cl2329@cornell.edu>
Co-authored-by: Aayush <68517064+Aayush-Agnihotri@users.noreply.github.com>
Co-authored-by: Jennifer Gu <57200368+jjennifergu@users.noreply.github.com>
vinnie4k added a commit that referenced this pull request Nov 25, 2023
* Add Jest testing (#63)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update README.md

* Implement community board models (#65)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Revert package.json changes

- reverted package.json changes that are addressed in a different pr

* Add magazines to weekly debrief (#66)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Implemented weekly debrief magazines

- added magazines to weekly debrief feature
- updated user and weekly debrief models to allow tracking of read magazines
- updated logic in user and weekly debrief controllers to enable reading of magazines

* Revert package.json changes

- reverted package.json changes back to the original file
- added additional rules to eslintrc to suppress es lint warnings

* Create jest testing for magazines

- added jest test cases for magazines

* Implement jest testing for User

- implemented unit testing for UserRepo
- indirectly test Weekly Debrief with User unit tests

* Update gitignore

- updated gitignore file to include secrets folder

* Implement reshuffle articles (#68)

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

Implement shuffle article function

try to implement reshuffling with aggregate

* Implement reshuffling of articles

* Revert package.json, update eslint and update .gitignore to match main branch

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>

* Implement magazine search (#69)

* Implement magazine search

- implemented searching for magazines

* update magazinerepo

* Add unit test for magazine search

- created unit test for MagazineRepo.searchMagazine

* Convert result of shuffling resolver to ArticleModel (#71)

* Add 3 new publications (Cornell Daily Sun, Collective X, and Cornell Healthcare Review) to publications.js (#70)

* Resolve merge conflicts in publications.json (keep release version) (#76)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Revert "Resolve merge conflicts in publications.json (keep release version) (#76)" (#77)

This reverts commit eccf00c.

* fix merge conflicts (#78)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Implement community board [1/7] (#81)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Address pr review comments

- addressed pr review comments
- removed redundant filtering in FlyerRepo
- added checks for null return values in FlyerRepo
- alphabetized imports and exports

* Add imageURL field to Magazine entity. (#73)

* Add no rules to volume-backend's publications.json (#82)

* Implement community board (flyer tests) [2/7] (#84)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Implement jest testing for flyers

- created jest unit testing for FlyerRepo
- created FlyerFactory to help with jest testing

* Remove isFiltered field from Flyer entity

- removed redundant isFiltered field from Flyer entity (already checked in microservice)
- updated FlyerRepo and jest testing to reflect changes

* Alphabetize imports and exports

- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory

* Revert merge conflict changes

- reverted merge conflict changes (accept incoming when actually wanted to keep current)

* Address review comments

- alphabetize imports
- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response
- added unit test case for FlyerRepo.getTrendingFlyers

* Address review comments (Shungo)

- added spaces between test cases

* Implement community board organizations (#85)

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement community board (organization tests) [4/7] (#86)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* Implement community board (user queries/mutations) [5/7] (#87)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement basic community board features

- finished implementing basic organization and flyer repos/resolvers
- created jest testing for organization and flyer repos

* Remove unnecessary OrganizationRepo function

- removed content types route from organization repo and organization resolver

* Implement user routes for community board

- implemented user routes for community board to allow following orgs and reading flyers
- added jest unit test cases for new UserRepo functions

* Implement mutations for following and unfollowing organizations

- added resolvers to UserResolver for following and unfollowing organizations
- updated documentation in UserRepo
- added import of FlyerRepo in app.ts

* Address pr review comments

- fix spelling

* Address pr review comments

- made style consistent in UserRepo by checking for if(user) in appendReadFlyer, appendReadArticle, and appendReadMagazine

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Onboard organizations (#90)

- add organizations from volume-microservice onto organizations.json

* Implement community board (categories and org lists) [6/7] (#89)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* initial commit

* Implement organizations as list for flyer model

- updated flyer model to allow a list of organizations and organizationSlugs to be associated with each flyer
- updated flyer and organization queries accordingly
- added unit jest test cases and update old ones accordingly

* Address pr review comments

- removed redundant resolvers
- updated getOrganizationByCategory test

* Address pr review comments (kate)

- updated docs in OrganizationResolver

* Implement cboard start and end dates (#93)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* update organization shoutouts query (#94)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* Update organization clicks

- changed shoutouts query to clicks in OrganizationResolver

* Implement trending flyers logic (#95)

- updated trending flyers logic
- updated FlyerRepo
- updated documentation in FlyerResolver

* Fixed notification issue (#97)

* Flyer Notifications + Org/Flyer Model Changes (#99)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Inline notification calls

* Improve Search Algorithm (#101)

* Update README.md start instructions

* Update search function for articles

* Remove console log

* Update articles search to use text search instead of regex

* Update search for Flyers and Magazines

* Update documentation, remove unused Fuse package

* Fix README.md start docs

* Filter out past flyers during flyers search

* Fix formatting, improve concision

* Remove start.md

* Changed indexing method to being declared on the models

* Update README.md

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

---------

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* getFlyersByCategorySlug Query (#100)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Added getFlyersByCategorySlug query

* Update query description

* Inline notification calls

* Update flyer.test.ts

* Update flyer.test.ts

* Merge `vin/create-flyer` to `main` (#104)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Added getFlyersByCategorySlug query

* Update query description

* Inline notification calls

* Add createFlyer mutation

* `deleteFlyer` mutation (#103)

* Add deleteFlyer mutation

* Address PR comments

* Update utils.ts

* Update FlyerRepo.ts

* Trendiness Update and Migration Script for New Flyers Model (#106)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Zach/trendiness and migration hot fix (#107)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Fix TypeScript compilation error

* Micro PR for Flyers categorySlug migration (#108)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Fix TypeScript compilation error

* Update migration script to account for category slug

* Fix formatting for flyers test

* Create `editFlyer` mutation (#105)

* Add `editFlyer`

* Address PR comments

* `checkAccessCode` query for Organization authentication (#109)

* Added Organization authentication

* Updated Authorization

* Implemented  getAllFlyerCategories and tests (#110)

* Implemented  getAllFlyerCategories and tests

* update jest

* update jest

* implemented suggestions from zach, vin, and archit

* got rid of ESLint comment

* fixed names for tests

* Added loops to test cases

* Fixed test case to create flyers with the same category

* Changed 'push' to 'concat'

---------

Co-authored-by: Cindy <cl2329@cornell.edu>

* Changing specifications for getFlyersBeforeDate and getFlyersAfterDate (#112)

* Cindy/flyer categories (#113)

* Implemented  getAllFlyerCategories and tests

* update jest

* update jest

* implemented suggestions from zach, vin, and archit

* got rid of ESLint comment

* fixed names for tests

* Added loops to test cases

* Fixed test case to create flyers with the same category

* Changed 'push' to 'concat'

* Updated `getAllFlyerCategories`

---------

Co-authored-by: Cindy <cl2329@cornell.edu>
Co-authored-by: Vin Bui <vdb23@cornell.edu>

* Increased HTTP request size (#114)

* Added limit to JSON request body

* Update package-lock.json

* Add error message (#116)

* Added limit to JSON request body

* Update package-lock.json

* Added error message

* Update FlyerMiddleware.ts (#119)

* Update publications.json (#122)

Add WoMENA as a publication

* Change Create Flyer route to use form data for image upload (#121)

* Add post express route using form data

* Remove .idea

* revert readme

* try catch for large file uploads

* Remove uncertain comments

* Refactor upload image util to use form data

* Cover the case where the Flyer ID that was sent is invalid

* Update file key, add documentation

* Fixed issue with edit flyer (#124)

* Fixed issue with edit flyer

* Update app.ts

* Adding routes and migration script for bookmarking (#126)

* Adding routes and migration script for bookmarking

* Refactoring WeeklyDebrief

* Fixing unbookmarking functions

* Adding (un)bookmark articles tests

* More article bookmark tests

* Adding more tests for flyers and magazines

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>
Co-authored-by: Shungo Najima <sn685@cornell.edu>
Co-authored-by: Isaac Han <isaac.han100@gmail.com>
Co-authored-by: Sasha Loayza <104698418+SashaLoayza@users.noreply.github.com>
Co-authored-by: Zachary Seidner <58796478+zachseidner1@users.noreply.github.com>
Co-authored-by: cindy-x-liang <67083541+cindy-x-liang@users.noreply.github.com>
Co-authored-by: Cindy <cl2329@cornell.edu>
Co-authored-by: Aayush <68517064+Aayush-Agnihotri@users.noreply.github.com>
Co-authored-by: Jennifer Gu <57200368+jjennifergu@users.noreply.github.com>
vinnie4k added a commit that referenced this pull request Nov 26, 2023
* Add Jest testing (#63)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update README.md

* Implement community board models (#65)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Revert package.json changes

- reverted package.json changes that are addressed in a different pr

* Add magazines to weekly debrief (#66)

* Implemented community board models

- implemented Flyer and Organization models for community board feature
- modified User model
- updated typescript version to 4.0.5 to resolve es lint issue

* Implemented weekly debrief magazines

- added magazines to weekly debrief feature
- updated user and weekly debrief models to allow tracking of read magazines
- updated logic in user and weekly debrief controllers to enable reading of magazines

* Revert package.json changes

- reverted package.json changes back to the original file
- added additional rules to eslintrc to suppress es lint warnings

* Create jest testing for magazines

- added jest test cases for magazines

* Implement jest testing for User

- implemented unit testing for UserRepo
- indirectly test Weekly Debrief with User unit tests

* Update gitignore

- updated gitignore file to include secrets folder

* Implement reshuffle articles (#68)

* Add Docstrings to Test Factory Functions (#64)

* Initial boilerplate setup

* Add ArticleFactory, TestingDBConnection, FactoryUtils, placeholder article test file

* Add test cases on getAllArticles

* Create PublicationFactory, add tests for getAllArticles, getArticlesByPublicationID(s), getArticlesByPublicationSlug(s)

* Add hooks

* Update README

* Add pr changes

* Add pr changes

* Add tests for incrementShoutouts, searchArticle, getArticlesAfterDate

* Add publication tests and refactor factory files

* Remove test db open message

* Update src/tests/article.test.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Update src/tests/data/ArticleFactory.ts

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* Refactor code

* Refactor byDate

* Add docstrings

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>

Implement shuffle article function

try to implement reshuffling with aggregate

* Implement reshuffling of articles

* Revert package.json, update eslint and update .gitignore to match main branch

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>

* Implement magazine search (#69)

* Implement magazine search

- implemented searching for magazines

* update magazinerepo

* Add unit test for magazine search

- created unit test for MagazineRepo.searchMagazine

* Convert result of shuffling resolver to ArticleModel (#71)

* Add 3 new publications (Cornell Daily Sun, Collective X, and Cornell Healthcare Review) to publications.js (#70)

* Resolve merge conflicts in publications.json (keep release version) (#76)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Revert "Resolve merge conflicts in publications.json (keep release version) (#76)" (#77)

This reverts commit eccf00c.

* fix merge conflicts (#78)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Implement community board [1/7] (#81)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Address pr review comments

- addressed pr review comments
- removed redundant filtering in FlyerRepo
- added checks for null return values in FlyerRepo
- alphabetized imports and exports

* Add imageURL field to Magazine entity. (#73)

* Add no rules to volume-backend's publications.json (#82)

* Implement community board (flyer tests) [2/7] (#84)

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement flyers for community board

- alphabetized imports and fields
- finished implementing flyers for community board

* Implement jest testing for flyers

- created jest unit testing for FlyerRepo
- created FlyerFactory to help with jest testing

* Remove isFiltered field from Flyer entity

- removed redundant isFiltered field from Flyer entity (already checked in microservice)
- updated FlyerRepo and jest testing to reflect changes

* Alphabetize imports and exports

- alphabetized imports and exports in FlyerRepo, flyer.test, and FlyerFactory

* Revert merge conflict changes

- reverted merge conflict changes (accept incoming when actually wanted to keep current)

* Address review comments

- alphabetize imports
- add unit test cases for FlyerRepo including searching for 0 flyers and maximum limit in response
- added unit test case for FlyerRepo.getTrendingFlyers

* Address review comments (Shungo)

- added spaces between test cases

* Implement community board organizations (#85)

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement community board (organization tests) [4/7] (#86)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* Implement community board (user queries/mutations) [5/7] (#87)

* Kidus/filter articles (#48)

* Add covid filter to all article query functions

* Add filtering capability

* Fix getArticleById filter

* Create filter migration script

* Finish migration script

* Add toggle for filtering enforcement

* Implement PR changes

Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>

* Fix BRSN's url

* Migrate bookmark resolver and update User Repo & Entity

* Resolve remaining merge conflicts

* Implement chronological sorting

* Update prod deployment script

* Remove unused MagazineURL index from Magazine DB

* Add no rules to publications.json

* Remove trailing comma

* Begin implementing FlyerRepo

- implemented basic FlyerRepo functions
- updated Flyer model to support uploading in app instead of through a google form

* Implement basic community board features

- finished implementing basic organization and flyer repos/resolvers
- created jest testing for organization and flyer repos

* Remove unnecessary OrganizationRepo function

- removed content types route from organization repo and organization resolver

* Implement user routes for community board

- implemented user routes for community board to allow following orgs and reading flyers
- added jest unit test cases for new UserRepo functions

* Implement mutations for following and unfollowing organizations

- added resolvers to UserResolver for following and unfollowing organizations
- updated documentation in UserRepo
- added import of FlyerRepo in app.ts

* Address pr review comments

- fix spelling

* Address pr review comments

- made style consistent in UserRepo by checking for if(user) in appendReadFlyer, appendReadArticle, and appendReadMagazine

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit404Error <4architmehta@gmail.com>

* Onboard organizations (#90)

- add organizations from volume-microservice onto organizations.json

* Implement community board (categories and org lists) [6/7] (#89)

* Implement community board organizations

- resolve merge conflicts in Flyer.ts and FlyerFactory.ts
- update Organization model
- implement logic in OrganizationRepo
- implement queries and mutations in OrganizationResolver

* Implement jest testing for organizations

- implemented jest testing for community board organizations
- created organizations.json with 3 onboarded organizations
- added FlyerResolver and OrganizationResolver to app.ts

* initial commit

* Implement organizations as list for flyer model

- updated flyer model to allow a list of organizations and organizationSlugs to be associated with each flyer
- updated flyer and organization queries accordingly
- added unit jest test cases and update old ones accordingly

* Address pr review comments

- removed redundant resolvers
- updated getOrganizationByCategory test

* Address pr review comments (kate)

- updated docs in OrganizationResolver

* Implement cboard start and end dates (#93)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* update organization shoutouts query (#94)

* Implement end dates

- implemented start and end dates
- changed shoutouts to times clicked
- updated testing and documentation to reflect changes

* Address pr review comments

- removed async from getFlyersBeforeDate and getFlyersAfterDate
- updated documentation in FactoryUtils

* add incrementTimesClicked to resolver

* Update organization clicks

- changed shoutouts query to clicks in OrganizationResolver

* Implement trending flyers logic (#95)

- updated trending flyers logic
- updated FlyerRepo
- updated documentation in FlyerResolver

* Fixed notification issue (#97)

* Flyer Notifications + Org/Flyer Model Changes (#99)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Inline notification calls

* Improve Search Algorithm (#101)

* Update README.md start instructions

* Update search function for articles

* Remove console log

* Update articles search to use text search instead of regex

* Update search for Flyers and Magazines

* Update documentation, remove unused Fuse package

* Fix README.md start docs

* Filter out past flyers during flyers search

* Fix formatting, improve concision

* Remove start.md

* Changed indexing method to being declared on the models

* Update README.md

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

---------

Co-authored-by: Archit Mehta <4architmehta@gmail.com>

* getFlyersByCategorySlug Query (#100)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Added getFlyersByCategorySlug query

* Update query description

* Inline notification calls

* Update flyer.test.ts

* Update flyer.test.ts

* Merge `vin/create-flyer` to `main` (#104)

* Fixed notification issue

* Added flyer notification

* Added flyer notification

* Updated Organization and Flyer models

* Updated test cases

* Added getFlyersByCategorySlug query

* Update query description

* Inline notification calls

* Add createFlyer mutation

* `deleteFlyer` mutation (#103)

* Add deleteFlyer mutation

* Address PR comments

* Update utils.ts

* Update FlyerRepo.ts

* Trendiness Update and Migration Script for New Flyers Model (#106)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Zach/trendiness and migration hot fix (#107)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Fix TypeScript compilation error

* Micro PR for Flyers categorySlug migration (#108)

* Add migration script to update data based on new Flyers schema

* Update Flyer trendiness

* Fix comments

* Clean up syntax for get trending flyers

* Remove unnecessary createSpecificsByIndex function

* Fix TypeScript compilation error

* Update migration script to account for category slug

* Fix formatting for flyers test

* Create `editFlyer` mutation (#105)

* Add `editFlyer`

* Address PR comments

* `checkAccessCode` query for Organization authentication (#109)

* Added Organization authentication

* Updated Authorization

* Implemented  getAllFlyerCategories and tests (#110)

* Implemented  getAllFlyerCategories and tests

* update jest

* update jest

* implemented suggestions from zach, vin, and archit

* got rid of ESLint comment

* fixed names for tests

* Added loops to test cases

* Fixed test case to create flyers with the same category

* Changed 'push' to 'concat'

---------

Co-authored-by: Cindy <cl2329@cornell.edu>

* Changing specifications for getFlyersBeforeDate and getFlyersAfterDate (#112)

* Cindy/flyer categories (#113)

* Implemented  getAllFlyerCategories and tests

* update jest

* update jest

* implemented suggestions from zach, vin, and archit

* got rid of ESLint comment

* fixed names for tests

* Added loops to test cases

* Fixed test case to create flyers with the same category

* Changed 'push' to 'concat'

* Updated `getAllFlyerCategories`

---------

Co-authored-by: Cindy <cl2329@cornell.edu>
Co-authored-by: Vin Bui <vdb23@cornell.edu>

* Increased HTTP request size (#114)

* Added limit to JSON request body

* Update package-lock.json

* Add error message (#116)

* Added limit to JSON request body

* Update package-lock.json

* Added error message

* Update FlyerMiddleware.ts (#119)

* Update publications.json (#122)

Add WoMENA as a publication

* Change Create Flyer route to use form data for image upload (#121)

* Add post express route using form data

* Remove .idea

* revert readme

* try catch for large file uploads

* Remove uncertain comments

* Refactor upload image util to use form data

* Cover the case where the Flyer ID that was sent is invalid

* Update file key, add documentation

* Fixed issue with edit flyer (#124)

* Fixed issue with edit flyer

* Update app.ts

* Adding routes and migration script for bookmarking (#126)

* Adding routes and migration script for bookmarking

* Refactoring WeeklyDebrief

* Fixing unbookmarking functions

* Adding (un)bookmark articles tests

* More article bookmark tests

* Adding more tests for flyers and magazines

* Enabling notifications for adding, editing, and deleting a flyer (#118)

* Implemented  getAllFlyerCategories and tests

* update jest

* update jest

* implemented suggestions from zach, vin, and archit

* got rid of ESLint comment

* fixed names for tests

* Added loops to test cases

* Fixed test case to create flyers with the same category

* Changed 'push' to 'concat'

* Enabled notifications for adding, editing, and deleting a flyer

- Created a function in NotificationRepo.ts called notifyFlyersForOrganization that takes in a flyerID and a title of the notification
- the title of the notification should reflect the action performed (add, edit, delete)
- This function is called in FlyerResolver.ts

* Added more specific body text for updating flyers, removed notifyNewFlyers

* Addressed Vin's Comments

- used enums for action commparison instead of strings
- used template strings instead of concat
- added documentation for the various branches of the if statement in the notification for editing a flyer

* Addressing Vin's Comments

- changed nested if statements to a switch block
- used proper capitlization for Enums

* add num flyers for organizations

* Changed edit and delete flyer notifications to only be sent to users who have flyers bookmarked

- in UserRepo added getUsersBookmarkedFlyers to get a list of all the users that have the desired flyer bookmarked
- in NotificationRepo, factored out a function titled notifyFlyersForBookmarks
- in FlyerResolver, for edit/delete flyers notifyFlyersForBookmarks will be called instead of notifyFlyersForOrganizations

* fixed specs for added functions

* addressing vin's comments

---------

Co-authored-by: Cindy <cl2329@cornell.edu>
Co-authored-by: Vin Bui <vdb23@cornell.edu>

* Update app.ts (#128)

---------

Co-authored-by: Kidus Zegeye <51487468+kidzegeye@users.noreply.github.com>
Co-authored-by: Kidus Zegeye <kmz25@cornell.edu>
Co-authored-by: Archit Mehta <4architmehta@gmail.com>
Co-authored-by: Shungo Najima <sn685@cornell.edu>
Co-authored-by: Isaac Han <isaac.han100@gmail.com>
Co-authored-by: Sasha Loayza <104698418+SashaLoayza@users.noreply.github.com>
Co-authored-by: Zachary Seidner <58796478+zachseidner1@users.noreply.github.com>
Co-authored-by: cindy-x-liang <67083541+cindy-x-liang@users.noreply.github.com>
Co-authored-by: Cindy <cl2329@cornell.edu>
Co-authored-by: Aayush <68517064+Aayush-Agnihotri@users.noreply.github.com>
Co-authored-by: Jennifer Gu <57200368+jjennifergu@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants