From 41bf8d80dc09ad6a05ba5f4a3922ce5d0a46e836 Mon Sep 17 00:00:00 2001 From: Aelita4 Date: Sat, 11 Nov 2023 23:20:47 +0100 Subject: [PATCH] Add resource structure and implement into User structure --- src/lib/users.ts | 23 +++++++++++++++++++++++ src/types/Resources.ts | 5 +++++ src/types/User.ts | 2 ++ 3 files changed, 30 insertions(+) create mode 100644 src/types/Resources.ts diff --git a/src/lib/users.ts b/src/lib/users.ts index f93a6d8..d8c9f77 100644 --- a/src/lib/users.ts +++ b/src/lib/users.ts @@ -1,5 +1,6 @@ import { Users } from './mongodb'; import type User from '../types/User'; +import type Resources from '../types/Resources'; export const getAllUsers = async () => { const users = await Users(); @@ -19,4 +20,26 @@ export const getUserByNickOrEmail = async (searchString: string) => { { email: searchString } ] }) as Promise; +} + +export const getUserResources = async (username: string): Promise => { + const users = await Users(); + const user = await users.findOne({ username }); + + const defaultResources: Resources = { + coal: 0, + iron: 0, + gold: 0 + }; + + return user?.resources === undefined ? defaultResources : user?.resources; +} + +export const updateUserResources = async (username: string, resources: any) => { + const users = await Users(); + await users.updateOne({ username }, { + $set: { + resources + } + }); } \ No newline at end of file diff --git a/src/types/Resources.ts b/src/types/Resources.ts new file mode 100644 index 0000000..f3891d1 --- /dev/null +++ b/src/types/Resources.ts @@ -0,0 +1,5 @@ +export default interface Resources { + coal: number; + iron: number; + gold: number; +} diff --git a/src/types/User.ts b/src/types/User.ts index f4ee2c9..4d30862 100644 --- a/src/types/User.ts +++ b/src/types/User.ts @@ -1,4 +1,5 @@ import type { ObjectId } from "mongodb"; +import type Resources from "./Resources"; export default interface User { _id?: ObjectId; @@ -6,6 +7,7 @@ export default interface User { email: string; password: string; lastLogin: Date; + resources: Resources; createdAt: Date; updatedAt: Date; } \ No newline at end of file