From 1de980a7eb9c746aade1d1942f36c7e370dbfac2 Mon Sep 17 00:00:00 2001 From: Sangwook Park <41150708+sw0501@users.noreply.github.com> Date: Thu, 9 Nov 2023 18:13:56 +0900 Subject: [PATCH] Backend (#167) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Feat: 철도 관련 정보 엑셀 추가 철도 관련 정보 저장된 엑셀 파일 추가 및 MySQL 연결용 js 파일 추가 * Feat: API 추가 * Modify: VM 서버 올리기 위해서 빌드 코드 주석처리 빌드 코드 주석처리 및 창립제 발표 자료 추가 * Modify: Port 번호 변경 Port 번호 변경 * Modify: gitigonore 수정, GPS 데이터 삭제, 지하철 명 검색 API 추가 PPT 파일 gitignore 추가 GPS.json 파일 삭제 지하철 명 검색 시 해당 번호 및 철도 번호 추가 * Feat: DB 연결 코드 추가, 외부 접속용 cors 추가 MySQL 연결 코드 DBconnect.js 추가 외부 IP 접속용 cors 추가 * Feat: Test 파일 삭제 및 MySQL 연동 지하철 테스트 json 파일 및 test.js 파일 삭제 MySQL 연동 코드 작성 * Feat: package.json 추가 express, mysql, cors, path 모듈 추가 * Feat: Cors IP 추가 localhost:3000 Cors에 추가 * Feat: MySQL 연동 및 지하철 정보 API 추가 VM MySQL 연동 및 지하철 정보 API 추가 * Feat: 버스 도착 예정 시간 분/초 파싱 및 API 최신화 버스 도착 예정 시간 min / sec로 response에서 제공 사용하지 않는 API 및 수정된 URL로 REST API 최신화 지하철 역 선택 시 좌표 response 지하철 정보 배열로 response Fix: #42. #55, #62 * Modify: congestion 제거 response에서 congestion 값을 제공을 안해서 제거 * Modify: API 수정 및 SQL DUMP 파일 추가 API 수정 지하철역 Dump 파일 추가 * Modify: MySQL 한글 오류 수정 MySQL 'utf8mb4_0900_ai_ci' 오류 수정 * Test: MySQL 오류 확인 위해서 원상태로 복구 * Modify: .SQL 파일 헤더 추가 * Modify: .SQL 파일 헤더 변경 * Modify: .SQL 파일 헤더 변경 * Modify: .SQL 파일 헤더 변경 * Modify: .SQL 파일 헤더 변경 * Modify: Front 작업용 backend.js 수정 SQL 데이터 옮기는 건 추후에 작업: * Modify: VM용 쿼리문 구조 변경 * Feat: 휠체어 리프트 위치 API 추가 저상버스 도착 정보 주석처리 SQL문 VM용으로 수정 * Feat: 버스 타이머 기능 추가 Min, Sec 분할하여 제공 첫차, 막차, 분, 초 없는 예외 케이스 처리 * Feat: 휠체어리프트 이동동선, 엘리베이터 위치, 이동동선 API 추가 휠체어리프트 이동동선 API 추가 엘리베이터 위치 API 추가 엘리베이터 이동동선 API 추가 * Modify: VM test DB 사용 코드 변경 VM에 있는 'test' DB 데이터 사용 코드 변경 * Feat: TransferMove API 추가 환승역 이동동선 API 추가 환승역 아닌 경우 Error 코드 추가 * Modify: backend.js MySQL 테스트 코드 제거 backend.js MySQL 테스트 코드 제거 * Feat: Cors 서버 주소 추가 Cors 서버 주소 추가 * Feat: transferList, transferInfo, convenience API 구현 transferList 환승역 목록 제공 transferInfo 환승 이동 경로 제공 convenience 편의정보 시설 위치 및 상세정보 제공 * Modify: 휠체어리프트 이동경로별로 구분하여 response 휠체어리프트 이동경로별로 구분하여 response * Modify: 엘리베이터 이동경로 구분하여 response 엘리베이터 이동경로 구분하여 response * Modify: transferMove/transferList API 수정 transferMove/transferList API 환승 전 역 방면, 환승 후 역 방면 역 리스트 안내 * Fix: subway/transferMove/transferList 에러 수정 subway/transferMove/transferList 다른 철도의 같은 호선, 같은 역 코드를 지닌 지하철역 뜨지 않게 수정 * Fix: transferMove/transferInfo 에러 수정 transferMove/transferInfo 상행 하행 구분하여 전달 * Fix: error status code 변경 기존 404에서 500 으로 변경 * Fix: 환승 이동경로 API 변경 환승 이동경로 API 변경 * Fix: transferMove/transferInfo API 에러 수정 transferMove/transferInfo API 2호선 상행 하행 기준 다른 부분 수정 완료 * Modify: DB csv파일 UTF-8로 변경 DB csv파일 UTF-8로 변경하여 저장 * Feat: 엘리베이터 이동동선 추가 엘리베이터 이동동선 추가 및 NULL 에러 처리 * Fix: stationName API 오류 수정 stationName API 오류 수정 * Feat: 엘리베이터, 휠체어 리프트 이동동선 API 기능 추가 엘리베이터, 휠체어 리프트 이동동선 API 방면 알려주는 기능 추가 * Fix: ElevatorMove API 에러 수정 length-2인 이동 설명에서 ' 방면'을 기준으로 split하여 방면 response * Feat: SQL 변경 중 * CSV 파일 이름 수정 * Modify: cors 사용 취소 cors 사용 취소 * Test: sql 테스트 코드 * Modify: SQL 문 수정 * Fix: Attribute 한글로 변경 * Fix: 기타 API들 SQL 수정 * Fix: API SQL 수정 API SQL 수정 * Modify: server.js cors 오타 수정 * Modfiy: cors 옵션 적용 cors 옵션 적용 * Modify: 교통약자 도우미 테이블과 조인하여 목록 제공 * Fix: transferList API 오류 수정 * Feat: subway/stationInfo API 기능 추가 영어 이름 및 외부 코드 추가 response * Modify: liftMove API 수정 * Modify: liftMove API 수정 승강장 기준으로 direction 필요 * Add: image 폴더 및 docs 폴더 추가 image 폴더에 Readme.md에 사용할 이미지 추가 docs파일에 발표 자료 및 시연 영상 추가 * Modify: 발표자료 영상 제거 발표자료 영상 제거 * Modify: cors IP 수정 * Feat: TypeScript 환경설정 파일 추가 및 DB 수정 TypeScript 환경설정 파일 추가 DB 전체 입력 * Feat: 서버 포트 변경 * Feat: request 의존성 추가 * Feat: xml-js 의존성 추가 * Modify: package-lock.json 파일 conflict 수정 * Modify: package-lock.json conflict 수정 2 * Feat: DB 커넥션 방식 변경 * Modify: 프론트 빌드 파일 배포 * Feat: Typescript 변환 * Feat: TS 변환 및 CORS 추가 * Modify: Frontend PR 시 빌드 과정 추가 의존성 설치 및 빌드 과정 추가 * Feat: CI/CD 수정 올바른 경로의 git 에서 변경사항 가져오도록 수정 * Modify: gitignore 수정 KEY 디렉토리 추가 * Modify: CI/CD 수정 git token 사용하지 않고 사용하는 것으로 수정 * Test: Github Action PR 분기점 테스트 * Test: yml 수정 * Feat: json 파일 디렉토리 경로 수정 * Modify: CI/CD 롤백 * Modify: yml 파일 수정 * Fix: 오타 수정 * Feat: Typescript 변환 중 * Feat: Bus router TS 변환 완료 * Feat: interface 추가 및 Bus 라우터 TS 변환 완료 * Feat: Bus, Subway 라우터 Typescript 변환 * 프로젝트 코드 JS -> TS로 변경 * Feat: sendFile 경로 변경 * Feat: CI/CD 폴더 변경 * Feat: ts npm 의존성 추가 * Feat: TS 코드 수정 및 yml 파일 변경 * Modify: yml 파일 변경 * confilct TEST * Modify: yml 수정 * Feat: CI/CD PR 분기점 분류 적용 * Modify: yml 파일 수정 * Modify: yml 파일 수정 * Modify: yml 파일 수정 * Modify: yml 파일 수정 * Modify: yml 파일 * Modify: yml 파일 * Modify: yml 파일 * Modify: yml 파일 * Modify: yml 파일 * Modify: yml 파일 * Modify: yml 파일 * Modify: yml 수정 * Modify: yml 수정 * Modify: yml 수정 * Feat: Navigation API 개발 중 * Test: CI/CD 테스트 --------- Co-authored-by: 박규태 <79373803+KyuTae98@users.noreply.github.com> --- BackendJS/BackendTS/routes/navigation.js | 2 +- BackendTS/routes/navigation.ts | 22 ++++++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/BackendJS/BackendTS/routes/navigation.js b/BackendJS/BackendTS/routes/navigation.js index d89fdf6..15322b7 100644 --- a/BackendJS/BackendTS/routes/navigation.js +++ b/BackendJS/BackendTS/routes/navigation.js @@ -50,7 +50,7 @@ router.get('/bybus/:startX/:startY/:endX/:endY', (req, res) => __awaiter(void 0, return a.elements.pathList.elements.length - b.elements.pathList.elements.length }) */ - console.log(navigationInfo); + console.log(navigationInfo.length); return res.status(200).json({ body: navigationInfo }); diff --git a/BackendTS/routes/navigation.ts b/BackendTS/routes/navigation.ts index d076077..90921f9 100644 --- a/BackendTS/routes/navigation.ts +++ b/BackendTS/routes/navigation.ts @@ -32,7 +32,21 @@ router.get('/bybus/:startX/:startY/:endX/:endY', async(req:Request, res:Response }) - const navigationInfo:Array = JSON.parse(parseJSON).elements[0].elements[2].elements; + const navigationList:any = JSON.parse(parseJSON).elements[0].elements[2].elements; + + const navigationInfo = []; + navigationList.forEach(info => { + const tempInfo = { + distance: "", + pathList: [], + time: "" + }; + tempInfo.distance = info.elements[0].elements[0].text; + tempInfo.time = info.elements[info.elements.length-1].elements[0].text; + info.elements.forEach(pathInfo=>{ + //list parsing + }) + }); /* //정렬 기준 (1. 환승 경로 개수 / 2. 이동 시간) @@ -45,10 +59,10 @@ router.get('/bybus/:startX/:startY/:endX/:endY', async(req:Request, res:Response return a.elements.pathList.elements.length - b.elements.pathList.elements.length }) */ - console.log(navigationInfo); + console.log(navigationList.length); return res.status(200).json({ - body: navigationInfo + body: navigationList }) }); } @@ -58,7 +72,7 @@ router.get('/bybus/:startX/:startY/:endX/:endY', async(req:Request, res:Response error: e, errorString: e.toString(), }); - } + } }) router.get('/bysubway', async(req:Request,res:Response)=>{