in internal/provider/sdk/data_source_gitlab_users.go [332:433]
func expandGitlabUsersOptions(d *schema.ResourceData) (*gitlab.ListUsersOptions, int, error) {
listUsersOptions := &gitlab.ListUsersOptions{}
listUsersOptions.PerPage = 20
listUsersOptions.Page = 1
var optionsHash strings.Builder
if data, ok := d.GetOk("order_by"); ok {
orderBy := data.(string)
listUsersOptions.OrderBy = &orderBy
optionsHash.WriteString(orderBy)
}
optionsHash.WriteString(",")
if data, ok := d.GetOk("sort"); ok {
sort := data.(string)
listUsersOptions.Sort = &sort
optionsHash.WriteString(sort)
}
optionsHash.WriteString(",")
if data, ok := d.GetOk("username"); ok {
username := data.(string)
listUsersOptions.Username = &username
optionsHash.WriteString(username)
}
optionsHash.WriteString(",")
if data, ok := d.GetOk("search"); ok {
search := data.(string)
listUsersOptions.Search = &search
optionsHash.WriteString(search)
}
optionsHash.WriteString(",")
if data, ok := d.GetOk("active"); ok {
active := data.(bool)
listUsersOptions.Active = &active
optionsHash.WriteString(strconv.FormatBool(active))
}
optionsHash.WriteString(",")
if data, ok := d.GetOk("external"); ok {
external := data.(bool)
listUsersOptions.External = &external
optionsHash.WriteString(strconv.FormatBool(external))
}
optionsHash.WriteString(",")
if data, ok := d.GetOk("blocked"); ok {
blocked := data.(bool)
listUsersOptions.Blocked = &blocked
optionsHash.WriteString(strconv.FormatBool(blocked))
}
optionsHash.WriteString(",")
if data, ok := d.GetOk("extern_uid"); ok {
externalUID := data.(string)
listUsersOptions.ExternalUID = &externalUID
optionsHash.WriteString(externalUID)
}
optionsHash.WriteString(",")
if data, ok := d.GetOk("extern_provider"); ok {
provider := data.(string)
listUsersOptions.Provider = &provider
optionsHash.WriteString(provider)
}
optionsHash.WriteString(",")
if data, ok := d.GetOk("created_before"); ok {
createdBefore := data.(string)
date, err := time.Parse("2006-01-02", createdBefore)
if err != nil {
return nil, 0, fmt.Errorf("created_before must be in yyyy-mm-dd format")
}
listUsersOptions.CreatedBefore = &date
optionsHash.WriteString(createdBefore)
}
optionsHash.WriteString(",")
if data, ok := d.GetOk("created_after"); ok {
createdAfter := data.(string)
date, err := time.Parse("2006-01-02", createdAfter)
if err != nil {
return nil, 0, fmt.Errorf("created_after must be in yyyy-mm-dd format")
}
listUsersOptions.CreatedAfter = &date
optionsHash.WriteString(createdAfter)
}
optionsHash.WriteString(",")
if data, ok := d.GetOk("exclude_external"); ok {
excludeExternal := data.(bool)
listUsersOptions.ExcludeExternal = &excludeExternal
optionsHash.WriteString(strconv.FormatBool(excludeExternal))
}
optionsHash.WriteString(",")
if data, ok := d.GetOk("exclude_internal"); ok {
excludeInternal := data.(bool)
listUsersOptions.ExcludeInternal = &excludeInternal
optionsHash.WriteString(strconv.FormatBool(excludeInternal))
}
optionsHash.WriteString(",")
if data, ok := d.GetOk("without_project_bots"); ok {
withoutProjectBots := data.(bool)
listUsersOptions.WithoutProjectBots = &withoutProjectBots
optionsHash.WriteString(strconv.FormatBool(withoutProjectBots))
}
id := schema.HashString(optionsHash.String())
return listUsersOptions, id, nil
}