MCPcopy Create free account
hub / github.com/bytebase/bytebase / ListIdentityProviders

Method ListIdentityProviders

backend/store/idp.go:154–218  ·  view source on GitHub ↗

ListIdentityProviders lists identity providers.

(ctx context.Context, find *FindIdentityProviderMessage)

Source from the content-addressed store, hash-verified

152
153// ListIdentityProviders lists identity providers.
154func (s *Store) ListIdentityProviders(ctx context.Context, find *FindIdentityProviderMessage) ([]*IdentityProviderMessage, error) {
155 q := qb.Q().Space(`
156 SELECT
157 resource_id,
158 workspace,
159 name,
160 domain,
161 type,
162 config
163 FROM idp
164 WHERE TRUE
165 `)
166
167 if v := find.Workspace; v != nil {
168 q.And("workspace = ?", *v)
169 } else {
170 q.And("workspace IS NULL")
171 }
172
173 if v := find.ResourceID; v != nil {
174 q.And("resource_id = ?", *v)
175 }
176
177 q.Space("ORDER BY resource_id ASC")
178
179 query, args, err := q.ToSQL()
180 if err != nil {
181 return nil, errors.Wrapf(err, "failed to build sql")
182 }
183
184 rows, err := s.GetDB().QueryContext(ctx, query, args...)
185 if err != nil {
186 return nil, err
187 }
188 defer rows.Close()
189
190 var identityProviderMessages []*IdentityProviderMessage
191 for rows.Next() {
192 var identityProviderMessage IdentityProviderMessage
193 var workspace sql.NullString
194 var identityProviderType string
195 var identityProviderConfig string
196 if err := rows.Scan(
197 &identityProviderMessage.ResourceID,
198 &workspace,
199 &identityProviderMessage.Title,
200 &identityProviderMessage.Domain,
201 &identityProviderType,
202 &identityProviderConfig,
203 ); err != nil {
204 return nil, err
205 }
206 if workspace.Valid {
207 identityProviderMessage.Workspace = workspace.String
208 }
209 identityProviderMessage.Type = convertIdentityProviderType(identityProviderType)
210 identityProviderMessage.Config = convertIdentityProviderConfigString(identityProviderMessage.Type, identityProviderConfig)
211 identityProviderMessages = append(identityProviderMessages, &identityProviderMessage)

Callers 1

GetIdentityProviderMethod · 0.95

Calls 11

GetDBMethod · 0.95
QFunction · 0.92
SpaceMethod · 0.80
AndMethod · 0.80
ToSQLMethod · 0.80
QueryContextMethod · 0.80
ScanMethod · 0.80
CloseMethod · 0.65
NextMethod · 0.45

Tested by

no test coverage detected