(ctx context.Context, orgID *uuid.UUID, filters *biz.APITokenListFilters)
| 117 | } |
| 118 | |
| 119 | func (r *APITokenRepo) List(ctx context.Context, orgID *uuid.UUID, filters *biz.APITokenListFilters) ([]*biz.APIToken, error) { |
| 120 | ctx, span := otelx.Start(ctx, apiTokenRepoTracer, "APITokenRepo.List") |
| 121 | defer span.End() |
| 122 | |
| 123 | query := r.data.DB.APIToken.Query().WithProject().WithWorkflow().WithOrganization() |
| 124 | |
| 125 | if filters == nil { |
| 126 | filters = &biz.APITokenListFilters{} |
| 127 | } |
| 128 | |
| 129 | if orgID != nil { |
| 130 | query = query.Where(apitoken.OrganizationIDEQ(*orgID)) |
| 131 | } |
| 132 | |
| 133 | if len(filters.FilterByProjects) > 0 { |
| 134 | query = query.Where(apitoken.ProjectIDIn(filters.FilterByProjects...)) |
| 135 | } |
| 136 | |
| 137 | if !filters.IncludeSystem { |
| 138 | query = query.Where(apitoken.IsSystem(false)) |
| 139 | } |
| 140 | |
| 141 | switch filters.FilterByScope { |
| 142 | case biz.APITokenScopeProject: |
| 143 | query = query.Where(apitoken.ProjectIDNotNil()) |
| 144 | case biz.APITokenScopeGlobal: |
| 145 | query = query.Where(apitoken.ProjectIDIsNil()) |
| 146 | case biz.APITokenScopeInstance: |
| 147 | query = query.Where(apitoken.OrganizationIDIsNil()) |
| 148 | } |
| 149 | |
| 150 | switch filters.StatusFilter { |
| 151 | case biz.APITokenStatusFilterRevoked: |
| 152 | query = query.Where(apitoken.RevokedAtNotNil()) |
| 153 | case biz.APITokenStatusFilterAll: |
| 154 | // no filter — return all tokens |
| 155 | default: // APITokenStatusFilterActive |
| 156 | query = query.Where(apitoken.RevokedAtIsNil()) |
| 157 | } |
| 158 | |
| 159 | tokens, err := query.Order(ent.Asc(apitoken.FieldCreatedAt)).All(ctx) |
| 160 | if err != nil { |
| 161 | return nil, err |
| 162 | } |
| 163 | |
| 164 | result := make([]*biz.APIToken, 0, len(tokens)) |
| 165 | for _, t := range tokens { |
| 166 | result = append(result, entAPITokenToBiz(t)) |
| 167 | } |
| 168 | |
| 169 | return result, nil |
| 170 | } |
| 171 | |
| 172 | func (r *APITokenRepo) Revoke(ctx context.Context, orgID *uuid.UUID, id uuid.UUID) error { |
| 173 | ctx, span := otelx.Start(ctx, apiTokenRepoTracer, "APITokenRepo.Revoke") |
nothing calls this directly
no test coverage detected