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

WIP on Issue #69 #75

Merged
merged 14 commits into from
Apr 10, 2024
Merged

WIP on Issue #69 #75

merged 14 commits into from
Apr 10, 2024

Conversation

leandrumartin
Copy link
Contributor

Started implementing /projects endpoint. As of now, any requests to the endpoint return an error, but I have started implementing the basic logic to build the endpoint off of.

@leandrumartin leandrumartin self-assigned this Mar 25, 2024
@leandrumartin leandrumartin linked an issue Mar 25, 2024 that may be closed by this pull request
@leandrumartin leandrumartin marked this pull request as ready for review April 7, 2024 16:11
Copy link
Member

@cubap cubap left a comment

Choose a reason for hiding this comment

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

Some minor points of information or correction, but this is generally very good for this scope

projects/__tests__/end_to_end_unit.test.mjs Outdated Show resolved Hide resolved
projects/__tests__/end_to_end_unit.test.mjs Outdated Show resolved Hide resolved
projects/index.mjs Outdated Show resolved Hide resolved
projects/index.mjs Outdated Show resolved Hide resolved
projects/index.mjs Outdated Show resolved Hide resolved
projects/projects.mjs Outdated Show resolved Hide resolved
Copy link
Member

@thehabes thehabes left a comment

Choose a reason for hiding this comment

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

This code has breaking errors.

When I make a properly authenticated request the app errors out and kills the node process. This cannot happen. It should return an empty array or an array containing at least one project, even as a mock.

image

project/index.mjs Outdated Show resolved Hide resolved
projects/index.mjs Outdated Show resolved Hide resolved
projects/index.mjs Show resolved Hide resolved
Copy link
Member

@thehabes thehabes left a comment

Choose a reason for hiding this comment

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

This did not pass manual testing. There is no way for me to get anything besides an empty array from /projects.

image

The mock projects do not make it back out to me. However, I know the endpoint is trying to return them.

image

image

A successful /projects request will either give a RESTful error code/message, or return your mock projects

I expected this request to give errors on hasRoles, isPublic, and count but instead only gives errors for count. Maybe this is out of scope for this PR
image

The code works and is cleaner, but the sample projects are not ideal and it is tough to prove the filtering (which is incomplete anyway) works.
@cubap
Copy link
Member

cubap commented Apr 10, 2024

Just trying to unbury us all here. The code does not connect to the db right now so any authenticated user returns the stubbed projects, which also means there is not full examples for all the parameters possible.

@cubap cubap merged commit 41926b6 into development Apr 10, 2024
3 checks passed
cubap added a commit that referenced this pull request Aug 8, 2024
* hot fix for dbTests

* Fixed the end to end and functionality tests (#98)

Co-authored-by: BhanuKandula5030 <[email protected]>

* WIP on issue  71-simple-getuserprofile-workflow (#74)

* Initialize Endpoints (#51)

* /manifest route prototype (#6) (#10)

* More set up for testing

* Now this is something worth bringing to the table to talk about.

* Now this is something worth bringing to the table to talk about.

* Hands up, no further until after stand up.  Make sure this is on a better looking track.

* Better organization.  Better notes and textual queues to what is going on.

* oo get that low hanging coverage

* test wording hint

* If I typed out this comment your would TLDR and move on so...here's some stuff.

* Fancy.  Tests are segregated and can be called individually or all together.

* Cleaning up

* cleanup getting ready for PR

* Documentation for sanity

Co-authored-by: Bryan Haberberger <[email protected]>

* WIP on issue 19 (#32)

* added initial code for issue19 page/id

* removed the test cases package in page/tests-not required now

* updated on the previous comments on issue

* WIP on Issue 21 (#33)

* Added the initial codebase to implement the GET/line/{lineid} and REST responses

* Added the Code Changes Documentation

* Delete Code Changes Documnetation.md

* Updated the code with the requested comments and added the end to end,exists and functionality test cases

* Added the Read me file , updated the code for the requested changes

---------

Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Bryan Haberberger <[email protected]>

* WIP on Issue 2 (#34)

* Initial commit on Issue #2, largely duplicating /manifest code to new /project directory

* /project sends local dummy JSON data

* Added tests to project directory

* Addressed comment on mockPause() in project.mjs

---------

Co-authored-by: Bryan Haberberger <[email protected]>

* Manifest endpoint cleanup (#47)

* clean it up!

* documentation

* documentation and cleanup

* documentation and cleanup

* big merge cleanup

---------

Co-authored-by: Patrick Cuba <[email protected]>
Co-authored-by: Sandeep Kumar Sutharapu <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>

* validating name

package name was invalid. Space and CAPS removed

* license hotfix

* WIP on issue 56-extend-page-web-api (#63)

* updated the code and written test cases initially failing

* updated the changes for the issue 56 Added all the changes that will mock the Database functionality for now If the db connection provided just need to connect

* added put route

* added few more test cases to check differnt query params conditions

* updated on the review comments

* removed ";"

* updated unit tests

* updated just for draft

* updating merge

* updating the userProfiles functionality defining its seperate package and tests with in

* updating on top of review comments

* updating the page code back to dev

* updating on the top of review comments

* updated and corrected

* updated the test cases

* removed semicollans

* roll back page to orginal

* Update index.mjs

* Update index.mjs

* Update page.mjs

* Update functionality_unit.test.mjs

* Update functionality_unit.test.mjs

* added based the filtration comments

---------

Co-authored-by: Bryan Haberberger <[email protected]>
Co-authored-by: Patrick Cuba <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>

* WIP on Issue #69 (#75)

* Slightly improved commenting clarity on respondWithProject()

* Very basic skeleton of /projects endpoint

* Added query param parsing for /projects, begun work on /projects tests

* Partial implementation of query params for /projects, mock data for /projects. Commented out /projects unit tests (not yet working)

* Resolved issue with authentication middleware implementation in /projects route

* /projects files now read environment variables

* commented out failing tests, added support for /projects hasRoles and exceptRoles queries

* Addressed some comments

* Query validation for /projects endpoint

* Addressed comments, fixed failing tests, and added lots more tests.

* weak getProjects() cleanup

The code works and is cleaner, but the sample projects are not ideal and it is tough to prove the filtering (which is incomplete anyway) works.

---------

Co-authored-by: Patrick Cuba <[email protected]>

* WIP on Issue 70 simple getuserprojects workflow (#73)

* Initialize Endpoints (#51)

* /manifest route prototype (#6) (#10)

* More set up for testing

* Now this is something worth bringing to the table to talk about.

* Now this is something worth bringing to the table to talk about.

* Hands up, no further until after stand up.  Make sure this is on a better looking track.

* Better organization.  Better notes and textual queues to what is going on.

* oo get that low hanging coverage

* test wording hint

* If I typed out this comment your would TLDR and move on so...here's some stuff.

* Fancy.  Tests are segregated and can be called individually or all together.

* Cleaning up

* cleanup getting ready for PR

* Documentation for sanity

Co-authored-by: Bryan Haberberger <[email protected]>

* WIP on issue 19 (#32)

* added initial code for issue19 page/id

* removed the test cases package in page/tests-not required now

* updated on the previous comments on issue

* WIP on Issue 21 (#33)

* Added the initial codebase to implement the GET/line/{lineid} and REST responses

* Added the Code Changes Documentation

* Delete Code Changes Documnetation.md

* Updated the code with the requested comments and added the end to end,exists and functionality test cases

* Added the Read me file , updated the code for the requested changes

---------

Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Bryan Haberberger <[email protected]>

* WIP on Issue 2 (#34)

* Initial commit on Issue #2, largely duplicating /manifest code to new /project directory

* /project sends local dummy JSON data

* Added tests to project directory

* Addressed comment on mockPause() in project.mjs

---------

Co-authored-by: Bryan Haberberger <[email protected]>

* Manifest endpoint cleanup (#47)

* clean it up!

* documentation

* documentation and cleanup

* documentation and cleanup

* big merge cleanup

---------

Co-authored-by: Patrick Cuba <[email protected]>
Co-authored-by: Sandeep Kumar Sutharapu <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>

* validating name

package name was invalid. Space and CAPS removed

* license hotfix

* WIP on issue 56-extend-page-web-api (#63)

* updated the code and written test cases initially failing

* updated the changes for the issue 56 Added all the changes that will mock the Database functionality for now If the db connection provided just need to connect

* added put route

* added few more test cases to check differnt query params conditions

* updated on the review comments

* removed ";"

* updated unit tests

* Slightly improved commenting clarity on respondWithProject()

* Integrated getUserProjects function into the project endpoint along with authenticateUser middleware for token validation. Updated response formatting and error handling, included dbController import, introduced getUserProjects function to fetch projects based on user ID, and modified findLineById to include a simulated database delay while returning line objects by ID

* Very basic skeleton of /projects endpoint

* Added query param parsing for /projects, begun work on /projects tests

* resolving merge

* resolving

* Partial implementation of query params for /projects, mock data for /projects. Commented out /projects unit tests (not yet working)

* Resolved issue with authentication middleware implementation in /projects route

* /projects files now read environment variables

* commented out failing tests, added support for /projects hasRoles and exceptRoles queries

* Updated the code cloned from development and added the services at get /project ,added the parameter handling,appllied filters ,returned as json ,surfaces the errors.

* Addressed some comments

* Query validation for /projects endpoint

* updated the code with requested changes , added the old code , updated the issue requirements

* Updated the code based on the requested changes ,added the documentation

* Addressed comments, fixed failing tests, and added lots more tests.

* weak getProjects() cleanup

The code works and is cleaner, but the sample projects are not ideal and it is tough to prove the filtering (which is incomplete anyway) works.

* moving tests to /projects

and combining with #69

* remove from /project

* skipping auth until auth is universal

---------

Co-authored-by: Bryan Haberberger <[email protected]>
Co-authored-by: Patrick Cuba <[email protected]>
Co-authored-by: Sandeep Kumar Sutharapu <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>
Co-authored-by: Sandeep Naidu <[email protected]>

* reserveId

tests passing

* upsidedown letter

* set variable timeout for tests (#100)

* set variable timeout for tests

* hot fix

* undiff to avoid conflicts

* undiff to avoid conflicts

---------

Co-authored-by: Bryan Haberberger <[email protected]>

* 101 isvalidid for db controller (#109)

* Initialize Endpoints (#51)

* /manifest route prototype (#6) (#10)

* More set up for testing

* Now this is something worth bringing to the table to talk about.

* Now this is something worth bringing to the table to talk about.

* Hands up, no further until after stand up.  Make sure this is on a better looking track.

* Better organization.  Better notes and textual queues to what is going on.

* oo get that low hanging coverage

* test wording hint

* If I typed out this comment your would TLDR and move on so...here's some stuff.

* Fancy.  Tests are segregated and can be called individually or all together.

* Cleaning up

* cleanup getting ready for PR

* Documentation for sanity

Co-authored-by: Bryan Haberberger <[email protected]>

* WIP on issue 19 (#32)

* added initial code for issue19 page/id

* removed the test cases package in page/tests-not required now

* updated on the previous comments on issue

* WIP on Issue 21 (#33)

* Added the initial codebase to implement the GET/line/{lineid} and REST responses

* Added the Code Changes Documentation

* Delete Code Changes Documnetation.md

* Updated the code with the requested comments and added the end to end,exists and functionality test cases

* Added the Read me file , updated the code for the requested changes

---------

Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Bryan Haberberger <[email protected]>

* WIP on Issue 2 (#34)

* Initial commit on Issue #2, largely duplicating /manifest code to new /project directory

* /project sends local dummy JSON data

* Added tests to project directory

* Addressed comment on mockPause() in project.mjs

---------

Co-authored-by: Bryan Haberberger <[email protected]>

* Manifest endpoint cleanup (#47)

* clean it up!

* documentation

* documentation and cleanup

* documentation and cleanup

* big merge cleanup

---------

Co-authored-by: Patrick Cuba <[email protected]>
Co-authored-by: Sandeep Kumar Sutharapu <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>

* validating name

package name was invalid. Space and CAPS removed

* license hotfix

* WIP on issue 56-extend-page-web-api (#63)

* updated the code and written test cases initially failing

* updated the changes for the issue 56 Added all the changes that will mock the Database functionality for now If the db connection provided just need to connect

* added put route

* added few more test cases to check differnt query params conditions

* updated on the review comments

* removed ";"

* updated unit tests

* Code fixes for passing tests (#99)

* hot fix for dbTests

* Fixed the end to end and functionality tests (#98)

Co-authored-by: BhanuKandula5030 <[email protected]>

---------

Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>

* hotfix to get this working.

Continue work on this branch

* tests in

these are useless but should break later correctly

* real validation

` expect(database.isValidId(123)).toBeTruthy()` is still false somehow

* import for validation

* https://youtu.be/tgGAHzvDyGU?si=4Gnih3pU6KipSMdZ

---------

Co-authored-by: Bryan Haberberger <[email protected]>
Co-authored-by: Sandeep Kumar Sutharapu <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>

* add changes from user class, skip mongo unit tests

* line:169 was saving a Promise

* only used once

* make sure its new for reasons

* unskip tests

* exact test

* Get me Wayne Brady

* from comments

* WIP on Issue #93 (#103)

* Added /project/create route and logic to add project to database

* Fixed bug that took way too long to diagnose. I hate programming

* Validations for some project keys

* More object validation in /project/create and some unit tests for the endpoint

* Useful comments

* Restructuring project/index.mjs

* Project endpoints now expect hexadecimal string id instead of numeric id

* Check for @type in new Project, new unit tests

* Fixed weird issue with tests and made slight fixes to other tests

* URL validation for "manifest" key of new Project

* helpful comment

* Implement database.isValidId()

* add private router for authenticated requests

* add agent to new user object

* unnested logic

* Private user routes (#116)

* add private router for authenticated requests

* add agent to new user object

* unnested logic

---------

Co-authored-by: Patrick Cuba <[email protected]>

* READONLY typo and node version

* adjust error

* move agent to where it is expected

* punt this test

* Update auth_unit_test.mjs

* Update auth_unit_test.mjs

* move auth application to specific route

* auth test

* match project creator with user agent

* add error handling to privateProfile

* Add error handling

* pass non-auth error onward as is

* 9 simplify cors (#117)

* Added common_cors.json file to put all reused CORS headers in one file

* Fixed missing import statement

* Updated common_cors.json import to include type assertion

* Added common_cors to more files that use the same CORS headers

* Undid mysterious package-lock change from previous commit

* clean up

* import project class

* create project from manifest

* add project class

* modify importProject to use Page and Project

* import project

* CATCH ERRORS

* reduce dependencies

* modify import pipeline

* noDiff

* private user routes (#118)

* move auth application to specific route

* auth test

* match project creator with user agent

* add error handling to privateProfile

* Add error handling

* pass non-auth error onward as is

* clean up

* Using the `getByID()` method

* combined methods

* getById

* collection default

* fix auto format

* test user class

* updated tests with mock data/methods

* test API existence

* add test cases

---------

Co-authored-by: cubap <[email protected]>

* clean up

* refactor check block

* restructure project; layers-pages-lines

* clean up

* cleanup

* skip tests that use TEST_TOKEN for now.

* Import projects route and tests (#121)

* add importProject route

* add member elements

* add class and api tests

* move import project from /projects to /project

* delete /projects directory and route

* create manifest from URL

* Update tests to suite new import project structure

* Hot fix

* add URL validation function

* User cleanup (#122)

* remove redundant file

* refactor error responder

* cleanup, rewrite /:id

* replace stubs with actual tests

* Project cleanup (#123)

* remove redundant file

* refactor error responder

* cleanup, rewrite /:id

* replace stubs with actual tests

* project cleanup -- Use Project class to create and get

* Authenticated /projects

* Authenticated /projects

* cleanup

* notify improper request methods

* add ProjectFactory

* add saveProject

* rewrite tests

* add findOne(), cleanup resp[0] occurrences]

* Skip Tests (#125)

* remove redundant file

* refactor error responder

* cleanup, rewrite /:id

* replace stubs with actual tests

* project cleanup -- Use Project class to create and get

* Authenticated /projects

* Authenticated /projects

* cleanup

* notify improper request methods

* add ProjectFactory

* add saveProject

* rewrite tests

* add findOne(), cleanup resp[0] occurrences]

* skip auth-dependent tests

* nodiff

* Update package-lock.json

* 126 error fixes (#127)

* skip auth-dependent tests

* error fix from issue 126

* add/fix test cases

* cleanup

* cleanup

* skip auth-dependent tests

* modify /project/:id test

* cleanup

---------

Co-authored-by: Bryan Haberberger <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Sandeep Kumar Sutharapu <[email protected]>
Co-authored-by: Patrick Cuba <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>
Co-authored-by: Sandeep Naidu <[email protected]>
cubap added a commit that referenced this pull request Aug 28, 2024
* Development (#124)

* hot fix for dbTests

* Fixed the end to end and functionality tests (#98)

Co-authored-by: BhanuKandula5030 <[email protected]>

* WIP on issue  71-simple-getuserprofile-workflow (#74)

* Initialize Endpoints (#51)

* /manifest route prototype (#6) (#10)

* More set up for testing

* Now this is something worth bringing to the table to talk about.

* Now this is something worth bringing to the table to talk about.

* Hands up, no further until after stand up.  Make sure this is on a better looking track.

* Better organization.  Better notes and textual queues to what is going on.

* oo get that low hanging coverage

* test wording hint

* If I typed out this comment your would TLDR and move on so...here's some stuff.

* Fancy.  Tests are segregated and can be called individually or all together.

* Cleaning up

* cleanup getting ready for PR

* Documentation for sanity

Co-authored-by: Bryan Haberberger <[email protected]>

* WIP on issue 19 (#32)

* added initial code for issue19 page/id

* removed the test cases package in page/tests-not required now

* updated on the previous comments on issue

* WIP on Issue 21 (#33)

* Added the initial codebase to implement the GET/line/{lineid} and REST responses

* Added the Code Changes Documentation

* Delete Code Changes Documnetation.md

* Updated the code with the requested comments and added the end to end,exists and functionality test cases

* Added the Read me file , updated the code for the requested changes

---------

Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Bryan Haberberger <[email protected]>

* WIP on Issue 2 (#34)

* Initial commit on Issue #2, largely duplicating /manifest code to new /project directory

* /project sends local dummy JSON data

* Added tests to project directory

* Addressed comment on mockPause() in project.mjs

---------

Co-authored-by: Bryan Haberberger <[email protected]>

* Manifest endpoint cleanup (#47)

* clean it up!

* documentation

* documentation and cleanup

* documentation and cleanup

* big merge cleanup

---------

Co-authored-by: Patrick Cuba <[email protected]>
Co-authored-by: Sandeep Kumar Sutharapu <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>

* validating name

package name was invalid. Space and CAPS removed

* license hotfix

* WIP on issue 56-extend-page-web-api (#63)

* updated the code and written test cases initially failing

* updated the changes for the issue 56 Added all the changes that will mock the Database functionality for now If the db connection provided just need to connect

* added put route

* added few more test cases to check differnt query params conditions

* updated on the review comments

* removed ";"

* updated unit tests

* updated just for draft

* updating merge

* updating the userProfiles functionality defining its seperate package and tests with in

* updating on top of review comments

* updating the page code back to dev

* updating on the top of review comments

* updated and corrected

* updated the test cases

* removed semicollans

* roll back page to orginal

* Update index.mjs

* Update index.mjs

* Update page.mjs

* Update functionality_unit.test.mjs

* Update functionality_unit.test.mjs

* added based the filtration comments

---------

Co-authored-by: Bryan Haberberger <[email protected]>
Co-authored-by: Patrick Cuba <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>

* WIP on Issue #69 (#75)

* Slightly improved commenting clarity on respondWithProject()

* Very basic skeleton of /projects endpoint

* Added query param parsing for /projects, begun work on /projects tests

* Partial implementation of query params for /projects, mock data for /projects. Commented out /projects unit tests (not yet working)

* Resolved issue with authentication middleware implementation in /projects route

* /projects files now read environment variables

* commented out failing tests, added support for /projects hasRoles and exceptRoles queries

* Addressed some comments

* Query validation for /projects endpoint

* Addressed comments, fixed failing tests, and added lots more tests.

* weak getProjects() cleanup

The code works and is cleaner, but the sample projects are not ideal and it is tough to prove the filtering (which is incomplete anyway) works.

---------

Co-authored-by: Patrick Cuba <[email protected]>

* WIP on Issue 70 simple getuserprojects workflow (#73)

* Initialize Endpoints (#51)

* /manifest route prototype (#6) (#10)

* More set up for testing

* Now this is something worth bringing to the table to talk about.

* Now this is something worth bringing to the table to talk about.

* Hands up, no further until after stand up.  Make sure this is on a better looking track.

* Better organization.  Better notes and textual queues to what is going on.

* oo get that low hanging coverage

* test wording hint

* If I typed out this comment your would TLDR and move on so...here's some stuff.

* Fancy.  Tests are segregated and can be called individually or all together.

* Cleaning up

* cleanup getting ready for PR

* Documentation for sanity

Co-authored-by: Bryan Haberberger <[email protected]>

* WIP on issue 19 (#32)

* added initial code for issue19 page/id

* removed the test cases package in page/tests-not required now

* updated on the previous comments on issue

* WIP on Issue 21 (#33)

* Added the initial codebase to implement the GET/line/{lineid} and REST responses

* Added the Code Changes Documentation

* Delete Code Changes Documnetation.md

* Updated the code with the requested comments and added the end to end,exists and functionality test cases

* Added the Read me file , updated the code for the requested changes

---------

Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Bryan Haberberger <[email protected]>

* WIP on Issue 2 (#34)

* Initial commit on Issue #2, largely duplicating /manifest code to new /project directory

* /project sends local dummy JSON data

* Added tests to project directory

* Addressed comment on mockPause() in project.mjs

---------

Co-authored-by: Bryan Haberberger <[email protected]>

* Manifest endpoint cleanup (#47)

* clean it up!

* documentation

* documentation and cleanup

* documentation and cleanup

* big merge cleanup

---------

Co-authored-by: Patrick Cuba <[email protected]>
Co-authored-by: Sandeep Kumar Sutharapu <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>

* validating name

package name was invalid. Space and CAPS removed

* license hotfix

* WIP on issue 56-extend-page-web-api (#63)

* updated the code and written test cases initially failing

* updated the changes for the issue 56 Added all the changes that will mock the Database functionality for now If the db connection provided just need to connect

* added put route

* added few more test cases to check differnt query params conditions

* updated on the review comments

* removed ";"

* updated unit tests

* Slightly improved commenting clarity on respondWithProject()

* Integrated getUserProjects function into the project endpoint along with authenticateUser middleware for token validation. Updated response formatting and error handling, included dbController import, introduced getUserProjects function to fetch projects based on user ID, and modified findLineById to include a simulated database delay while returning line objects by ID

* Very basic skeleton of /projects endpoint

* Added query param parsing for /projects, begun work on /projects tests

* resolving merge

* resolving

* Partial implementation of query params for /projects, mock data for /projects. Commented out /projects unit tests (not yet working)

* Resolved issue with authentication middleware implementation in /projects route

* /projects files now read environment variables

* commented out failing tests, added support for /projects hasRoles and exceptRoles queries

* Updated the code cloned from development and added the services at get /project ,added the parameter handling,appllied filters ,returned as json ,surfaces the errors.

* Addressed some comments

* Query validation for /projects endpoint

* updated the code with requested changes , added the old code , updated the issue requirements

* Updated the code based on the requested changes ,added the documentation

* Addressed comments, fixed failing tests, and added lots more tests.

* weak getProjects() cleanup

The code works and is cleaner, but the sample projects are not ideal and it is tough to prove the filtering (which is incomplete anyway) works.

* moving tests to /projects

and combining with #69

* remove from /project

* skipping auth until auth is universal

---------

Co-authored-by: Bryan Haberberger <[email protected]>
Co-authored-by: Patrick Cuba <[email protected]>
Co-authored-by: Sandeep Kumar Sutharapu <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>
Co-authored-by: Sandeep Naidu <[email protected]>

* reserveId

tests passing

* upsidedown letter

* set variable timeout for tests (#100)

* set variable timeout for tests

* hot fix

* undiff to avoid conflicts

* undiff to avoid conflicts

---------

Co-authored-by: Bryan Haberberger <[email protected]>

* 101 isvalidid for db controller (#109)

* Initialize Endpoints (#51)

* /manifest route prototype (#6) (#10)

* More set up for testing

* Now this is something worth bringing to the table to talk about.

* Now this is something worth bringing to the table to talk about.

* Hands up, no further until after stand up.  Make sure this is on a better looking track.

* Better organization.  Better notes and textual queues to what is going on.

* oo get that low hanging coverage

* test wording hint

* If I typed out this comment your would TLDR and move on so...here's some stuff.

* Fancy.  Tests are segregated and can be called individually or all together.

* Cleaning up

* cleanup getting ready for PR

* Documentation for sanity

Co-authored-by: Bryan Haberberger <[email protected]>

* WIP on issue 19 (#32)

* added initial code for issue19 page/id

* removed the test cases package in page/tests-not required now

* updated on the previous comments on issue

* WIP on Issue 21 (#33)

* Added the initial codebase to implement the GET/line/{lineid} and REST responses

* Added the Code Changes Documentation

* Delete Code Changes Documnetation.md

* Updated the code with the requested comments and added the end to end,exists and functionality test cases

* Added the Read me file , updated the code for the requested changes

---------

Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Bryan Haberberger <[email protected]>

* WIP on Issue 2 (#34)

* Initial commit on Issue #2, largely duplicating /manifest code to new /project directory

* /project sends local dummy JSON data

* Added tests to project directory

* Addressed comment on mockPause() in project.mjs

---------

Co-authored-by: Bryan Haberberger <[email protected]>

* Manifest endpoint cleanup (#47)

* clean it up!

* documentation

* documentation and cleanup

* documentation and cleanup

* big merge cleanup

---------

Co-authored-by: Patrick Cuba <[email protected]>
Co-authored-by: Sandeep Kumar Sutharapu <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>

* validating name

package name was invalid. Space and CAPS removed

* license hotfix

* WIP on issue 56-extend-page-web-api (#63)

* updated the code and written test cases initially failing

* updated the changes for the issue 56 Added all the changes that will mock the Database functionality for now If the db connection provided just need to connect

* added put route

* added few more test cases to check differnt query params conditions

* updated on the review comments

* removed ";"

* updated unit tests

* Code fixes for passing tests (#99)

* hot fix for dbTests

* Fixed the end to end and functionality tests (#98)

Co-authored-by: BhanuKandula5030 <[email protected]>

---------

Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>

* hotfix to get this working.

Continue work on this branch

* tests in

these are useless but should break later correctly

* real validation

` expect(database.isValidId(123)).toBeTruthy()` is still false somehow

* import for validation

* https://youtu.be/tgGAHzvDyGU?si=4Gnih3pU6KipSMdZ

---------

Co-authored-by: Bryan Haberberger <[email protected]>
Co-authored-by: Sandeep Kumar Sutharapu <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>

* add changes from user class, skip mongo unit tests

* line:169 was saving a Promise

* only used once

* make sure its new for reasons

* unskip tests

* exact test

* Get me Wayne Brady

* from comments

* WIP on Issue #93 (#103)

* Added /project/create route and logic to add project to database

* Fixed bug that took way too long to diagnose. I hate programming

* Validations for some project keys

* More object validation in /project/create and some unit tests for the endpoint

* Useful comments

* Restructuring project/index.mjs

* Project endpoints now expect hexadecimal string id instead of numeric id

* Check for @type in new Project, new unit tests

* Fixed weird issue with tests and made slight fixes to other tests

* URL validation for "manifest" key of new Project

* helpful comment

* Implement database.isValidId()

* add private router for authenticated requests

* add agent to new user object

* unnested logic

* Private user routes (#116)

* add private router for authenticated requests

* add agent to new user object

* unnested logic

---------

Co-authored-by: Patrick Cuba <[email protected]>

* READONLY typo and node version

* adjust error

* move agent to where it is expected

* punt this test

* Update auth_unit_test.mjs

* Update auth_unit_test.mjs

* move auth application to specific route

* auth test

* match project creator with user agent

* add error handling to privateProfile

* Add error handling

* pass non-auth error onward as is

* 9 simplify cors (#117)

* Added common_cors.json file to put all reused CORS headers in one file

* Fixed missing import statement

* Updated common_cors.json import to include type assertion

* Added common_cors to more files that use the same CORS headers

* Undid mysterious package-lock change from previous commit

* clean up

* import project class

* create project from manifest

* add project class

* modify importProject to use Page and Project

* import project

* CATCH ERRORS

* reduce dependencies

* modify import pipeline

* noDiff

* private user routes (#118)

* move auth application to specific route

* auth test

* match project creator with user agent

* add error handling to privateProfile

* Add error handling

* pass non-auth error onward as is

* clean up

* Using the `getByID()` method

* combined methods

* getById

* collection default

* fix auto format

* test user class

* updated tests with mock data/methods

* test API existence

* add test cases

---------

Co-authored-by: cubap <[email protected]>

* clean up

* refactor check block

* restructure project; layers-pages-lines

* clean up

* cleanup

* skip tests that use TEST_TOKEN for now.

* Import projects route and tests (#121)

* add importProject route

* add member elements

* add class and api tests

* move import project from /projects to /project

* delete /projects directory and route

* create manifest from URL

* Update tests to suite new import project structure

* Hot fix

* add URL validation function

* User cleanup (#122)

* remove redundant file

* refactor error responder

* cleanup, rewrite /:id

* replace stubs with actual tests

* Project cleanup (#123)

* remove redundant file

* refactor error responder

* cleanup, rewrite /:id

* replace stubs with actual tests

* project cleanup -- Use Project class to create and get

* Authenticated /projects

* Authenticated /projects

* cleanup

* notify improper request methods

* add ProjectFactory

* add saveProject

* rewrite tests

* add findOne(), cleanup resp[0] occurrences]

* Skip Tests (#125)

* remove redundant file

* refactor error responder

* cleanup, rewrite /:id

* replace stubs with actual tests

* project cleanup -- Use Project class to create and get

* Authenticated /projects

* Authenticated /projects

* cleanup

* notify improper request methods

* add ProjectFactory

* add saveProject

* rewrite tests

* add findOne(), cleanup resp[0] occurrences]

* skip auth-dependent tests

* nodiff

* Update package-lock.json

* 126 error fixes (#127)

* skip auth-dependent tests

* error fix from issue 126

* add/fix test cases

* cleanup

* cleanup

* skip auth-dependent tests

* modify /project/:id test

* cleanup

---------

Co-authored-by: Bryan Haberberger <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Sandeep Kumar Sutharapu <[email protected]>
Co-authored-by: Patrick Cuba <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>
Co-authored-by: Sandeep Naidu <[email protected]>

* Add roles and permissions

* add existing TPEN user to TPEN project

* check user access for permissions to modify project members

* update access check

* add payload validation

* add non-existing TPEN user to project

* add non-TPEN user to project

* clean up

---------

Co-authored-by: Bryan Haberberger <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: BhanuKandula5030 <[email protected]>
Co-authored-by: Sandeep Kumar Sutharapu <[email protected]>
Co-authored-by: Patrick Cuba <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>
Co-authored-by: Leandru Martin <[email protected]>
Co-authored-by: Sandeep Naidu <[email protected]>
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.

getUserProjects(options)
3 participants