Update password functionality and error handling
This commit is contained in:
parent
68273802cc
commit
21b800f431
|
@ -37,7 +37,7 @@ export async function updatePassword({
|
||||||
username: string
|
username: string
|
||||||
password: string
|
password: string
|
||||||
newPassword: string
|
newPassword: string
|
||||||
}) {
|
}): Promise<'SUCCESS' | 'FAIL'> {
|
||||||
try {
|
try {
|
||||||
const userDN = await getUserDN(username)
|
const userDN = await getUserDN(username)
|
||||||
await ldapClient.bind(userDN, password)
|
await ldapClient.bind(userDN, password)
|
||||||
|
@ -58,9 +58,12 @@ export async function updatePassword({
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
])
|
])
|
||||||
|
|
||||||
|
return 'SUCCESS'
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err)
|
console.error(err)
|
||||||
} finally {
|
} finally {
|
||||||
await ldapClient.unbind()
|
await ldapClient.unbind()
|
||||||
}
|
}
|
||||||
|
return 'FAIL'
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,29 +1,44 @@
|
||||||
import { initTRPC, TRPCError } from "@trpc/server";
|
import { initTRPC, TRPCError } from '@trpc/server'
|
||||||
import * as trpcExpress from "@trpc/server/adapters/express";
|
import * as trpcExpress from '@trpc/server/adapters/express'
|
||||||
|
|
||||||
import { z } from "zod";
|
import { z } from 'zod'
|
||||||
|
import { updatePassword } from './lib/updatePassword'
|
||||||
|
|
||||||
export const { procedure, router } = initTRPC.create();
|
export const { procedure, router } = initTRPC.create()
|
||||||
|
|
||||||
const { query, mutation, input } = procedure;
|
const { query, input } = procedure
|
||||||
|
|
||||||
export const appRouter = router({
|
export const appRouter = router({
|
||||||
hello: query(async () => {
|
hello: query(async () => {
|
||||||
return "Hello World!";
|
return 'Hello World!'
|
||||||
}),
|
}),
|
||||||
|
|
||||||
updatePassword: input(
|
updatePassword: input(
|
||||||
z.object({
|
z.object({
|
||||||
username: z.string(),
|
username: z.string(),
|
||||||
password: z.string(),
|
password: z.string(),
|
||||||
newPassword: z.string().min(8),
|
newPassword: z.string().min(8)
|
||||||
|
})
|
||||||
|
).mutation(async ({ input }) => {
|
||||||
|
const { username, password, newPassword } = input
|
||||||
|
try {
|
||||||
|
await updatePassword({
|
||||||
|
username,
|
||||||
|
password,
|
||||||
|
newPassword
|
||||||
|
})
|
||||||
|
} catch (err: any) {
|
||||||
|
throw new TRPCError({
|
||||||
|
code: 'BAD_REQUEST',
|
||||||
|
message: err.message
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
).mutation(async () => {}),
|
|
||||||
});
|
|
||||||
|
|
||||||
// export type definition of API
|
// export type definition of API
|
||||||
export type AppRouter = typeof appRouter;
|
export type AppRouter = typeof appRouter
|
||||||
|
|
||||||
export const trpcMiddleware = trpcExpress.createExpressMiddleware({
|
export const trpcMiddleware = trpcExpress.createExpressMiddleware({
|
||||||
router: appRouter,
|
router: appRouter
|
||||||
});
|
})
|
||||||
|
|
Loading…
Reference in New Issue
Block a user