@@ -1168,48 +1168,43 @@ func (q *FakeQuerier) DeleteOAuth2ProviderAppByID(_ context.Context, id uuid.UUI
1168
1168
q .mutex .Lock ()
1169
1169
defer q .mutex .Unlock ()
1170
1170
1171
- for index , app := range q .oauth2ProviderApps {
1172
- if app .ID == id {
1173
- q .oauth2ProviderApps [index ] = q .oauth2ProviderApps [len (q .oauth2ProviderApps )- 1 ]
1174
- q .oauth2ProviderApps = q .oauth2ProviderApps [:len (q .oauth2ProviderApps )- 1 ]
1171
+ index := slices .IndexFunc (q .oauth2ProviderApps , func (app database.OAuth2ProviderApp ) bool {
1172
+ return app .ID == id
1173
+ })
1175
1174
1176
- // Cascade delete into secrets.
1177
- var deletedSecretIDs []uuid.UUID
1178
- var secrets []database.OAuth2ProviderAppSecret
1179
- for _ , secret := range q .oauth2ProviderAppSecrets {
1180
- if secret .AppID == id {
1181
- deletedSecretIDs = append (deletedSecretIDs , secret .ID )
1182
- } else {
1183
- secrets = append (secrets , secret )
1184
- }
1185
- }
1186
- q .oauth2ProviderAppSecrets = secrets
1187
-
1188
- // Cascade delete into t
8000
okens.
1189
- var keyIDsToDelete []string
1190
- var tokens []database.OAuth2ProviderAppToken
1191
- for _ , token := range q .oauth2ProviderAppTokens {
1192
- if slice .Contains (deletedSecretIDs , token .AppSecretID ) {
1193
- keyIDsToDelete = append (keyIDsToDelete , token .APIKeyID )
1194
- } else {
1195
- tokens = append (tokens , token )
1196
- }
1197
- }
1198
- q .oauth2ProviderAppTokens = tokens
1175
+ if index < 0 {
1176
+ return sql .ErrNoRows
1177
+ }
1199
1178
1200
- // Delete from API keys.
1201
- var keys []database.APIKey
1202
- for _ , key := range q .apiKeys {
1203
- if ! slices .Contains (keyIDsToDelete , key .ID ) {
1204
- keys = append (keys , key )
1205
- }
1206
- }
1207
- q .apiKeys = keys
1179
+ q .oauth2ProviderApps [index ] = q .oauth2ProviderApps [len (q .oauth2ProviderApps )- 1 ]
1180
+ q .oauth2ProviderApps = q .oauth2ProviderApps [:len (q .oauth2ProviderApps )- 1 ]
1208
1181
1209
- return nil
1182
+ // Cascade delete secrets associated with the deleted app.
1183
+ var deletedSecretIDs []uuid.UUID
1184
+ q .oauth2ProviderAppSecrets = slices .DeleteFunc (q .oauth2ProviderAppSecrets , func (secret database.OAuth2ProviderAppSecret ) bool {
1185
+ matches := secret .AppID == id
1186
+ if matches {
1187
+ deletedSecretIDs = append (deletedSecretIDs , secret .ID )
1210
1188
}
1211
- }
1212
- return sql .ErrNoRows
1189
+ return matches
1190
+ })
1191
+
1192
+ // Cascade delete tokens through the deleted secrets.
1193
+ var keyIDsToDelete []string
1194
+ q .oauth2ProviderAppTokens = slices .DeleteFunc (q .oauth2ProviderAppTokens , func (token database.OAuth2ProviderAppToken ) bool {
1195
+ matches := slice .Contains (deletedSecretIDs , token .AppSecretID )
1196
+ if matches {
1197
+ keyIDsToDelete = append (keyIDsToDelete , token .APIKeyID )
1198
+ }
1199
+ return matches
1200
+ })
1201
+
1202
+ // Cascade delete API keys linked to the deleted tokens.
1203
+ q .apiKeys = slices .DeleteFunc (q .apiKeys , func (key database.APIKey ) bool {
1204
+ return slices .Contains (keyIDsToDelete , key .ID )
1205
+ })
1206
+
1207
+ return nil
1213
1208
}
1214
1209
1215
1210
func (q * FakeQuerier ) DeleteOAuth2ProviderAppCodeByID (_ context.Context , id uuid.UUID ) error {
@@ -1249,36 +1244,33 @@ func (q *FakeQuerier) DeleteOAuth2ProviderAppSecretByID(_ context.Context, id uu
1249
1244
q .mutex .Lock ()
1250
1245
defer q .mutex .Unlock ()
1251
1246
1252
- for index , secret := range q .oauth2ProviderAppSecrets {
1253
- if secret .ID == id {
1254
- q .oauth2ProviderAppSecrets [index ] = q .oauth2ProviderAppSecrets [len (q .oauth2ProviderAppSecrets )- 1 ]
1255
- q .oauth2ProviderAppSecrets = q .oauth2ProviderAppSecrets [:len (q .oauth2ProviderAppSecrets )- 1 ]
1256
-
1257
- // Cascade delete into tokens.
1258
- var keyIDsToDelete []string
1259
- var tokens []database.OAuth2ProviderAppToken
1260
- for _ , token := range q .oauth2ProviderAppTokens {
1261
- if token .AppSecretID == id {
1262
- keyIDsToDelete = append (keyIDsToDelete , token .APIKeyID )
1263
- } else {
1264
- tokens = append (tokens , token )
1265
- }
1266
- }
1267
- q .oauth2ProviderAppTokens = tokens
1247
+ index := slices .IndexFunc (q .oauth2ProviderAppSecrets , func (secret database.OAuth2ProviderAppSecret ) bool {
1248
+ return secret .ID == id
1249
+ })
1268
1250
1269
- // Delete from API keys.
1270
- var keys []database.APIKey
1271
- for _ , key := range q .apiKeys {
1272
- if ! slices .Contains (keyIDsToDelete , key .ID ) {
1273
- keys = append (keys , key )
1274
- }
1275
- }
1276
- q .apiKeys = keys
1251
+ if index < 0 {
1252
+ return sql .ErrNoRows
1253
+ }
1277
1254
1278
- return nil
1255
+ q .oauth2ProviderAppSecrets [index ] = q .oauth2ProviderAppSecrets [len (q .oauth2ProviderAppSecrets )- 1 ]
1256
+ q .oauth2ProviderAppSecrets = q .oauth2ProviderAppSecrets [:len (q .oauth2ProviderAppSecrets )- 1 ]
1257
+
1258
+ // Cascade delete tokens created through the deleted secret.
1259
+ var keyIDsToDelete []string
1260
+ q .oauth2ProviderAppTokens = slices .DeleteFunc (q .oauth2ProviderAppTokens , func (token database.OAuth2ProviderAppToken ) bool {
1261
+ matches := token .AppSecretID == id
1262
+ if matches {
1263
+ keyIDsToDelete = append (keyIDsToDelete , token .APIKeyID )
1279
1264
}
1280
- }
1281
- return sql .ErrNoRows
1265
+ return matches
1266
+ })
1267
+
1268
+ // Cascade delete API keys linked to the deleted tokens.
1269
+ q .apiKeys = slices .DeleteFunc (q .apiKeys , func (key database.APIKey ) bool {
1270
+ return slices .Contains (keyIDsToDelete , key .ID )
1271
+ })
1272
+
1273
+ return nil
1282
1274
}
1283
1275
1284
1276
func (q * FakeQuerier ) DeleteOAuth2ProviderAppTokensByAppAndUserID (_ context.Context , arg database.DeleteOAuth2ProviderAppTokensByAppAndUserIDParams ) error {
@@ -1291,32 +1283,27 @@ func (q *FakeQuerier) DeleteOAuth2ProviderAppTokensByAppAndUserID(_ context.Cont
1291
1283
defer q .mutex .Unlock ()
1292
1284
1293
1285
var keyIDsToDelete []string
1294
- var tokens []database.OAuth2ProviderAppToken
1295
- for _ , token := range q .oauth2ProviderAppTokens {
1286
+ q .oauth2ProviderAppTokens = slices .DeleteFunc (q .oauth2ProviderAppTokens , func (token database.OAuth2ProviderAppToken ) bool {
1296
1287
// Join secrets and keys to see if the token matches.
1297
1288
secretIdx := slices .IndexFunc (q .oauth2ProviderAppSecrets , func (secret database.OAuth2ProviderAppSecret ) bool {
1298
1289
return secret .ID == token .AppSecretID
1299
1290
})
1300
1291
keyIdx := slices .IndexFunc (q .apiKeys , func (key database.APIKey ) bool {
1301
1292
return key .ID == token .APIKeyID
1302
1293
})
1303
- if secretIdx != - 1 && q .oauth2ProviderAppSecrets [secretIdx ].AppID == arg .AppID &&
1304
- keyIdx != - 1 && q .apiKeys [keyIdx ].UserID == arg .UserID {
1294
+ matches := secretIdx != - 1 &&
1295
+ q .oauth2ProviderAppSecrets [secretIdx ].AppID == arg .AppID &&
1296
+ keyIdx != - 1 && q .apiKeys [keyIdx ].UserID == arg .UserID
1297
+ if matches {
1305
1298
keyIDsToDelete = append (keyIDsToDelete , token .APIKeyID )
1306
- } else {
1307
- tokens = append (tokens , token )
1308
1299
}
1309
- }
1310
- q . oauth2ProviderAppTokens = tokens
1300
+ return matches
1301
+ })
1311
1302
1312
- // Cascade delete into API keys.
1313
- var keys []database.APIKey
1314
- for _ , key := range q .apiKeys {
1315
- if ! slices .Contains (keyIDsToDelete , key .ID ) {
1316
-
7043
keys = append (keys , key )
1317
- }
1318
- }
1319
- q .apiKeys = keys
1303
+ // Cascade delete API keys linked to the deleted tokens.
1304
+ q .apiKeys = slices .DeleteFunc (q .apiKeys , func (key database.APIKey ) bool {
1305
+ return slices .Contains (keyIDsToDelete , key .ID )
1306
+ })
1320
1307
1321
1308
return nil
1322
1309
}
0 commit comments