Skip to content

Commit bd3d734

Browse files
committed
matt code review changes
1 parent 41fe5bb commit bd3d734

File tree

2 files changed

+50
-57
lines changed

2 files changed

+50
-57
lines changed

packages/server/graphql/public/mutations/deleteOAuthAPIProvider.ts

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,13 @@ import getKysely from '../../../postgres/getKysely'
44
import {getUserId, isUserOrgAdmin} from '../../../utils/authorization'
55
import {CipherId} from '../../../utils/CipherId'
66
import publish from '../../../utils/publish'
7-
import {GQLContext} from '../../graphql'
7+
import type {MutationResolvers} from '../resolverTypes'
88

9-
interface DeleteOAuthAPIProviderInput {
10-
providerId: string
11-
}
12-
13-
export default async function deleteOAuthAPIProvider(
14-
_root: any,
15-
{input}: {input: DeleteOAuthAPIProviderInput},
16-
context: GQLContext
17-
) {
9+
const deleteOAuthAPIProvider: MutationResolvers['deleteOAuthAPIProvider'] = async (
10+
_root,
11+
{input},
12+
context
13+
) => {
1814
const [providerId] = CipherId.fromClient(input.providerId)
1915
const {authToken, dataLoader, socketId} = context
2016
const viewerId = getUserId(authToken)
@@ -54,3 +50,5 @@ export default async function deleteOAuthAPIProvider(
5450

5551
return {success: true, deletedProviderId: input.providerId}
5652
}
53+
54+
export default deleteOAuthAPIProvider

packages/server/graphql/public/mutations/regenerateOAuthAPIProviderSecret.ts

Lines changed: 42 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -3,52 +3,47 @@ import {generateOAuthClientSecret} from '../../../oauth2/credentials'
33
import getKysely from '../../../postgres/getKysely'
44
import {getUserId, isUserOrgAdmin} from '../../../utils/authorization'
55
import {CipherId} from '../../../utils/CipherId'
6-
import {GQLContext} from '../../graphql'
7-
8-
interface RegenerateOAuthAPIProviderSecretInput {
9-
providerId: string
10-
}
11-
12-
export default async function regenerateOAuthAPIProviderSecret(
13-
_root: any,
14-
{input}: {input: RegenerateOAuthAPIProviderSecretInput},
15-
context: GQLContext
16-
) {
17-
const [providerId] = CipherId.fromClient(input.providerId)
18-
const {authToken, dataLoader} = context
19-
const viewerId = getUserId(authToken)
20-
21-
const pg = getKysely()
22-
23-
const provider = await pg
24-
.selectFrom('OAuthAPIProvider')
25-
.select('orgId')
26-
.where('id', '=', providerId)
27-
.executeTakeFirst()
28-
29-
if (!provider) {
30-
throw new GraphQLError('Provider not found')
6+
import type {MutationResolvers} from '../resolverTypes'
7+
8+
const regenerateOAuthAPIProviderSecret: MutationResolvers['regenerateOAuthAPIProviderSecret'] =
9+
async (_root, {input}, context) => {
10+
const [providerId] = CipherId.fromClient(input.providerId)
11+
const {authToken, dataLoader} = context
12+
const viewerId = getUserId(authToken)
13+
14+
const pg = getKysely()
15+
16+
const provider = await pg
17+
.selectFrom('OAuthAPIProvider')
18+
.select('orgId')
19+
.where('id', '=', providerId)
20+
.executeTakeFirst()
21+
22+
if (!provider) {
23+
throw new GraphQLError('Provider not found')
24+
}
25+
26+
if (!(await isUserOrgAdmin(viewerId, provider.orgId, dataLoader))) {
27+
throw new GraphQLError('Not organization lead', {
28+
extensions: {
29+
code: 'FORBIDDEN',
30+
userId: viewerId
31+
}
32+
})
33+
}
34+
35+
const newSecret = generateOAuthClientSecret()
36+
37+
const updatedProvider = await pg
38+
.updateTable('OAuthAPIProvider')
39+
.set({
40+
clientSecret: newSecret
41+
})
42+
.where('id', '=', providerId)
43+
.returningAll()
44+
.executeTakeFirstOrThrow()
45+
46+
return {clientSecret: newSecret, clientId: updatedProvider.clientId, provider: updatedProvider}
3147
}
3248

33-
if (!(await isUserOrgAdmin(viewerId, provider.orgId, dataLoader))) {
34-
throw new GraphQLError('Not organization lead', {
35-
extensions: {
36-
code: 'FORBIDDEN',
37-
userId: viewerId
38-
}
39-
})
40-
}
41-
42-
const newSecret = generateOAuthClientSecret()
43-
44-
const updatedProvider = await pg
45-
.updateTable('OAuthAPIProvider')
46-
.set({
47-
clientSecret: newSecret
48-
})
49-
.where('id', '=', providerId)
50-
.returningAll()
51-
.executeTakeFirst()
52-
53-
return {clientSecret: newSecret, clientId: updatedProvider!.clientId, provider: updatedProvider}
54-
}
49+
export default regenerateOAuthAPIProviderSecret

0 commit comments

Comments
 (0)