Skip to content

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

@abap34

Description

@abap34

内容

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}$' に変更する

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions