File tree 1 file changed +23
-1
lines changed
packages/node-api/src/router
1 file changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ import {
12
12
authAdminProcedure ,
13
13
} from '../server.js' ;
14
14
import { ACCESS_TOKEN_NAME } from '../constants.js' ;
15
+ import { z } from 'zod' ;
15
16
import { createLogger } from '@windingtree/sdk-logger' ;
16
17
17
18
const logger = createLogger ( 'UserRouter' ) ;
@@ -43,7 +44,7 @@ export const userRouter = router({
43
44
44
45
/**
45
46
* List users records.
46
- * Throws an error if the user already exists .
47
+ * Allowed for admins only .
47
48
*/
48
49
list : authAdminProcedure
49
50
. output ( UsersListOutputSchema )
@@ -65,6 +66,27 @@ export const userRouter = router({
65
66
}
66
67
} ) ,
67
68
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 record = await users . get ( input ) ;
79
+ logger . trace ( `Found #${ record . login } user` ) ;
80
+ await users . delete ( record . login ) ;
81
+ } catch ( error ) {
82
+ logger . error ( 'user.deleteByLogin' , error ) ;
83
+ throw new TRPCError ( {
84
+ code : 'BAD_REQUEST' ,
85
+ message : ( error as Error ) . message ,
86
+ } ) ;
87
+ }
88
+ } ) ,
89
+
68
90
/**
69
91
* Log in an existing user.
70
92
* If successful, generates a new access token and sends it in the response.
You can’t perform that action at this time.
0 commit comments