summary refs log tree commit diff
path: root/src/db
diff options
context:
space:
mode:
Diffstat (limited to 'src/db')
-rw-r--r--src/db/dbAccess/user.js14
-rw-r--r--src/db/dbAccess/user.test.js19
2 files changed, 22 insertions, 11 deletions
diff --git a/src/db/dbAccess/user.js b/src/db/dbAccess/user.js

index a461f3e..7357b59 100644 --- a/src/db/dbAccess/user.js +++ b/src/db/dbAccess/user.js
@@ -3,6 +3,7 @@ import { DbUser, deviceSchema } from '#db/schemas/index.js'; import { AuthDto, RegisterDto } from '#dto/index.js'; import { SafeNSoundError } from '#util/error.js'; import { WhoAmIDto } from '#dto/auth/WhoAmIDto.js'; +import { generateJwtToken } from '#util/jwtUtils.js'; async function whoAmI(token) {} @@ -63,7 +64,7 @@ export async function registerUser(data) { export async function deleteUser(data) { var user = await getUserByAuth(data); - await DbUser.findByIdAndDelete(data._id); + await DbUser.findByIdAndDelete(user._id); } /** @@ -80,9 +81,18 @@ export async function loginUser(data, deviceName) { user.devices.push(device); await user.save(); - return WhoAmIDto.create({ + const whoAmI = await WhoAmIDto.create({ userId: user._id, username: user.username, deviceId: device._id }); + + whoAmI.access_token = await generateJwtToken({ + type: user.type, + sub: user._id.toString(), + deviceId: device._id.toString(), + iat: Math.floor(Date.now() / 1000) + }); + + return whoAmI; } diff --git a/src/db/dbAccess/user.test.js b/src/db/dbAccess/user.test.js
index 7b72d29..bb3b125 100644 --- a/src/db/dbAccess/user.test.js +++ b/src/db/dbAccess/user.test.js
@@ -4,20 +4,21 @@ import { deleteUser, registerUser } from '#db/index.js'; import * as assert from 'node:assert'; import { initDb } from '#db/db.js'; import { disconnect } from 'mongoose'; +import { AuthDto, RegisterDto } from '#dto/auth/index.js'; dotenv.config(); await initDb(); async function createTestUser() { - const username = (Math.random() * 1000000).toString(); - const password = (Math.random() * 1000000).toString(); - const email = (Math.random() * 1000000).toString() + '@example.com'; + const authData = await AuthDto.create({ + username: (Math.random() * 1000000).toString(), + password: (Math.random() * 1000000).toString(), + email: (Math.random() * 1000000).toString() + '@example.com' + }); return { - username, - password, - email, - user: await registerUser(username, password, email) + authData, + user: await registerUser(await RegisterDto.create(authData)) }; } @@ -26,9 +27,9 @@ await it('Can create user', async () => { }); await it('Can delete user', async () => { - const { password, user } = await createTestUser(); + const { authData } = await createTestUser(); - const deletePromise = deleteUser(user._id, password); + const deletePromise = deleteUser(authData); await assert.doesNotReject(deletePromise); });