traPtitech / knoQ

進捗部屋・イベント管理システム

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

traQへのリクエストにgo-traqを使う

ras0q opened this issue · comments

↓みたいなのを全部go-traqに変える

knoQ/infra/traq/user.go

Lines 15 to 29 in cb9fc32

func (repo *TraQRepository) GetUser(token *oauth2.Token, userID uuid.UUID) (*traq.User, error) {
URL := fmt.Sprintf("%s/users/%s", repo.URL, userID)
req, err := http.NewRequest(http.MethodGet, URL, nil)
if err != nil {
return nil, err
}
data, err := repo.doRequest(token, req)
if err != nil {
return nil, err
}
user := new(traq.User)
err = json.Unmarshal(data, &user)
return user, err
}

OAuth2トークンを使ったAPIClientの作成は↓でできる

	traqconf := traq.NewConfiguration()
	traqconf.HTTPClient = conf.Client(c.Request().Context(), tok)
	client := traq.NewAPIClient(traqconf)

https://github.com/ras0q/traq-oauth2/blob/b35ef45bb5d52aab749b863582b4b0a3c4e2dfd7/example/webapp-with-library/main.go#L126-L128

もう少しわかりやすい名前にすれば良かったと思ってるけどwebhookは https://github.com/ras0q/traq-writer とかがあるので記述減らしたい&デバッグ環境でtraQに通知飛ばしたくないときは参考にしてください