import React, {useState, useEffect, useCallback, useRef, PureComponent} from 'react'; import { Link, useLocation } from 'react-router-dom'; import {BarChart, Bar, Rectangle, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer} from 'recharts'; import Switch from '@mui/material/Switch'; import * as EgovNet from 'api/egovFetch'; import URL from 'constants/url'; import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavAdmin'; import { itemIdxByPage } from 'utils/calc'; import EgovPaging from 'components/EgovPaging'; function ApiKeys(props) { // console.group("EgovAdminPrivacyList"); // console.log("[Start] EgovAdminPrivacyList ------------------------------"); // console.log("EgovAdminPrivacyList [props] : ", props); const location = useLocation(); // console.log("EgovAdminPrivacyList [location] : ", location); // eslint-disable-next-line no-unused-vars const [searchCondition, setSearchCondition] = useState(location.state?.searchCondition || { pageIndex: 1, searchCnd: '0', searchWrd: '' }); const [paginationInfo, setPaginationInfo] = useState({}); const [chartData, setChartData] = useState([]); const [user_id, setuser_id] = useState([]); const [listTag, setListTag] = useState([]); // const label = { inputProps: { 'aria-label': '사용여부' } }; const retrieveList = useCallback((srchCnd) => { // console.groupCollapsed("EgovAdminUsageList.retrieveList()"); const retrieveListURL = '/admin/standards/api-keys'; const requestOptions = { method: "POST", headers: { 'Content-type': 'application/json', }, body: JSON.stringify(srchCnd) } EgovNet.requestFetch( retrieveListURL, requestOptions, (resp) => { setPaginationInfo(resp.result.paginationInfo); let mutListTag = []; listTag.push(

데이터가 없습니다.

); // 게시판 목록 초기값 const resultCnt = parseInt(resp.result.resultCnt); const currentPageNo = resp.result.paginationInfo.pageIndex; const pageSize = resp.result.paginationInfo.rowCnt; const startIndex = (currentPageNo - 1) * pageSize; const endIndex = Math.min(startIndex + pageSize, resultCnt); // 리스트 항목 구성 for (let index = startIndex; index < endIndex; index++) { const listIdx = itemIdxByPage(resultCnt, currentPageNo, 0, index); // pageSize 로 넣으면 listIdx값이 2배씩 줄어서 0으로 수정 const item = resp.result.resultList[index]; mutListTag.push(
{item.userId}
handleApiKeyChart(item)}>{item.apiKey}
{item.startDt} ~ {item.endDt}
{item.idntyYn === 'Y' ? handleSwitchToggle(item)} /> : handleSwitchToggle(item)} />}
); } setListTag(mutListTag); }, function (resp) { console.log("err response : ", resp); } ); // console.groupEnd("EgovAdminPrivacyList.retrieveList()"); },[listTag]); const CustomTooltip = ({ active, payload, label }) => { if (active && payload && payload.length) { return (

API 요청 [{user_id}]

{`${label} : ${payload[0].value}`}회

); } return null; }; const handleSwitchToggle = async (item) => { try { const updateApiEndpoint = '/admin/standards/api-keys/api-update'; const requestOptions = { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(item), }; const response = await EgovNet.requestFetch(updateApiEndpoint, requestOptions); const data = await response.json(); if (response.ok) { console.log('Data updated successfully:', data); return { success: true, data }; } else { console.error('Failed to update data:', data); return { success: false, error: data }; } } catch (error) { console.error('Error during data update:', error); return { success: false, error }; } }; const handleApiKeyChart = (item) => { try { const updateApiEndpoint = '/admin/standards/api-keys/api-daily-chart'; const requestOptions = { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(item), }; EgovNet.requestFetch( updateApiEndpoint, requestOptions, (resp) => { let chartDataArray = resp.result.resultList.map((item, index) => ({ logdt: item[0], // Assuming logCnt is the x-axis data "API 요청수": item[1], // Assuming menuTitle is the y-axis data })); setChartData(chartDataArray); // item.userId 값 넣기 console.log(`User ID: ${item.userId}`); setuser_id(item.userId); }, function (resp) { console.log("err response : ", resp); } ); } catch (error) { console.error('Error during data update:', error); return { success: false, error }; } }; useEffect(() => { retrieveList(searchCondition); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); // console.log("------------------------------EgovAdminPrivacyList [End]"); // console.groupEnd("EgovAdminPrivacyList"); return (
{/* */}
  • Home
  • 사이트관리
  • 건설기준 관리
  • API KEY 관리
{/* */}
{/* */} {/* */}
{/* */}

API KEY 관리

{/* */}
사용자 발급키 승인기간 승인여부
{listTag}
{/* */}
{/* */} { retrieveList({ ...searchCondition, pageIndex: passedPage }) //, searchCnd: cndRef.current.value, searchWrd: wrdRef.current.value }} /> {/* */}
} /> } />
{/* */}
); } export default ApiKeys;