MCPcopy Create free account
hub / github.com/chainloop-dev/chainloop / List

Method List

app/controlplane/pkg/data/apitoken.go:119–170  ·  view source on GitHub ↗
(ctx context.Context, orgID *uuid.UUID, filters *biz.APITokenListFilters)

Source from the content-addressed store, hash-verified

117}
118
119func (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
172func (r *APITokenRepo) Revoke(ctx context.Context, orgID *uuid.UUID, id uuid.UUID) error {
173 ctx, span := otelx.Start(ctx, apiTokenRepoTracer, "APITokenRepo.Revoke")

Callers

nothing calls this directly

Implementers 3

APITokenRepoapp/controlplane/pkg/biz/mocks/APIToke
APITokenRepo_Expecterapp/controlplane/pkg/biz/mocks/APIToke
APITokenRepoapp/controlplane/pkg/data/apitoken.go

Calls 15

StartFunction · 0.92
OrganizationIDEQFunction · 0.92
ProjectIDInFunction · 0.92
IsSystemFunction · 0.92
ProjectIDNotNilFunction · 0.92
ProjectIDIsNilFunction · 0.92
OrganizationIDIsNilFunction · 0.92
RevokedAtNotNilFunction · 0.92
RevokedAtIsNilFunction · 0.92
AscFunction · 0.92
entAPITokenToBizFunction · 0.85
WithOrganizationMethod · 0.45

Tested by

no test coverage detected