fix: relax school response schema for sparse NEIS rows - #12
Draft
injoon5 wants to merge 1 commit into
Draft
Conversation
NEIS omits contact and address fields on branch schools, overseas Korean schools, and schools under construction. Partial searches like 양 return mixed result sets, so response validation failed even though the upstream data was valid. Make ENG_SCHUL_NM, FOND_SC_NM, ORG_RDNZC, ORG_RDNMA, ORG_RDNDA, HMPG_ADRES, and ORG_FAXNO optional. Add regression tests for 양 and 중학 searches. Co-authored-by: Injoon Oh <injoon5@icloud.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
GET /school?schoolname=양returned 400 VALIDATION_ERROR even though NEIS returned valid data. Elysia response validation rejected rows missing fields our schema marked as required.Root cause
NEIS omits many contact/address fields depending on school type:
HS_SC_NMHS_GNRL_BUSNS_SC_NMSPCLY_PURPS_HS_ORD_NMHMPG_ADRESORG_RDNDAORG_FAXNOORG_RDNZC/ORG_RDNMAENG_SCHUL_NMFOND_SC_NMPartial name searches return mixed school types, so one sparse row fails validation for the entire response.
Fix
Make the above NEIS-optional fields optional in
SchoolInfoRowSchemaand mirror in@timeforschool/clienttypes.Tests
Added regression coverage for:
/school?schoolname=양/school?schoolname=중학Verification
npm run buildnpm testnpm run openapi:syncnpm run build:docs