Skip to content

Commit 0f168c0

Browse files
authored
fix: enhance translatedVariableDictionary (#17) (#19)
* fix: enhance translatedVariableDictionary Signed-off-by: sunrabbit123 <[email protected]> * fix Signed-off-by: sunrabbit123 <[email protected]> * refactor: enhance translated dictionary Signed-off-by: sunrabbit123 <[email protected]> * fix: typo Signed-off-by: sunrabbit123 <[email protected]> * fix: enhance translatedVariableDictionary Signed-off-by: sunrabbit123 <[email protected]> * fix: test error Signed-off-by: sunrabbit123 <[email protected]> --------- Signed-off-by: sunrabbit123 <[email protected]>
1 parent fbaedb0 commit 0f168c0

13 files changed

+423
-201
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"eslint": "^9.7.0",
1313
"eslint-config-prettier": "^9.1.0",
1414
"eslint-plugin-jsdoc": "^48.7.0",
15+
"hotscript": "^1.0.13",
1516
"prettier": "^3.3.3",
1617
"tsup": "^8.2.3",
1718
"typescript": "^5.5.3",

src/bill/getBillList.spec.ts

+48-25
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,31 @@
11
import { describe, it, expect, vi } from 'vitest';
22
import { getBillList } from './getBillList';
33
import { callOpenApi } from '../functional';
4-
import { translatedVariableDictionary } from '../constant';
4+
import {
5+
,
6+
대표발의자,
7+
대표발의자코드,
8+
법사위상정일,
9+
법사위처리결과,
10+
법사위처리일,
11+
법사위회부일,
12+
본회의심의결과,
13+
소관위,
14+
소관위상정일,
15+
소관위처리결과,
16+
소관위처리일,
17+
소관위코드,
18+
소관위회부일,
19+
위원회심사_처리일,
20+
의결일,
21+
의안ID,
22+
의안명,
23+
의안번호,
24+
의안상세정보_URL,
25+
제안일,
26+
제안자,
27+
제안자구분,
28+
} from '../constant';
529

630
vi.mock('../functional', () => ({
731
callOpenApi: vi.fn(),
@@ -50,30 +74,29 @@ describe('getBillList', () => {
5074

5175
expect(bills).toHaveLength(1);
5276
expect(bills[0]).toEqual({
53-
[translatedVariableDictionary['의안ID']]: 'PRC_K2S4R0S4Q3P0L0K9J0J9I5Q7P2Q4O6',
54-
[translatedVariableDictionary['의안번호']]: '2126707',
55-
[translatedVariableDictionary['대']]: '21',
56-
[translatedVariableDictionary['의안명']]: '문화다양성의 보호와 증진에 관한 법률 일부개정법률안',
57-
[translatedVariableDictionary['제안자']]: '이자스민의원 등 10인',
58-
[translatedVariableDictionary['제안자구분']]: '의원',
59-
[translatedVariableDictionary['제안일']]: '2024-05-29',
60-
[translatedVariableDictionary['소관위코드']]: '9700513',
61-
[translatedVariableDictionary['소관위']]: '문화체육관광위원회',
62-
[translatedVariableDictionary['소관위회부일']]: '2024-05-29',
63-
[translatedVariableDictionary['위원회심사_처리일']]: null,
64-
[translatedVariableDictionary['의안상세정보_URL']]:
65-
'https://likms.assembly.go.kr/bill/billDetail.do?billId=PRC_K2S4R0S4Q3P0L0K9J0J9I5Q7P2Q4O6',
66-
[translatedVariableDictionary['대표발의자']]: '이자스민',
67-
[translatedVariableDictionary['법사위처리결과']]: null,
68-
[translatedVariableDictionary['법사위처리일']]: null,
69-
[translatedVariableDictionary['법사위상정일']]: null,
70-
[translatedVariableDictionary['법사위회부일']]: null,
71-
[translatedVariableDictionary['소관위처리결과']]: null,
72-
[translatedVariableDictionary['소관위처리일']]: null,
73-
[translatedVariableDictionary['소관위상정일']]: null,
74-
[translatedVariableDictionary['대표발의자코드']]: 'SZ51175J',
75-
[translatedVariableDictionary['본회의심의결과']]: '임기만료폐기',
76-
[translatedVariableDictionary['의결일']]: '2024-05-29',
77+
[의안ID]: 'PRC_K2S4R0S4Q3P0L0K9J0J9I5Q7P2Q4O6',
78+
[의안번호]: '2126707',
79+
[]: '21',
80+
[의안명]: '문화다양성의 보호와 증진에 관한 법률 일부개정법률안',
81+
[제안자]: '이자스민의원 등 10인',
82+
[제안자구분]: '의원',
83+
[제안일]: '2024-05-29',
84+
[소관위코드]: '9700513',
85+
[소관위]: '문화체육관광위원회',
86+
[소관위회부일]: '2024-05-29',
87+
[위원회심사_처리일]: null,
88+
[의안상세정보_URL]: 'https://likms.assembly.go.kr/bill/billDetail.do?billId=PRC_K2S4R0S4Q3P0L0K9J0J9I5Q7P2Q4O6',
89+
[대표발의자]: '이자스민',
90+
[법사위처리결과]: null,
91+
[법사위처리일]: null,
92+
[법사위상정일]: null,
93+
[법사위회부일]: null,
94+
[소관위처리결과]: null,
95+
[소관위처리일]: null,
96+
[소관위상정일]: null,
97+
[대표발의자코드]: 'SZ51175J',
98+
[본회의심의결과]: '임기만료폐기',
99+
[의결일]: '2024-05-29',
77100
});
78101
});
79102

src/bill/getBillList.ts

+49-25
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,30 @@
11
import { callOpenApi } from '../functional';
22
import { PaginationType } from '../types/callOpenApi';
3-
import { translatedVariableDictionary } from '../constant';
3+
import {
4+
,
5+
대표발의자,
6+
대표발의자코드,
7+
법사위상정일,
8+
법사위처리결과,
9+
법사위처리일,
10+
법사위회부일,
11+
본회의심의결과,
12+
소관위,
13+
소관위상정일,
14+
소관위처리결과,
15+
소관위처리일,
16+
소관위코드,
17+
소관위회부일,
18+
위원회심사_처리일,
19+
의결일,
20+
의안ID,
21+
의안명,
22+
의안번호,
23+
의안상세정보_URL,
24+
제안일,
25+
제안자,
26+
제안자구분,
27+
} from '../constant';
428

529
// https://open.assembly.go.kr/portal/data/service/selectAPIServicePage.do/O4K6HM0012064I15889
630
// 법률안 심사 및 처리(의안검색) 구현
@@ -51,29 +75,29 @@ type Argument = {
5175
const command = 'TVBPMBILL11';
5276

5377
const transform = (v: Row) => ({
54-
[translatedVariableDictionary['의안ID']]: v.BILL_ID,
55-
[translatedVariableDictionary['의안번호']]: v.BILL_NO,
56-
[translatedVariableDictionary['대']]: v.AGE,
57-
[translatedVariableDictionary['의안명']]: v.BILL_NAME,
58-
[translatedVariableDictionary['제안자']]: v.PROPOSER,
59-
[translatedVariableDictionary['제안자구분']]: v.PROPOSER_KIND,
60-
[translatedVariableDictionary['제안일']]: v.PROPOSE_DT,
61-
[translatedVariableDictionary['소관위코드']]: v.CURR_COMMITTEE_ID,
62-
[translatedVariableDictionary['소관위']]: v.CURR_COMMITTEE,
63-
[translatedVariableDictionary['소관위회부일']]: v.COMMITTEE_DT,
64-
[translatedVariableDictionary['위원회심사_처리일']]: v.COMMITTEE_PROC_DT,
65-
[translatedVariableDictionary['의안상세정보_URL']]: v.LINK_URL,
66-
[translatedVariableDictionary['대표발의자']]: v.RST_PROPOSER,
67-
[translatedVariableDictionary['법사위처리결과']]: v.LAW_PROC_RESULT_CD,
68-
[translatedVariableDictionary['법사위처리일']]: v.LAW_PROC_DT,
69-
[translatedVariableDictionary['법사위상정일']]: v.LAW_PRESENT_DT,
70-
[translatedVariableDictionary['법사위회부일']]: v.LAW_SUBMIT_DT,
71-
[translatedVariableDictionary['소관위처리결과']]: v.CMT_PROC_RESULT_CD,
72-
[translatedVariableDictionary['소관위처리일']]: v.CMT_PROC_DT,
73-
[translatedVariableDictionary['소관위상정일']]: v.CMT_PRESENT_DT,
74-
[translatedVariableDictionary['대표발의자코드']]: v.RST_MONA_CD,
75-
[translatedVariableDictionary['본회의심의결과']]: v.PROC_RESULT_CD,
76-
[translatedVariableDictionary['의결일']]: v.PROC_DT,
78+
[의안ID]: v.BILL_ID,
79+
[의안번호]: v.BILL_NO,
80+
[]: v.AGE,
81+
[의안명]: v.BILL_NAME,
82+
[제안자]: v.PROPOSER,
83+
[제안자구분]: v.PROPOSER_KIND,
84+
[제안일]: v.PROPOSE_DT,
85+
[소관위코드]: v.CURR_COMMITTEE_ID,
86+
[소관위]: v.CURR_COMMITTEE,
87+
[소관위회부일]: v.COMMITTEE_DT,
88+
[위원회심사_처리일]: v.COMMITTEE_PROC_DT,
89+
[의안상세정보_URL]: v.LINK_URL,
90+
[대표발의자]: v.RST_PROPOSER,
91+
[법사위처리결과]: v.LAW_PROC_RESULT_CD,
92+
[법사위처리일]: v.LAW_PROC_DT,
93+
[법사위상정일]: v.LAW_PRESENT_DT,
94+
[법사위회부일]: v.LAW_SUBMIT_DT,
95+
[소관위처리결과]: v.CMT_PROC_RESULT_CD,
96+
[소관위처리일]: v.CMT_PROC_DT,
97+
[소관위상정일]: v.CMT_PRESENT_DT,
98+
[대표발의자코드]: v.RST_MONA_CD,
99+
[본회의심의결과]: v.PROC_RESULT_CD,
100+
[의결일]: v.PROC_DT,
77101
});
78102

79103
/**
@@ -96,5 +120,5 @@ export const getBillList = async ({ page, take, ...rest }: Argument) => {
96120
PROC_DT: rest.resolutionDate,
97121
}
98122
);
99-
return res.TVBPMBILL11[1].row.map(transform);
123+
return res[command][1].row.map(transform);
100124
};

src/bill/index.spec.ts

-9
This file was deleted.

src/constant/index.ts

+1-71
Original file line numberDiff line numberDiff line change
@@ -1,71 +1 @@
1-
/**
2-
* @description if you modify this properties, you should upgrade the minor version because it will be a break changes
3-
* @ignore `~명`과 같은 이름을 지칭하는 변수의 경우 `Name`으로 끝나야함, 예외적으로 구분명은 `Division`으로 끝남
4-
* @ignore `~코드`와 같은 이름을 지칭하는 변수의 경우 `Code`로 끝나야함
5-
* @ignore `~일자`와 같은 이름을 지칭하는 변수의 경우 `Date`로 끝나야함
6-
* @ignore `~구분`과 같은 이름을 지칭하는 변수의 경우 `Division`으로 끝나야함, 만약 `구분명`이라면 `Division`을 사용
7-
* @ignore `~처리`과 같은 이름을 지칭하는 변수의 경우 `Process`으로 끝나야함
8-
* @ignore `~상정`과 같은 이름을 지칭하는 변수의 경우 `Present`으로 끝나야함
9-
* @ignore `~회부`과 같은 이름을 지칭하는 변수의 경우 `Submit`으로 끝나야함
10-
* @ignore `~의결`과 같은 이름을 지칭하는 변수의 경우 `Resolution`으로 끝나야함
11-
*/
12-
export const translatedVariableDictionary = {
13-
국회의원코드: 'lawmakerCode',
14-
국회의원명: 'lawmakerName',
15-
국회의원한자명: 'lawmakerChineseName',
16-
국회의원영문명: 'lawmakerEnglishName',
17-
생일구분코드: 'birthdayDivisionCode',
18-
생일일자: 'birthday',
19-
직책명: 'dutyName',
20-
정당명: 'politicalPartyName',
21-
선거구명: 'electoralDistrictName',
22-
선거구구분명: 'electoralDistrictDivisionName',
23-
위원회명: 'committeeName',
24-
소속위원회명: 'belongingCommitteeName',
25-
재선구분명: 'reElectionClassificationDivision',
26-
당선대수: 'electionCongress',
27-
성별: 'gender',
28-
전화번호: 'phoneNumber',
29-
국회의원이메일주소: 'email',
30-
국회의원홈페이지URL: 'homepage',
31-
보좌관: 'aide',
32-
비서관: 'seniorSecretary',
33-
비서: 'secretary',
34-
약력: 'profile',
35-
사무실호실: 'officeRoom',
36-
사진: 'picture',
37-
38-
// 의안 관련 추가
39-
의안ID: 'billID',
40-
의안번호: 'billNumber',
41-
: 'age',
42-
의안명: 'billName',
43-
제안자: 'proposer',
44-
제안자구분: 'proposerDivision',
45-
제안일: 'proposeDate',
46-
소관위코드: 'jurisdictionCommitteeCode',
47-
소관위: 'jurisdictionCommittee',
48-
소관위회부일: 'jurisdictionCommitteeSubmitDate',
49-
위원회심사_처리일: 'committeeReviewProcessDate',
50-
의안상세정보_URL: 'billDetailUrl',
51-
대표발의자: 'leadProposer',
52-
법사위처리결과: 'legislationAndJudiciaryCommitteeProcessResult',
53-
법사위처리일: 'legislationAndJudiciaryCommitteeProcessDate',
54-
법사위상정일: 'legislationAndJudiciaryCommitteePresentDate',
55-
법사위회부일: 'legislationAndJudiciaryCommitteeSubmitDate',
56-
소관위처리결과: 'jurisdictionCommitteeProcessResult',
57-
소관위처리일: 'jurisdictionCommitteeProcessDate',
58-
소관위상정일: 'jurisdictionCommitteePresentDate',
59-
대표발의자코드: 'leadProposerCode',
60-
본회의심의결과: 'plenarySessionReviewResult',
61-
의결일: 'resolutionDate',
62-
일정_종류: 'scheduleType',
63-
일정_내용: 'scheduleContent',
64-
일정_일자: 'scheduleDate',
65-
일정_시간: 'scheduleTime',
66-
회의_구분: 'conferenceDivision',
67-
회의_회기: 'conferenceSession',
68-
회의_차수: 'conferenceDegree',
69-
행사_주체자: 'eventInstitution',
70-
행사_장소: 'eventPlace',
71-
} as const;
1+
export * from './translatedVariableDictionary';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
/**
2+
* @description if you modify this properties, you should upgrade the minor version because it will be a break changes
3+
*/
4+
5+
import { variable } from './variable';
6+
7+
const 국회의원 = 'lawmaker';
8+
const 코드 = 'code';
9+
const = 'name';
10+
const 한자명 = variable(`chinese`, );
11+
const 영문명 = variable(`english`, );
12+
const 구분 = 'division';
13+
const 구분명 = `${구분}`;
14+
const 생일 = 'birthday';
15+
const 직책 = 'duty';
16+
const 정당 = 'politicalParty';
17+
const 선거구 = 'electoralDistrict';
18+
const 위원회 = 'committee';
19+
const 소속위원회 = 'belongingCommittee';
20+
const 선거 = 'election';
21+
const 재선 = variable(`re`, 선거);
22+
const 의안 = `bill`;
23+
const 번호 = 'number';
24+
const 소관위원회 = variable(`jurisdiction`, 위원회);
25+
const 법제사법위원회 = variable(`legislationAndJudiciary`, 위원회);
26+
const 처리 = 'process';
27+
const 일자 = `date`;
28+
const 처리결과 = variable(처리, `result`);
29+
const 처리일 = variable(처리, 일자);
30+
const 회부일 = variable(`submit`, 일자);
31+
const 상정일 = variable(`present`, 일자);
32+
33+
const 일정 = 'schedule';
34+
const 시간 = 'time';
35+
const 회의 = 'conference';
36+
const 행사 = 'event';
37+
38+
export const 국회의원코드 = variable(국회의원, 코드);
39+
export const 국회의원명 = variable(국회의원, );
40+
export const 국회의원한자명 = variable(국회의원, 한자명);
41+
export const 국회의원영문명 = variable(국회의원, 영문명);
42+
export const 생일구분코드 = variable(생일, 구분, 코드);
43+
export const 생일일자 = variable(생일);
44+
export const 직책명 = variable(직책, );
45+
export const 정당명 = variable(정당, );
46+
export const 선거구명 = variable(선거구, );
47+
export const 선거구구분명 = variable(선거구, 구분명);
48+
export const 위원회명 = variable(위원회, );
49+
export const 소속위원회명 = variable(소속위원회, );
50+
export const 재선구분명 = variable(재선, 구분명);
51+
export const 당선대수 = variable(선거, 'congress');
52+
export const 성별 = 'gender';
53+
export const 전화번호 = 'phoneNumber';
54+
export const 국회의원이메일주소 = 'email';
55+
export const 국회의원홈페이지URL = 'homepage';
56+
export const 보좌관 = 'aide';
57+
export const 비서관 = 'seniorSecretary';
58+
export const 비서 = 'secretary';
59+
export const 약력 = 'profile';
60+
export const 사무실호실 = 'officeRoom';
61+
export const 사진 = 'picture';
62+
63+
export const 의안ID = variable(의안, 'ID');
64+
export const 의안번호 = variable(의안, 번호);
65+
export const = 'age';
66+
export const 의안명 = variable(의안, );
67+
export const 제안자 = variable('proposer');
68+
export const 대표발의자 = variable(`lead`, 제안자);
69+
export const 제안자구분 = variable(제안자, 구분);
70+
export const 제안일 = 'proposeDate';
71+
export const 소관위코드 = variable(소관위원회, 코드);
72+
export const 소관위 = variable(소관위원회);
73+
export const 소관위회부일 = variable(소관위원회, 회부일);
74+
export const 위원회심사_처리일 = variable(위원회, 'review', 처리일);
75+
export const 의안상세정보_URL = variable(의안, 'detailUrl');
76+
export const 법사위처리결과 = variable(법제사법위원회, 처리결과);
77+
export const 법사위처리일 = variable(법제사법위원회, 처리일);
78+
export const 법사위상정일 = variable(법제사법위원회, 상정일);
79+
export const 법사위회부일 = variable(법제사법위원회, 회부일);
80+
export const 소관위처리결과 = variable(소관위원회, 처리결과);
81+
export const 소관위처리일 = variable(소관위원회, 처리일);
82+
export const 소관위상정일 = variable(소관위원회, 상정일);
83+
export const 대표발의자코드 = variable(대표발의자, 코드);
84+
export const 본회의심의결과 = 'plenarySessionReviewResult';
85+
export const 의결일 = 'resolutionDate';
86+
87+
export const 일정_종류 = variable(일정, 'type');
88+
export const 일정_내용 = variable(일정, 'content');
89+
export const 일정_일자 = variable(일정, 일자);
90+
export const 일정_시간 = variable(일정, 시간);
91+
export const 회의_구분 = variable(회의, 구분);
92+
export const 회의_회기 = variable(회의, 'session');
93+
export const 회의_차수 = variable(회의, 'degree');
94+
export const 행사_주체자 = variable(행사, 'institution');
95+
export const 행사_장소 = variable(행사, 'place');

0 commit comments

Comments
 (0)