func getSlackUserEmail()

in user-center-slack/importer.go [68:97]


func getSlackUserEmail(userID, token string) (string, error) {
	url := fmt.Sprintf("https://slack.com/api/users.info?user=%s", userID)
	req, err := http.NewRequest("GET", url, nil)
	if err != nil {
		return "", err
	}
	req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", token))

	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		return "", err
	}
	defer resp.Body.Close()

	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		return "", err
	}

	var userResponse SlackUserResponse
	if err := json.Unmarshal(body, &userResponse); err != nil {
		return "", err
	}
	if !userResponse.Ok {
		return "", fmt.Errorf("failed to get user info from Slack")
	}

	return userResponse.User.Profile.Email, nil
}