Skip to content
This repository was archived by the owner on Apr 8, 2026. It is now read-only.

Commit 6a342b9

Browse files
committed
feat: add badges property to user interfaces and services for enhanced user profile management
1 parent c2dfee9 commit 6a342b9

6 files changed

Lines changed: 35 additions & 8 deletions

File tree

dist/controllers/UserController.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ let Users = class Users {
7575
isStudio: !!user.isStudio,
7676
admin: !!user.admin,
7777
disabled: !!user.disabled,
78+
badges: user.badges || [],
7879
};
7980
}
8081
mapUserSearch(user) {

dist/interfaces/User.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export interface PublicUser {
77
verified: boolean;
88
isStudio: boolean;
99
admin?: boolean;
10+
badges: ('staff' | 'moderator' | 'community_manager' | 'early_user' | 'bug_hunter' | 'contributor')[];
1011
}
1112
export interface User extends PublicUser {
1213
email: string;

dist/services/UserService.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@ let UserService = UserService_1 = class UserService {
116116
username: u.username,
117117
verified: !!u.verified,
118118
isStudio: !!u.isStudio,
119-
admin: !!u.admin
119+
admin: !!u.admin,
120+
badges: u.badges || [],
120121
}));
121122
}
122123
async createUser(user_id, username, email, password, provider, providerId) {
@@ -158,7 +159,8 @@ let UserService = UserService_1 = class UserService {
158159
username: u.username,
159160
verified: !!u.verified,
160161
isStudio: !!u.isStudio,
161-
admin: !!u.admin
162+
admin: !!u.admin,
163+
badges: u.badges || [],
162164
}));
163165
}
164166
async getAllUsers() {
@@ -301,7 +303,10 @@ let UserService = UserService_1 = class UserService {
301303
await this.databaseService.request(`DELETE FROM inventories
302304
WHERE user_id = (
303305
SELECT user_id FROM users
304-
WHERE user_id = ? OR discord_id = ? OR google_id = ? OR steam_id = ?
306+
WHERE user_id = ?
307+
OR discord_id = ?
308+
OR google_id = ?
309+
OR steam_id = ?
305310
)
306311
AND item_id NOT IN (
307312
SELECT itemId FROM items WHERE deleted IS NULL OR deleted = 0
@@ -435,7 +440,8 @@ let UserService = UserService_1 = class UserService {
435440
admin: !!user.admin,
436441
inventory: user.inventory || [],
437442
ownedItems: user.ownedItems || [],
438-
createdGames: user.createdGames || []
443+
createdGames: user.createdGames || [],
444+
badges: user.badges || []
439445
};
440446
}
441447
async adminGetUserWithProfile(user_id) {

src/controllers/UserController.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ export class Users {
7373
isStudio: !!user.isStudio,
7474
admin: !!user.admin,
7575
disabled: !!user.disabled,
76+
badges: user.badges || [],
7677
};
7778
}
7879

src/interfaces/User.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ export interface PublicUser {
88
verified: boolean;
99
isStudio: boolean;
1010
admin?: boolean;
11+
badges: ('staff' | 'moderator' | 'community_manager' | 'early_user' | 'bug_hunter' | 'contributor' | 'partner')[];
12+
beta_user?: boolean;
1113
}
1214

1315
export interface User extends PublicUser {

src/services/UserService.ts

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,8 @@ export class UserService implements IUserService {
193193
username: u.username,
194194
verified: !!u.verified,
195195
isStudio: !!u.isStudio,
196-
admin: !!u.admin
196+
admin: !!u.admin,
197+
badges: u.badges || [],
197198
}));
198199
}
199200

@@ -255,7 +256,8 @@ export class UserService implements IUserService {
255256
username: u.username,
256257
verified: !!u.verified,
257258
isStudio: !!u.isStudio,
258-
admin: !!u.admin
259+
admin: !!u.admin,
260+
badges: u.badges || [],
259261
}));
260262
}
261263

@@ -436,7 +438,10 @@ export class UserService implements IUserService {
436438
`DELETE FROM inventories
437439
WHERE user_id = (
438440
SELECT user_id FROM users
439-
WHERE user_id = ? OR discord_id = ? OR google_id = ? OR steam_id = ?
441+
WHERE user_id = ?
442+
OR discord_id = ?
443+
OR google_id = ?
444+
OR steam_id = ?
440445
)
441446
AND item_id NOT IN (
442447
SELECT itemId FROM items WHERE deleted IS NULL OR deleted = 0
@@ -448,6 +453,9 @@ export class UserService implements IUserService {
448453
if (results.length === 0) return null;
449454

450455
const user = results[0];
456+
if (user.beta_user) {
457+
user.badges = ["early_user", ...user.badges];
458+
}
451459
if (user.inventory) {
452460
user.inventory = user.inventory
453461
.filter((item: InventoryItem) => item !== null)
@@ -552,6 +560,10 @@ export class UserService implements IUserService {
552560
});
553561
}
554562

563+
if(user.beta_user) {
564+
user.badges = ["early_user", ...user.badges];
565+
}
566+
555567
return {
556568
user_id: user.user_id,
557569
username: user.username,
@@ -560,7 +572,8 @@ export class UserService implements IUserService {
560572
admin: !!user.admin,
561573
inventory: user.inventory || [],
562574
ownedItems: user.ownedItems || [],
563-
createdGames: user.createdGames || []
575+
createdGames: user.createdGames || [],
576+
badges: user.badges || []
564577
};
565578
}
566579

@@ -633,6 +646,9 @@ export class UserService implements IUserService {
633646
if (results.length === 0) return null;
634647

635648
const user = results[0];
649+
if (user.beta_user) {
650+
user.badges = ["early_user", ...user.badges];
651+
}
636652
return user;
637653
}
638654

0 commit comments

Comments
 (0)