-
Notifications
You must be signed in to change notification settings - Fork 186
[jslib] Refactored Acknowledgements with Enhanced HTTP Utilities #9999
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
base: main
Are you sure you want to change the base?
Conversation
| $factory->config(), | ||
| [ | ||
| __DIR__ . "/../project/", | ||
| __DIR__ . "/../project/modules", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
needed to get things to load...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was already done in #9916. Can you rebase so that the PR is up-to-date?
webpack.config.ts
Outdated
| fallback: { | ||
| fs: false, | ||
| path: false, | ||
| stream: require.resolve("stream-browserify"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
npm compile was giving errors without this
package.json
Outdated
| "jstat": "^1.9.5", | ||
| "jszip": "^3.10.1", | ||
| "papaparse": "^5.3.0", | ||
| "pbkdf2": "^3.1.3", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
npm compile was giving errors without these
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't love the idea of adding additional dependencies to LORIS, could you try to work around these? Might be helpful to look at the dataquery module. Dave was able to set-up streams without importing stream-browserify, and the other ones. I can't see why pbkdf2 and transliteration would be needed either.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah, I don't like the idea either and don't see why they would be needed, but npm was upset without them for some reason! I was hoping someone reviewing or maybe @driusan might have the answer.
I can play around with it some more, and maybe a rebase will help. I'll take a look at the dataquery module too.
jslib/core/http/Client.ts
Outdated
| export class Client<T> { | ||
| protected baseUrl: string; | ||
| protected subEndpoint?: string; | ||
| public getCustomMessage: ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is to allow each Client concrete class to define it's own errors across all the error types, not sure if it's the best implementation, but it seems to work — maybe it just needs a better name. return type be something like Record<string, string>
|
@driusan @ridz1208 would love your thoughts on this! Hoping to extend this to more parts of loris after and add more entities. I'm also curious what you think of the directory structure I've started to build out, as it will likely get expanded. Should everything live in jslib? I'm thinking the top level components that currently live in jsx/ should also get moved into what ever the top level javascript directory is and live under a |
jslib/core/errors/BaseError.ts
Outdated
| * Base class for all custom API-related errors. | ||
| */ | ||
| export class BaseError extends Error { | ||
| public name: string; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
need to delete this since name is already a property of Error
|
@kongtiaowang could you help me with these errors? |
|
@HenriRabalais I will handle it. |
|
I made some changes in 3b59957 |
|
Thanks @kongtiaowang ! @driusan do you have time to take a look at this? Otherwise, can I assign it to someone else? |
|
@skarya22 @marandmart I assigned the both of you here because its a JSX heavy PR but also brongs some nice additions to what we already have. This is not exactly a critical priority but definitely a nice have so if you ca take a bit of time here and there to review it it would be perfect. We always talk baout improving our react side and this is doing just that. |
jslib/entities/acknowledgement/clients/AcknowledgementClient.ts
Outdated
Show resolved
Hide resolved
|
Thank you so much for the comprehensive review! All amazing points and feedback. I've addressed and corrected every point you made. Could you look it over one more time? Thanks! |
|
@kongtiaowang I have some failing tests — I'm worried I might have overwritten the changes you had pushed to this branch, even though your commits are still there. |
| $factory->config(), | ||
| [ | ||
| __DIR__ . "/../project/", | ||
| __DIR__ . "/../project/modules", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was already done in #9916. Can you rebase so that the PR is up-to-date?
package.json
Outdated
| "jstat": "^1.9.5", | ||
| "jszip": "^3.10.1", | ||
| "papaparse": "^5.3.0", | ||
| "pbkdf2": "^3.1.3", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't love the idea of adding additional dependencies to LORIS, could you try to work around these? Might be helpful to look at the dataquery module. Dave was able to set-up streams without importing stream-browserify, and the other ones. I can't see why pbkdf2 and transliteration would be needed either.
|
There were some commits after |
6372e1d to
2171b89
Compare
|
@skarya22 and @marandmart thank you for the reviews! I've addressed all your comments, let me know if you see anything else that needs to be looked at! |
This PR refactors the acknowledgements page to use a new, more robust and reusable API client and a suite of custom error classes. This change modernizes our data fetching approach by moving away from raw fetch requests and adopting a structured, type-safe methodology.
Key Changes
Introduced a new Core Library: Added a new directory at jslib/core containing:
Introduced a Entities Library: Added a new directory at jslib/entities containing:
Updated Acknowledgements Module
Misc