41 lines
1.5 KiB
TypeScript
41 lines
1.5 KiB
TypeScript
import type { APIGatewayEvent /*, Context*/ } from 'aws-lambda'
|
|
import { logger } from 'src/lib/logger'
|
|
import { db } from 'src/lib/db'
|
|
|
|
/**
|
|
* The handler function is your code that processes http request events.
|
|
* You can use return and throw to send a response or error, respectively.
|
|
*
|
|
* Important: When deployed, a custom serverless function is an open API endpoint and
|
|
* is your responsibility to secure appropriately.
|
|
*
|
|
* @see {@link https://redwoodjs.com/docs/serverless-functions#security-considerations|Serverless Function Considerations}
|
|
* in the RedwoodJS documentation for more information.
|
|
*
|
|
* @typedef { import('aws-lambda').APIGatewayEvent } APIGatewayEvent
|
|
* @typedef { import('aws-lambda').Context } Context
|
|
* @param { APIGatewayEvent } event - an object which contains information from the invoker.
|
|
* @param { Context } context - contains information about the invocation,
|
|
* function, and execution environment.
|
|
*/
|
|
export const handler = async (event: APIGatewayEvent /*context: Context*/) => {
|
|
logger.info('Invoked checkUserName function')
|
|
const userName = event.queryStringParameters.username
|
|
let isUserNameAvailable = false
|
|
try {
|
|
const user = await db.user.findUnique({ where: { userName } })
|
|
isUserNameAvailable = !user
|
|
} catch (error) {
|
|
isUserNameAvailable = false
|
|
}
|
|
return {
|
|
statusCode: 200,
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
},
|
|
body: JSON.stringify({
|
|
isUserNameAvailable,
|
|
}),
|
|
}
|
|
}
|