summaryrefslogtreecommitdiff
path: root/backend/src/controllers/user.controller.js
diff options
context:
space:
mode:
authorDaniel Andreas Wang <danielaw@tilde.club>2026-03-14 15:37:31 +0100
committerDaniel Andreas Wang <danielaw@tilde.club>2026-03-14 15:37:31 +0100
commitf4f6f490ab0bb1a2a06d660ce1b276a4fad9d2c2 (patch)
tree9c9af5b4f49274fd1a62627b8879caf616d25a93 /backend/src/controllers/user.controller.js
first commitHEADmain
Diffstat (limited to 'backend/src/controllers/user.controller.js')
-rw-r--r--backend/src/controllers/user.controller.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/backend/src/controllers/user.controller.js b/backend/src/controllers/user.controller.js
new file mode 100644
index 0000000..b5d2048
--- /dev/null
+++ b/backend/src/controllers/user.controller.js
@@ -0,0 +1,33 @@
+import { User } from '../models/user.model.js'
+
+const registerUser = async (req, res) => {
+ try {
+ const { username, email, password } = req.body
+
+ if (!username || !email || !password) {
+ return res.status(400).json({ message: 'All fields are important!'})
+ }
+
+ const existing = await User.findOne({ email: email.toLowerCase() })
+ if (existing) {
+ return res.status(400).json({ message: 'User already exists.'})
+ }
+
+ const user = await User.create({
+ username,
+ email: email.toLowerCase(),
+ password,
+ })
+
+ res.status(201).json({
+ message: 'User registered.',
+ user: { id: user._id, email: user.email, username: user.username }
+ })
+ } catch (error) {
+ res.status(500).json({ message: 'Internal server error!', error: error.message })
+ }
+}
+
+export {
+ registerUser
+}