wasp/examples/realworld/ext/actions.js

30 lines
977 B
JavaScript
Raw Normal View History

import { createNewUser } from '@wasp/core/auth.js'
import HttpError from '@wasp/core/HttpError.js'
export const signup = async ({ username, email, password }, context) => {
try {
await createNewUser({ username, email, password })
} catch (err) {
// TODO: I wish I didn't have to do this, I would love this to be in some
// degree done automatically.
if (err.code == 'P2002') {
throw new HttpError(400, err.meta.target + " must be unique.")
}
throw err
}
}
export const updateUser = async ({ email, username, bio, profilePictureUrl, newPassword }, context) => {
// TODO: Nicer error handling! Right now everything is returned as 500 while it could be instead
// useful error message about username being taken / not unique, and other validation errors.
await context.entities.User.update({
where: { email },
data: {
username,
bio,
profilePictureUrl,
password: newPassword || undefined
}
})
}