-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgetBillList.ts
113 lines (105 loc) · 4.6 KB
/
getBillList.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
import { callOpenApi } from '../functional';
import { PaginationType } from '../types/callOpenApi';
import { translatedVariableDictionary } from '../constant';
// https://open.assembly.go.kr/portal/data/service/selectAPIServicePage.do/O4K6HM0012064I15889
// 법률안 심사 및 처리(의안검색) 구현
interface Bill {
BILL_ID: string; // 의안ID
BILL_NO: string; // 의안번호
AGE: string; // 대
BILL_NAME: string; // 의안명(한글)
PROPOSER: string; // 제안자
PROPOSER_KIND: string; // 제안자구분
PROPOSE_DT: string; // 제안일
CURR_COMMITTEE_ID: string; // 소관위코드
CURR_COMMITTEE: string; // 소관위
COMMITTEE_DT: string; // 소관위회부일
COMMITTEE_PROC_DT: string; // 위원회심사_처리일
LINK_URL: string; // 의안상세정보_URL
RST_PROPOSER: string; // 대표발의자
LAW_PROC_RESULT_CD: string; // 법사위처리결과
LAW_PROC_DT: string; // 법사위처리일
LAW_PRESENT_DT: string; // 법사위상정일
LAW_SUBMIT_DT: string; // 법사위회부일
CMT_PROC_RESULT_CD: string; // 소관위처리결과
CMT_PROC_DT: string; // 소관위처리일
CMT_PRESENT_DT: string; // 소관위상정일
RST_MONA_CD: string; // 대표발의자코드
PROC_RESULT_CD: string; // 본회의심의결과
PROC_DT: string; // 의결일
}
type Row = {
[k in keyof Bill]: Bill[k] | null;
};
type Argument = {
BILL_ID?: string; // 의안ID, 예시: BILL_ID='PRC_Z2Z1Z0Z3X2L4M0H9A2V6K5R0V7P2H1'
BILL_NO?: string; // 의안번호, 예시: BILL_NO='2114286'
AGE?: string; // 대, 예시: AGE='21'
BILL_NAME?: string; // 의안명(한글), 예시: BILL_NAME='의안명(한글) 검색어' (예시) BILL_NAME="80년
PROPOSER?: string; // 제안자, 예시: PROPOSER='제안자 검색어' (예시) PROPOSER=2012년
PROPOSER_KIND?: string; // 제안자구분, 예시: PROPOSER_KIND='정부'
CURR_COMMITTEE_ID?: string; // 소관위코드, 예시: CURR_COMMITTEE_ID='B002368'
CURR_COMMITTEE?: string; // 소관위, 예시: CURR_COMMITTEE='소관위 검색어' (예시) CURR_COMMITTEE=2002
PROC_RESULT_CD?: string; // 본회의심의결과, 예시: PROC_RESULT_CD='회기불계속폐기'
PROC_DT?: string; // 의결일, 예시: PROC_DT='2021-12-31'
} & PaginationType;
const command = 'TVBPMBILL11';
const transform = (v: Row) => ({
[translatedVariableDictionary['의안ID']]: v.BILL_ID,
[translatedVariableDictionary['의안번호']]: v.BILL_NO,
[translatedVariableDictionary['대']]: v.AGE,
[translatedVariableDictionary['의안명']]: v.BILL_NAME,
[translatedVariableDictionary['제안자']]: v.PROPOSER,
[translatedVariableDictionary['제안자구분']]: v.PROPOSER_KIND,
[translatedVariableDictionary['제안일']]: v.PROPOSE_DT,
[translatedVariableDictionary['소관위코드']]: v.CURR_COMMITTEE_ID,
[translatedVariableDictionary['소관위']]: v.CURR_COMMITTEE,
[translatedVariableDictionary['소관위회부일']]: v.COMMITTEE_DT,
[translatedVariableDictionary['위원회심사_처리일']]: v.COMMITTEE_PROC_DT,
[translatedVariableDictionary['의안상세정보_URL']]: v.LINK_URL,
[translatedVariableDictionary['대표발의자']]: v.RST_PROPOSER,
[translatedVariableDictionary['법사위처리결과']]: v.LAW_PROC_RESULT_CD,
[translatedVariableDictionary['법사위처리일']]: v.LAW_PROC_DT,
[translatedVariableDictionary['법사위상정일']]: v.LAW_PRESENT_DT,
[translatedVariableDictionary['법사위회부일']]: v.LAW_SUBMIT_DT,
[translatedVariableDictionary['소관위처리결과']]: v.CMT_PROC_RESULT_CD,
[translatedVariableDictionary['소관위처리일']]: v.CMT_PROC_DT,
[translatedVariableDictionary['소관위상정일']]: v.CMT_PRESENT_DT,
[translatedVariableDictionary['대표발의자코드']]: v.RST_MONA_CD,
[translatedVariableDictionary['본회의심의결과']]: v.PROC_RESULT_CD,
[translatedVariableDictionary['의결일']]: v.PROC_DT,
});
/**
* @description implementation of 법률안 심사 및 처리 API
*/
export const getBillList = async ({ page, take, ...rest }: Argument) => {
const {
BILL_ID: BILL_ID,
BILL_NO: BILL_NO,
AGE: AGE,
BILL_NAME: BILL_NAME,
PROPOSER: PROPOSER,
PROPOSER_KIND: PROPOSER_KIND,
CURR_COMMITTEE_ID: CURR_COMMITTEE_ID,
CURR_COMMITTEE: CURR_COMMITTEE,
PROC_RESULT_CD: PROC_RESULT_CD,
PROC_DT: PROC_DT,
} = rest;
const res = await callOpenApi<typeof command, Row>(
command,
{ page, take },
{
BILL_ID,
BILL_NO,
AGE,
BILL_NAME,
PROPOSER,
PROPOSER_KIND,
CURR_COMMITTEE_ID,
CURR_COMMITTEE,
PROC_RESULT_CD,
PROC_DT,
}
);
return res.TVBPMBILL11[1].row.map(transform);
};