Package: rcs-pydantic
RCS-PYDANTICRCS-PYDANTICIntroduceInstallationDependencyQuick start제공되는 항목제공되는 데이터 pydantic 모델제공되는 데이터 관련 Enum제공되는 에러 코드 EnumFeaturesRcsMessageMessageExceptionContributionIntroduce한국 통신사 rcs 를 위한 pydantic 모델fastapi또는django-ninja와 함께 사용할 때 유용합니다.Installationpipinstallrcs-pydanticDependencypython3.x (3.8 이상)pydanticQuick startfromrcs_pydanticimportMessageInfo,RcsMessagemessage_info={"replyId":"B01RDSFR.KcNNLk67ui.FDSAF432153214","eventType":"newUser","displayText":"안녕","userContact":"01012341234","chatbotId":"0212351235","timestamp":"2020-03-03T04:43:55.867+09"}rcs={"message_base_id":"SS000000","service_type":"RCSSMS","agency_id":"<str: agency_id>","body":{"title":"타이틀","description":"일반 RCSSMS 테스트 메시지 입니다."}}rcs_message=RcsMessage(message_info=MessageInfo(**message_info),**rcs)>>>print(rcs_message.send_info)common=CommonInfo(msgId='4be0072f-0f05-4b3a-adc8-90d7ef309c53',userContact='01012341234',scheduleType=<ScheduleTypeEnum.IMMEDIATE:0>,msgServiceType=<MessageServiceTypeEnum.RCS:'rcs'>)rcs=RcsInfo(chatbotId='0212351235',agencyId='<str: agency_id>',messagebaseId='SS000000',serviceType=<ServiceTypeEnum.SMS:'RCSSMS'>,expiryOption=<ExpiryOptionEnum.AFTER_SETTING_TIMES:2>,header=<HeaderEnum.NOT_ADVERTISE:'0'>,copyAllowed=True,body=RcsSMSBody(title='타이틀',description='일반 RCSSMS 테스트 메시지 입니다.'),agencyKey='<str: agency_key>'brandKey='<str: brand_key>')>>>제공되는 항목국내 통신사 RCS 문서에서 제공되는 모든 데이터를 pydandic 모델로써 지원합니다.제공되는 데이터 pydantic 모델RcsSMSBodyRcsLMSBodyRcsMMSBodyRcsCHATBodyRcsSMSCarouselBodyRcsLMSCarouselBodyRcsMMSCarouselBodyRcsCHATCarouselBodyLocationInfoShowLocationInfoOpenUrlInfoCreateCalendarEventInfoCopyToClipboardInfoComposeTextMessageInfoDialPhoneNumberInfoUrlActionInfoLocalBrowserActionInfoMapActionInfoCalendarActionInfoClipboardActionInfoComposeActionInfoDialActionInfoPostbackInfoActionInfoSuggestionInfoButtonInfoCommonInfoRcsInfoLegacyInfoStatusInfoQuerystatusInfoErrorInfoResponseErrorInfoResponseInfoTextMessageInfoFileMessageInfoGeolocationPushMessageUserLocationInfoMessageInfoSendInfoTokenInfo제공되는 데이터 관련 EnumEventTypeEnumRCSMessageEnumMessageEnumMessageStatusEnumMnoInfoEnumBillEnumMessageServiceTypeEnumServiceTypeEnumLegacyServiceTypeEnumScheduleTypeEnumExpiryOptionEnumHeaderEnumActionEnum제공되는 에러 코드 EnumErrorCodeEnumMaaPErrorCodeEnumRcsBizCenterErrorCodeEnumKTErrorCodeEnumLegacyErrorCodeEnumFeaturesRcsMessageRcsMessage클래스는 서버로 수신된MessageInfo메세지 모델을 기반으로 메세지 전송을 위한SendInfo모델을 만듭니다.fromrcs_pydanticimportMessageInfo,RcsMessagemessage_info={"replyId":"B01RDSFR.KcNNLk67ui.FDSAF432153214","eventType":"newUser","displayText":"안녕","userContact":"01012341234","chatbotId":"0212351235","timestamp":"2020-03-03T04:43:55.867+09"}rcs={"message_base_id":"SS000000","service_type":"RCSSMS","agency_id":"<str: agency_id>","body":{"title":"타이틀","description":"일반 RCSSMS 테스트 메시지 입니다."}}rcs_message=RcsMessage(message_info=MessageInfo(**message_info),**rcs)MessageExceptionMessageException예외 클래스는 제공되는 모든 에러 코드 Enum 을 포함하는 예외 클래스입니다.다음과 같이 여러 Enum 코드중 한가지를 메세지로 반환합니다.fromrcs_pydantic.errorsimportErrorCodeEnumfromrcs_pydantic.exceptionsimportMessageExceptiontry:raiseMessageException(ErrorCodeEnum.MISSING_AUTHORIZATION_HEADER.value[0])exceptMessageExceptionase:print(f"ERROR MESSAGE:{e}")ERRORMESSAGE:ValidaccesstokeninAuthorizationheaderisrequiredforRESTfulAPIcalls.>>>다음과 같이has_value를 통해 특정Enum에 포함된 에러인지 확인할 수 있습니다.>>>fromrcs_pydantic.errorsimportErrorCodeEnum...ErrorCodeEnum.has_value(40003)True>>>ErrorCodeEnum.has_value(11111)FalseContribution이 프로젝트는 기여를 환영합니다!패치를 제출하기 전에 issue 티켓을 먼저 제출해주세요.Pull request 는main브랜치로 머지되며 항상 사용 가능한 상태로 유지해야 합니다.모든 테스트 코드를 통과한 뒤 리뷰한 후 머지됩니다.