Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API 호출 시 MongoDB 업데이트 #53

Merged
merged 22 commits into from
Nov 13, 2023
Merged

API 호출 시 MongoDB 업데이트 #53

merged 22 commits into from
Nov 13, 2023

Conversation

keonly
Copy link
Contributor

@keonly keonly commented Nov 13, 2023

Resolves #48

@keonly keonly changed the title #48 API 호출 시 MongoDB 업데이트 API 호출 시 MongoDB 업데이트 Nov 13, 2023
@keonly keonly marked this pull request as ready for review November 13, 2023 12:27
@keonly keonly requested review from Re-st and withSang November 13, 2023 12:30
Councilor(name="김철수", party="국민의힘"),
Councilor(name="김영희", party="더불어민주당"),
Councilor(name="김철수", jdName="국민의힘"),
Councilor(name="김영희", jdName="Birthday Party"),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

😄

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

생일이당이라뇨 ㅋㅋㅋ

Copy link
Member

@withSang withSang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

좋아보입니다! DB에도 잘 들어가는군요 ㄷㄷㄷ

@keonly
Copy link
Contributor Author

keonly commented Nov 13, 2023

변경사항

1. 필드명 통일

  • 기존 API에서는 jdName, 스크랩 함수에서는 party로 사용하던 필드명을 jdName으로 통일하였습니다.

2. CouncilorCouncilType 타입 정의 이동

  • DB 연동을 목적으로 사용하는 타입이라고 판단하여 기존 scrap/utils/types.py에 정의되어 있던 것을 db/types.py로 이동하였습니다.

변경된 API 사용법

당선자 API

usage: python -m API.elected [-h] [--drop-columns DROP_COLUMNS] [--save-method {excel,mongo}] sgTypecode sgIds

Positional arguments

  • sgTypecode: 선거타입 입력 (단일 입력)
  • sgIds: 선거ID 입력 (복수 입력 가능, 콤마로 구분)

Options

  • --drop-columns DROP_COLUMNS: 결과로부터 제거할 열 이름 (복수 입력 가능, 콤마로 구분)
    • 기본값: "num,huboid,hanjaName,giho,gihoSangse,dugsu,dugyul" -> 결과순서, 후보자ID, 한자성명, 기호, 기호상세, 득표수, 득표율 정보를 제거
  • --save-method {excel, mongo}: 데이터 저장 방식 지정 (excel, mongo 중 선택)
    • 기본값: excel
    • MongoDB에 저장 시 다음과 같은 형태로 각 엔트리마다 업데이트
    main_collection.update_one(
        {
            "council_id": district_id,
            "council_type": SG_TYPECODE_TYPE[sgTypecode],
        },
        {"$push": {"councilors": entry}},
        upsert=True,
    )

후보자 API

당선자 API와 동일 (다른 부분만 기재)

Options

  • --drop-columns DROP_COLUMNS: 결과로부터 제거할 열 이름 (복수 입력 가능, 콤마로 구분)
    • 기본값: "num,huboid,hanjaName,regdate,status" -> 결과순서, 후보자ID, 한자성명, 등록일, 등록상태 정보를 제거
  • --save-method {excel}: 데이터 저장 방식 지정
    • 후보자 API의경우 현재 엑셀 저장만 가능하도록 구현

@keonly keonly merged commit 941f996 into main Nov 13, 2023
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

스크랩 및 API MongoDB 관련 수정
4 participants