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

Commit 0b46df4

Browse files
committed
Add game badges and view tracking features
Introduces badge and view tracking for games, including new interfaces, repositories, and services for managing badges and game views. Updates GameController to include badge and view data in game listings and details. Adds GameViewController for recording and retrieving game view statistics. Refactors dependency injection to register BadgeService and GameViewService. Also updates user creation to start with zero balance.
1 parent 6182726 commit 0b46df4

15 files changed

Lines changed: 1129 additions & 652 deletions

src/app.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import "./controllers/AuthenticatorController";
2323
import "./controllers/GameGiftController";
2424
import "./controllers/MarketListingController";
2525
import "./controllers/BuyOrderController";
26+
import "./controllers/GameViewController";
2627

2728
const server = new InversifyExpressServer(container);
2829

src/container.ts

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,41 @@
1-
import { Container } from "inversify";
2-
3-
import { IDatabaseService, DatabaseService } from "./services/DatabaseService";
4-
import { IInventoryService, InventoryService } from "./services/InventoryService";
5-
import { IItemService, ItemService } from "./services/ItemService";
6-
import { IUserService, UserService } from "./services/UserService";
7-
import { ILobbyService, LobbyService } from "./services/LobbyService";
8-
import { ITradeService, TradeService } from "./services/TradeService";
9-
import { IGameService, GameService } from "./services/GameService";
10-
import { IOAuth2Service, OAuth2Service } from "./services/OAuth2Service";
11-
import { ISteamOAuthService, SteamOAuthService } from "./services/SteamOAuthService";
12-
import { IMailService, MailService } from "./services/MailService";
13-
import { IStudioService, StudioService } from "./services/StudioService";
14-
import { ILogService, LogService } from "./services/LogService";
15-
import { IGameGiftService, GameGiftService } from "./services/GameGiftService";
16-
import { IMarketListingService, MarketListingService } from "./services/MarketListingService";
17-
import { IBuyOrderService, BuyOrderService } from "./services/BuyOrderService";
18-
19-
const container = new Container();
20-
21-
container.bind<IDatabaseService>("DatabaseService").to(DatabaseService).inSingletonScope();
22-
container.bind<IInventoryService>("InventoryService").to(InventoryService).inSingletonScope();
23-
container.bind<IItemService>("ItemService").to(ItemService).inSingletonScope();
24-
container.bind<IUserService>("UserService").to(UserService).inSingletonScope();
25-
container.bind<ILobbyService>("LobbyService").to(LobbyService).inSingletonScope();
26-
container.bind<ITradeService>("TradeService").to(TradeService).inSingletonScope();
27-
container.bind<IGameService>("GameService").to(GameService).inSingletonScope();
28-
container.bind<IOAuth2Service>("OAuth2Service").to(OAuth2Service).inSingletonScope();
29-
container.bind<ISteamOAuthService>("SteamOAuthService").to(SteamOAuthService).inSingletonScope();
30-
container.bind<IMailService>("MailService").to(MailService).inSingletonScope();
31-
container.bind<IStudioService>("StudioService").to(StudioService).inSingletonScope();
32-
container.bind<ILogService>("LogService").to(LogService).inSingletonScope();
33-
container.bind<IGameGiftService>("GameGiftService").to(GameGiftService).inSingletonScope();
34-
container.bind<IMarketListingService>("MarketListingService").to(MarketListingService).inSingletonScope();
35-
container.bind<IBuyOrderService>("BuyOrderService").to(BuyOrderService).inSingletonScope();
36-
1+
import { Container } from "inversify";
2+
3+
import { IDatabaseService, DatabaseService } from "./services/DatabaseService";
4+
import { IInventoryService, InventoryService } from "./services/InventoryService";
5+
import { IItemService, ItemService } from "./services/ItemService";
6+
import { IUserService, UserService } from "./services/UserService";
7+
import { ILobbyService, LobbyService } from "./services/LobbyService";
8+
import { ITradeService, TradeService } from "./services/TradeService";
9+
import { IGameService, GameService } from "./services/GameService";
10+
import { IOAuth2Service, OAuth2Service } from "./services/OAuth2Service";
11+
import { ISteamOAuthService, SteamOAuthService } from "./services/SteamOAuthService";
12+
import { IMailService, MailService } from "./services/MailService";
13+
import { IStudioService, StudioService } from "./services/StudioService";
14+
import { ILogService, LogService } from "./services/LogService";
15+
import { IGameGiftService, GameGiftService } from "./services/GameGiftService";
16+
import { IMarketListingService, MarketListingService } from "./services/MarketListingService";
17+
import { IBuyOrderService, BuyOrderService } from "./services/BuyOrderService";
18+
import { IBadgeService, BadgeService } from "./services/BadgeService";
19+
import { IGameViewService, GameViewService } from "./services/GameViewService";
20+
21+
const container = new Container();
22+
23+
container.bind<IDatabaseService>("DatabaseService").to(DatabaseService).inSingletonScope();
24+
container.bind<IInventoryService>("InventoryService").to(InventoryService).inSingletonScope();
25+
container.bind<IItemService>("ItemService").to(ItemService).inSingletonScope();
26+
container.bind<IUserService>("UserService").to(UserService).inSingletonScope();
27+
container.bind<ILobbyService>("LobbyService").to(LobbyService).inSingletonScope();
28+
container.bind<ITradeService>("TradeService").to(TradeService).inSingletonScope();
29+
container.bind<IGameService>("GameService").to(GameService).inSingletonScope();
30+
container.bind<IOAuth2Service>("OAuth2Service").to(OAuth2Service).inSingletonScope();
31+
container.bind<ISteamOAuthService>("SteamOAuthService").to(SteamOAuthService).inSingletonScope();
32+
container.bind<IMailService>("MailService").to(MailService).inSingletonScope();
33+
container.bind<IStudioService>("StudioService").to(StudioService).inSingletonScope();
34+
container.bind<ILogService>("LogService").to(LogService).inSingletonScope();
35+
container.bind<IGameGiftService>("GameGiftService").to(GameGiftService).inSingletonScope();
36+
container.bind<IMarketListingService>("MarketListingService").to(MarketListingService).inSingletonScope();
37+
container.bind<IBuyOrderService>("BuyOrderService").to(BuyOrderService).inSingletonScope();
38+
container.bind<IBadgeService>("BadgeService").to(BadgeService).inSingletonScope();
39+
container.bind<IGameViewService>("GameViewService").to(GameViewService).inSingletonScope();
40+
3741
export default container;

0 commit comments

Comments
 (0)