(query string, organizationID uuid.UUID)
| 174 | } |
| 175 | |
| 176 | func Members(query string, organizationID uuid.UUID) (database.OrganizationMembersParams, []codersdk.ValidationError) { |
| 177 | query = strings.TrimSpace(query) |
| 178 | if query == "" { |
| 179 | return database.OrganizationMembersParams{ |
| 180 | OrganizationID: organizationID, |
| 181 | UserID: uuid.Nil, |
| 182 | IncludeSystem: false, |
| 183 | GithubUserID: 0, |
| 184 | }, nil |
| 185 | } |
| 186 | values, errors := searchTerms(query, func(term string, values url.Values) error { |
| 187 | switch term { |
| 188 | case "user_id": |
| 189 | values.Set("user_id", "") |
| 190 | case "github_user_id": |
| 191 | values.Set("github_user_id", "") |
| 192 | case "include_system": |
| 193 | values.Set("include_system", "") |
| 194 | default: |
| 195 | return xerrors.Errorf("invalid search term: %s", term) |
| 196 | } |
| 197 | return nil |
| 198 | }) |
| 199 | if len(errors) > 0 { |
| 200 | return database.OrganizationMembersParams{ |
| 201 | OrganizationID: organizationID, |
| 202 | UserID: uuid.Nil, |
| 203 | IncludeSystem: false, |
| 204 | GithubUserID: 0, |
| 205 | }, errors |
| 206 | } |
| 207 | |
| 208 | parser := httpapi.NewQueryParamParser() |
| 209 | params := database.OrganizationMembersParams{ |
| 210 | OrganizationID: organizationID, |
| 211 | UserID: parser.UUID(values, uuid.Nil, "user_id"), |
| 212 | IncludeSystem: parser.Boolean(values, false, "include_system"), |
| 213 | GithubUserID: parser.Int64(values, 0, "github_user_id"), |
| 214 | } |
| 215 | parser.ErrorExcessParams(values) |
| 216 | |
| 217 | return params, parser.Errors |
| 218 | } |
| 219 | |
| 220 | func Workspaces(ctx context.Context, db database.Store, query string, page codersdk.Pagination, agentInactiveDisconnectTimeout time.Duration) (database.GetWorkspacesParams, []codersdk.ValidationError) { |
| 221 | filter := database.GetWorkspacesParams{ |
no test coverage detected