Skip to content

Commit 7769767

Browse files
authored
Merge pull request #98 from windingtree/develop
Added deleteByLogin to the users route of node-api
2 parents 93ca6a9 + 29f5f6f commit 7769767

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

packages/db/src/users.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export type SafeUserType = z.infer<typeof SafeUserSchema>;
5656
* Type definition for sanitized Users records list,
5757
* inferred from UsersListOutputSchema.
5858
*/
59-
export type UsersListOutputSchema = z.infer<typeof UsersListOutputSchema>;
59+
export type UsersListOutputSchemaType = z.infer<typeof UsersListOutputSchema>;
6060

6161
/**
6262
* Interface defining the properties of UsersDb initialization options.

packages/node-api/src/router/user.ts

+24-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
authAdminProcedure,
1313
} from '../server.js';
1414
import { ACCESS_TOKEN_NAME } from '../constants.js';
15+
import { z } from 'zod';
1516
import { createLogger } from '@windingtree/sdk-logger';
1617

1718
const logger = createLogger('UserRouter');
@@ -43,7 +44,7 @@ export const userRouter = router({
4344

4445
/**
4546
* List users records.
46-
* Throws an error if the user already exists.
47+
* Allowed for admins only.
4748
*/
4849
list: authAdminProcedure
4950
.output(UsersListOutputSchema)
@@ -65,6 +66,28 @@ export const userRouter = router({
6566
}
6667
}),
6768

69+
/**
70+
* Deletes user by login name.
71+
* Allowed for admins only.
72+
*/
73+
deleteByLogin: authAdminProcedure
74+
.input(z.string())
75+
.mutation(async ({ input, ctx }) => {
76+
try {
77+
const { users } = ctx;
78+
const user = await users.get(input);
79+
logger.trace(`Found #${user.login} user`);
80+
await users.delete(user.login);
81+
logger.trace(`User ${user.login} has been deleted`);
82+
} catch (error) {
83+
logger.error('user.deleteByLogin', error);
84+
throw new TRPCError({
85+
code: 'BAD_REQUEST',
86+
message: (error as Error).message,
87+
});
88+
}
89+
}),
90+
6891
/**
6992
* Log in an existing user.
7093
* If successful, generates a new access token and sends it in the response.

0 commit comments

Comments
 (0)