motoki317 / traq-py

traQ API Client Library for Python
0 stars 1 forks source link

[バグ報告] Twitterアカウントを設定していない人の情報を取得するとエラーになる #1

Open abap34 opened 1 year ago

abap34 commented 1 year ago

内容

get_user などで UserDetail を取得した際、Twitterのアカウントを設定していないと traq.exceptions.ApiValueError: Invalid value for `twitter_id`, must match regular expression `^[a-zA-Z0-9_]{1,15}$ になる

再現するコード

Python 3.9.6 traq 3.9.1-0

import traq
from traq.api import user_api

configuration = traq.Configuration(
    host = "https://q.trap.jp/api/v3"
)

configuration.access_token = 'TOKEN'

with traq.ApiClient(configuration) as api_client:
    api_instance = user_api.UserApi(api_client)
    try:
        # Twitterを設定していない人(sorameaくん) の ID
        api_response = api_instance.get_user('5a7baf27-aed3-44cf-8e77-4cbc7a1993a1')
    except traq.ApiException as e:
        print("Exception when calling UserApi->get_user_stats: %s\n" % e)

原因

レポジトリ全体で、Twitterのidのバリデーションをするための正規表現が r'^[a-zA-Z0-9_]{1,15}$' になっていて : https://github.com/search?q=repo%3Amotoki317%2Ftraq-py%20%7B1%2C15%7D&type=code

Twitterのidが設定されていない場合は空文字列となってこれに引っかかる。

修正すべき内容

r'^[a-zA-Z0-9_]{1,15}$' を全て r'^[a-zA-Z0-9_]{0,15}$' に変更する

motoki317 commented 1 year ago

https://github.com/traPtitech/traQ/blob/master/docs/v3-api.yaml の問題なのでそちら側にissueを立てる/修正してからコードを再生成することになります

abap34 commented 1 year ago

あ、そうなんですね 了解です こちらで traQ に issueを立てればOKですか?