in auth/user_mgt.go [1175:1213]
func (c *baseClient) DeleteUsers(ctx context.Context, uids []string) (*DeleteUsersResult, error) {
if len(uids) == 0 {
return &DeleteUsersResult{}, nil
} else if len(uids) > maxDeleteAccountsBatchSize {
return nil, fmt.Errorf(
"`uids` parameter must have <= %d entries", maxDeleteAccountsBatchSize)
}
var payload struct {
LocalIds []string `json:"localIds"`
Force bool `json:"force"`
}
payload.Force = true
for i := range uids {
if err := validateUID(uids[i]); err != nil {
return nil, err
}
payload.LocalIds = append(payload.LocalIds, uids[i])
}
type batchDeleteAccountsResponse struct {
Errors []*DeleteUsersErrorInfo `json:"errors"`
}
resp := batchDeleteAccountsResponse{}
if _, err := c.post(ctx, "/accounts:batchDelete", payload, &resp); err != nil {
return nil, err
}
result := DeleteUsersResult{
FailureCount: len(resp.Errors),
SuccessCount: len(uids) - len(resp.Errors),
Errors: resp.Errors,
}
return &result, nil
}