Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
// return BAD REQUEST status code and email already exists error
ctx.status = 400;
ctx.body = 'The specified e-mail address already exists';
} else {
// save the user contained in the PUT body
const user = await userRepository.save(userToBeUpdated);
// return CREATED status code and updated user
ctx.status = 201;
ctx.body = user;
}
}
@request('delete', '/users/{id}')
@summary('Delete user by id')
@path({
id: { type: 'number', required: true, description: 'id of user' }
})
public static async deleteUser(ctx: BaseContext) {
// get a user repository to perform operations with user
const userRepository = getManager().getRepository(User);
// find the user by specified id
const userToRemove: User = await userRepository.findOne(+ctx.params.id || 0);
if (!userToRemove) {
// return a BAD REQUEST status code and error message
ctx.status = 400;
ctx.body = 'The user you are trying to delete doesn\'t exist in the db';
} else if (+ctx.state.user.id !== userToRemove.id) {
// check user's token id and user id are the same
// if not, return a FORBIDDEN status code and error message
} else if (await userRepository.findOne({ email: userToBeSaved.email })) {
// return BAD REQUEST status code and email already exists error
ctx.status = 400;
ctx.body = 'The specified e-mail address already exists';
} else {
// save the user contained in the POST body
const user = await userRepository.save(userToBeSaved);
// return CREATED status code and updated user
ctx.status = 201;
ctx.body = user;
}
}
@request('put', '/users/{id}')
@summary('Update a user')
@path({
id: { type: 'number', required: true, description: 'id of user' }
})
@body(userSchema)
public static async updateUser(ctx: BaseContext) {
// get a user repository to perform operations with user
const userRepository: Repository = getManager().getRepository(User);
// update the user by specified id
// build up entity user to be updated
const userToBeUpdated: User = new User();
userToBeUpdated.id = +ctx.params.id || 0; // will always have a number, this will avoid errors
userToBeUpdated.name = ctx.request.body.name;
userToBeUpdated.email = ctx.request.body.email;
// validate user entity
public static async getUsers(ctx: BaseContext) {
// get a user repository to perform operations with user
const userRepository: Repository = getManager().getRepository(User);
// load all users
const users: User[] = await userRepository.find();
// return OK status code and loaded users array
ctx.status = 200;
ctx.body = users;
}
@request('get', '/users/{id}')
@summary('Find user by id')
@path({
id: { type: 'number', required: true, description: 'id of user' }
})
public static async getUser(ctx: BaseContext) {
// get a user repository to perform operations with user
const userRepository: Repository = getManager().getRepository(User);
// load user by id
const user: User = await userRepository.findOne(+ctx.params.id || 0);
if (user) {
// return OK status code and loaded user object
ctx.status = 200;
ctx.body = user;
} else {
// return a BAD REQUEST status code and error message