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

UIQM-697: Field 008: Validate the length of subfields. Add backslashes if the length of a subfield of field 008 is shorter, if longer - cut off the extra characters. #727

Merged
merged 4 commits into from
Sep 18, 2024

Conversation

Dmytro-Melnyshyn
Copy link
Contributor

@Dmytro-Melnyshyn Dmytro-Melnyshyn commented Sep 17, 2024

Purpose

  1. Avoid getting an error message from the backend validation due to incorrect length of 008 subfields.
  2. Show inline error messages for field 008 if the subfield length is incorrect.

Approach

  1. Add backslashes if the length of a subfield is shorter, if longer - trim the extra characters.
  2. Validate the length of subfields.

Issues

UIQM-697

Screencast

2024-09-17_14h55_53.mp4

TODOS and Open Questions

Learning

Pre-Merge Checklist

Before merging this PR, please go through the following list and take appropriate actions.

  • I've added appropriate record to the CHANGELOG.md
  • Does this PR meet or exceed the expected quality standards?
    • Code coverage on new code is 80% or greater
    • Duplications on new code is 3% or less
    • There are no major code smells or security issues
  • Does this introduce breaking changes?
    • If any API-related changes - okapi interfaces and permissions are reviewed/changed correspondingly
    • There are no breaking changes in this PR.

If there are breaking changes, please STOP and consider the following:

  • What other modules will these changes impact?
  • Do JIRAs exist to update the impacted modules?
    • If not, please create them
    • Do they contain the appropriate level of detail? Which endpoints/schemas changed, etc.
    • Do they have all they appropriate links to blocked/related issues?
  • Are the JIRAs under active development?
    • If not, contact the project's PO and make sure they're aware of the urgency.
  • Do PRs exist for these changes?
    • If so, have they been approved?

Ideally all of the PRs involved in breaking changes would be merged in the same day to avoid breaking the folio-testing environment. Communication is paramount if that is to be achieved, especially as the number of intermodule and inter-team dependencies increase.

While it's helpful for reviewers to help identify potential problems, ensuring that it's safe to merge is ultimately the responsibility of the PR assignee.

…s if the length of a subfield of field 008 is shorter, if longer - cut off the extra characters.
@Dmytro-Melnyshyn Dmytro-Melnyshyn changed the title UIQM-697: Add backslashes if the length of a subfield of field 008 is shorter, if longer - cut off the extra characters. UIQM-697: Field 008: Validate the length of subfields. Add backslashes if the length of a subfield of field 008 is shorter, if longer - cut off the extra characters. Sep 17, 2024
@Dmytro-Melnyshyn Dmytro-Melnyshyn requested review from BogdanDenis and a team September 17, 2024 10:48
Copy link

github-actions bot commented Sep 17, 2024

Jest Unit Test Statistics

    1 files  ±0    47 suites  ±0   2m 59s ⏱️ +3s
469 tests +3  469 ✔️ +3  0 💤 ±0  0 ±0 
472 runs  +3  472 ✔️ +3  0 💤 ±0  0 ±0 

Results for commit a10513e. ± Comparison against base commit 6a773ae.

♻️ This comment has been updated with latest results.

const runBackEndValidation = useCallback(async (marcRecords) => {
// if the length of a subfield of field 008 is shorter, then add backslashes,
// if longer, then cut off the extra characters.
const fillIn008FieldBlanks = useCallback((marcRecords) => {
Copy link
Contributor

Choose a reason for hiding this comment

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

Let's move this out to prepareForSubmit in Edit/Create/Derive wrappers. This hook should assume that the provided data is what is going to be sent to BE to save, so it should validate this data without changes

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This needs to be done only for BE validation. marcRecords for BE should contain the correct length of field 008 subfields to avoid 400 error, but FE shouldn't, in order to catch errors and display inline messages.

If we put this functionality in prepareForSubmit for BE and FE, we will get the correct length of subfields and will not see inline errors.

@artem-blazhko artem-blazhko requested a review from a team September 18, 2024 08:33
Copy link

@Dmytro-Melnyshyn Dmytro-Melnyshyn merged commit 0cbc1ec into master Sep 18, 2024
5 checks passed
@Dmytro-Melnyshyn Dmytro-Melnyshyn deleted the UIQM-697 branch September 18, 2024 10:55
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