func()

in auth/export_users.go [75:109]


func (it *UserIterator) fetch(pageSize int, pageToken string) (string, error) {
	query := make(url.Values)
	query.Set("maxResults", strconv.Itoa(pageSize))
	if pageToken != "" {
		query.Set("nextPageToken", pageToken)
	}

	url, err := it.client.makeUserMgtURL(fmt.Sprintf("/accounts:batchGet?%s", query.Encode()))
	if err != nil {
		return "", err
	}

	req := &internal.Request{
		Method: http.MethodGet,
		URL:    url,
	}
	var parsed struct {
		Users         []userQueryResponse `json:"users"`
		NextPageToken string              `json:"nextPageToken"`
	}
	_, err = it.client.httpClient.DoAndUnmarshal(it.ctx, req, &parsed)
	if err != nil {
		return "", err
	}

	for _, u := range parsed.Users {
		eu, err := u.makeExportedUserRecord()
		if err != nil {
			return "", err
		}
		it.users = append(it.users, eu)
	}
	it.pageInfo.Token = parsed.NextPageToken
	return parsed.NextPageToken, nil
}