jp.db.schemas 2.1.5 → 2.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/models/activity-log.enum.d.ts +5 -1
- package/dist/models/activity-log.enum.d.ts.map +1 -1
- package/dist/models/activity-log.enum.js +4 -0
- package/dist/models/activity-log.enum.js.map +1 -1
- package/dist/repositories/activity-log.repository.d.ts +9 -1
- package/dist/repositories/activity-log.repository.d.ts.map +1 -1
- package/dist/repositories/activity-log.repository.js +28 -22
- package/dist/repositories/activity-log.repository.js.map +1 -1
- package/dist/repositories/users.repository.d.ts +1 -0
- package/dist/repositories/users.repository.d.ts.map +1 -1
- package/dist/repositories/users.repository.js +4 -0
- package/dist/repositories/users.repository.js.map +1 -1
- package/dist/schemas/user.schema.d.ts +20 -0
- package/dist/schemas/user.schema.d.ts.map +1 -1
- package/dist/schemas/user.schema.js +6 -0
- package/dist/schemas/user.schema.js.map +1 -1
- package/package.json +1 -1
- package/src/models/activity-log.enum.ts +4 -0
- package/src/repositories/activity-log.repository.ts +38 -35
- package/src/repositories/users.repository.ts +20 -13
- package/src/schemas/user.schema.ts +8 -0
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export declare enum ActivityLogEnum {
|
|
2
2
|
USER_LOGIN = "USER_LOGIN",
|
|
3
|
-
USER_GOT_BONUS = "USER_GOT_BONUS"
|
|
3
|
+
USER_GOT_BONUS = "USER_GOT_BONUS",
|
|
4
|
+
USER_PLAYED_GAME = "USER_PLAYED_GAME",
|
|
5
|
+
USER_WON_GAME = "USER_WON_GAME",
|
|
6
|
+
USER_WON_PROFI = "USER_WON_PROFI",
|
|
7
|
+
USER_WON_ONE_TABLE_TOURNAMENT = "USER_WON_ONE_TABLE_TOURNAMENT"
|
|
4
8
|
}
|
|
5
9
|
//# sourceMappingURL=activity-log.enum.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-log.enum.d.ts","sourceRoot":"","sources":["../../src/models/activity-log.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,eAAe;IACvB,UAAU,eAAe;IACzB,cAAc,mBAAmB;
|
|
1
|
+
{"version":3,"file":"activity-log.enum.d.ts","sourceRoot":"","sources":["../../src/models/activity-log.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,eAAe;IACvB,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;IACrC,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,6BAA6B,kCAAkC;CAClE"}
|
|
@@ -5,5 +5,9 @@ var ActivityLogEnum;
|
|
|
5
5
|
(function (ActivityLogEnum) {
|
|
6
6
|
ActivityLogEnum["USER_LOGIN"] = "USER_LOGIN";
|
|
7
7
|
ActivityLogEnum["USER_GOT_BONUS"] = "USER_GOT_BONUS";
|
|
8
|
+
ActivityLogEnum["USER_PLAYED_GAME"] = "USER_PLAYED_GAME";
|
|
9
|
+
ActivityLogEnum["USER_WON_GAME"] = "USER_WON_GAME";
|
|
10
|
+
ActivityLogEnum["USER_WON_PROFI"] = "USER_WON_PROFI";
|
|
11
|
+
ActivityLogEnum["USER_WON_ONE_TABLE_TOURNAMENT"] = "USER_WON_ONE_TABLE_TOURNAMENT";
|
|
8
12
|
})(ActivityLogEnum || (exports.ActivityLogEnum = ActivityLogEnum = {}));
|
|
9
13
|
//# sourceMappingURL=activity-log.enum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-log.enum.js","sourceRoot":"","sources":["../../src/models/activity-log.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"activity-log.enum.js","sourceRoot":"","sources":["../../src/models/activity-log.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAOX;AAPD,WAAY,eAAe;IACvB,4CAAyB,CAAA;IACzB,oDAAiC,CAAA;IACjC,wDAAqC,CAAA;IACrC,kDAA+B,CAAA;IAC/B,oDAAiC,CAAA;IACjC,kFAA+D,CAAA;AACnE,CAAC,EAPW,eAAe,+BAAf,eAAe,QAO1B"}
|
|
@@ -5,9 +5,17 @@ export declare class ActivityLogRepository {
|
|
|
5
5
|
private activityLogModel;
|
|
6
6
|
constructor(activityLogModel: Model<ActivityLogDocument>);
|
|
7
7
|
findLast7DaysLogins(game: string, userId: string): Promise<Array<IActivityLogUserLogin>>;
|
|
8
|
-
|
|
8
|
+
userIsNewbie(userId: string): Promise<boolean>;
|
|
9
|
+
getUserPlayedGamesCount(userId: string): Promise<number>;
|
|
10
|
+
getUserWonGamesCount(userId: string): Promise<number>;
|
|
11
|
+
getUserWonProfiCount(userId: string): Promise<number>;
|
|
12
|
+
getUserWonOneTableTournamentCount(userId: string): Promise<number>;
|
|
9
13
|
addUserLoginEvent(userId: string, userName: string, game: string, channel: string): Promise<ActivityLog>;
|
|
10
14
|
addUserGotBonuseEvent(userId: string, userName: string, game: string, channel: string, amount: number): Promise<ActivityLog>;
|
|
15
|
+
addUserPlayedGameEvent(userId: string, userName: string, game: string, channel: string): Promise<ActivityLog>;
|
|
16
|
+
addUserWonGameEvent(userId: string, userName: string, game: string, channel: string): Promise<ActivityLog>;
|
|
17
|
+
addUserWonProfieEvent(userId: string, userName: string, game: string, channel: string): Promise<ActivityLog>;
|
|
18
|
+
addUserWonOneTableTournamentEvent(userId: string, userName: string, game: string, channel: string): Promise<ActivityLog>;
|
|
11
19
|
addActivityLog(activityLog: Partial<ActivityLog>): Promise<ActivityLog>;
|
|
12
20
|
}
|
|
13
21
|
//# sourceMappingURL=activity-log.repository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-log.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/activity-log.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,IAAI,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAEpF,qBACa,qBAAqB;IAEK,OAAO,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,KAAK,CAAC,mBAAmB,CAAC;IAIjF,mBAAmB,CACrB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IA0ClC,
|
|
1
|
+
{"version":3,"file":"activity-log.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/activity-log.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,IAAI,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAEpF,qBACa,qBAAqB;IAEK,OAAO,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,KAAK,CAAC,mBAAmB,CAAC;IAIjF,mBAAmB,CACrB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IA0ClC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9C,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxD,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrD,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrD,iCAAiC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlE,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIxG,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI5H,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI7G,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI1G,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI5G,iCAAiC,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIxH,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;CAGhF"}
|
|
@@ -66,32 +66,38 @@ let ActivityLogRepository = class ActivityLogRepository {
|
|
|
66
66
|
}
|
|
67
67
|
]);
|
|
68
68
|
}
|
|
69
|
-
async
|
|
70
|
-
return await this.activityLogModel.countDocuments({
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}).exec()
|
|
69
|
+
async userIsNewbie(userId) {
|
|
70
|
+
return await this.activityLogModel.countDocuments({ userId, event: activity_log_enum_1.ActivityLogEnum.USER_LOGIN }).exec() === 1;
|
|
71
|
+
}
|
|
72
|
+
async getUserPlayedGamesCount(userId) {
|
|
73
|
+
return await this.activityLogModel.countDocuments({ userId, event: activity_log_enum_1.ActivityLogEnum.USER_PLAYED_GAME }).exec();
|
|
74
|
+
}
|
|
75
|
+
async getUserWonGamesCount(userId) {
|
|
76
|
+
return await this.activityLogModel.countDocuments({ userId, event: activity_log_enum_1.ActivityLogEnum.USER_WON_GAME }).exec();
|
|
77
|
+
}
|
|
78
|
+
async getUserWonProfiCount(userId) {
|
|
79
|
+
return await this.activityLogModel.countDocuments({ userId, event: activity_log_enum_1.ActivityLogEnum.USER_WON_PROFI }).exec();
|
|
80
|
+
}
|
|
81
|
+
async getUserWonOneTableTournamentCount(userId) {
|
|
82
|
+
return await this.activityLogModel.countDocuments({ userId, event: activity_log_enum_1.ActivityLogEnum.USER_WON_ONE_TABLE_TOURNAMENT }).exec();
|
|
74
83
|
}
|
|
75
84
|
async addUserLoginEvent(userId, userName, game, channel) {
|
|
76
|
-
return this.addActivityLog({
|
|
77
|
-
date: new Date(),
|
|
78
|
-
event: activity_log_enum_1.ActivityLogEnum.USER_LOGIN,
|
|
79
|
-
userId,
|
|
80
|
-
userName,
|
|
81
|
-
game,
|
|
82
|
-
channel,
|
|
83
|
-
});
|
|
85
|
+
return this.addActivityLog({ date: new Date(), event: activity_log_enum_1.ActivityLogEnum.USER_LOGIN, userId, userName, game, channel });
|
|
84
86
|
}
|
|
85
87
|
async addUserGotBonuseEvent(userId, userName, game, channel, amount) {
|
|
86
|
-
return this.addActivityLog({
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
88
|
+
return this.addActivityLog({ date: new Date(), event: activity_log_enum_1.ActivityLogEnum.USER_GOT_BONUS, userId, userName, game, channel, amount, });
|
|
89
|
+
}
|
|
90
|
+
async addUserPlayedGameEvent(userId, userName, game, channel) {
|
|
91
|
+
return this.addActivityLog({ date: new Date(), event: activity_log_enum_1.ActivityLogEnum.USER_PLAYED_GAME, userId, userName, game, channel, });
|
|
92
|
+
}
|
|
93
|
+
async addUserWonGameEvent(userId, userName, game, channel) {
|
|
94
|
+
return this.addActivityLog({ date: new Date(), event: activity_log_enum_1.ActivityLogEnum.USER_WON_GAME, userId, userName, game, channel });
|
|
95
|
+
}
|
|
96
|
+
async addUserWonProfieEvent(userId, userName, game, channel) {
|
|
97
|
+
return this.addActivityLog({ date: new Date(), event: activity_log_enum_1.ActivityLogEnum.USER_WON_PROFI, userId, userName, game, channel });
|
|
98
|
+
}
|
|
99
|
+
async addUserWonOneTableTournamentEvent(userId, userName, game, channel) {
|
|
100
|
+
return this.addActivityLog({ date: new Date(), event: activity_log_enum_1.ActivityLogEnum.USER_WON_ONE_TABLE_TOURNAMENT, userId, userName, game, channel });
|
|
95
101
|
}
|
|
96
102
|
async addActivityLog(activityLog) {
|
|
97
103
|
return this.activityLogModel.create(activityLog);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-log.repository.js","sourceRoot":"","sources":["../../src/repositories/activity-log.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,+CAA+C;AAC/C,uCAAiC;AACjC,kDAA0B;AAE1B,0BAAsD;AACtD,mEAA8D;AAIvD,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAC9B,YAC2C,gBAA4C;QAA5C,qBAAgB,GAAhB,gBAAgB,CAA4B;IAEvF,CAAC;IAED,KAAK,CAAC,mBAAmB,CACrB,IAAY,EACZ,MAAc;QAEd,MAAM,OAAO,GAAG,IAAA,eAAK,GAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAEvD,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;YACnC;gBACI,MAAM,EAAE;oBACJ,IAAI;oBACJ,MAAM;oBACN,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE;oBAChC,KAAK,EAAE,mCAAe,CAAC,UAAU;iBACpC;aACJ;YACD;gBACI,MAAM,EAAE;oBACJ,GAAG,EAAE,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;oBAC7D,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;oBAC7B,QAAQ,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;oBACjC,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;oBAC3B,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;oBACzB,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;oBAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;iBACrB;aACJ;YACD;gBACI,QAAQ,EAAE;oBACN,GAAG,EAAE,CAAC;oBACN,EAAE,EAAE,MAAM;oBACV,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,CAAC;oBACX,KAAK,EAAE,CAAC;oBACR,IAAI,EAAE,CAAC;oBACP,OAAO,EAAE,CAAC;oBACV,KAAK,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;iBACf;aACJ;YACD;gBACI,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE;aACxB;SACJ,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"activity-log.repository.js","sourceRoot":"","sources":["../../src/repositories/activity-log.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,5 +24,6 @@ export declare class UsersRepository {
|
|
|
24
24
|
createUser(user: Partial<User>): Promise<User>;
|
|
25
25
|
updateUser(userId: string, user: Partial<User>, balanceAdding?: number): Promise<UserDocument | null>;
|
|
26
26
|
saveGameResult(usersBalances: Array<UserGameResultType>): Promise<BulkWriteResult>;
|
|
27
|
+
addAchievement(userId: string, achievementCode: string): Promise<void>;
|
|
27
28
|
}
|
|
28
29
|
//# sourceMappingURL=users.repository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/users.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAWzC,MAAM,MAAM,kBAAkB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACvB,CAAA;AAED,qBACa,eAAe;
|
|
1
|
+
{"version":3,"file":"users.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/users.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAWzC,MAAM,MAAM,kBAAkB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACvB,CAAA;AAED,qBACa,eAAe;IACY,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC;IAGpE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAM1C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAM9C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAM9C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAM9C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAMtD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAM9C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAM9C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QACvE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnB,KAAK,EAAE,MAAM,CAAA;KAChB,CAAC;IAeI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAerG,cAAc,CAAC,aAAa,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAiBlF,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAM/E"}
|
|
@@ -99,6 +99,10 @@ let UsersRepository = class UsersRepository {
|
|
|
99
99
|
},
|
|
100
100
|
})));
|
|
101
101
|
}
|
|
102
|
+
async addAchievement(userId, achievementCode) {
|
|
103
|
+
await this.userModel.findByIdAndUpdate(userId, { $push: { achievements: achievementCode } })
|
|
104
|
+
.exec();
|
|
105
|
+
}
|
|
102
106
|
};
|
|
103
107
|
exports.UsersRepository = UsersRepository;
|
|
104
108
|
exports.UsersRepository = UsersRepository = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.repository.js","sourceRoot":"","sources":["../../src/repositories/users.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,+CAA+C;AAC/C,uCAAiC;AAGjC,2BAAyC;AAEzC,SAAS,iBAAiB,
|
|
1
|
+
{"version":3,"file":"users.repository.js","sourceRoot":"","sources":["../../src/repositories/users.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,6 +85,8 @@ export declare class User {
|
|
|
85
85
|
winnerRatings: Array<IUserWinnerRating>;
|
|
86
86
|
achievements: Array<string>;
|
|
87
87
|
bannedUsers: Array<string>;
|
|
88
|
+
hasAchievement(achievementCode: string): boolean;
|
|
89
|
+
hasNoAchievement(achievementCode: string): boolean;
|
|
88
90
|
}
|
|
89
91
|
export declare const UserSchema: import("mongoose").Schema<User, import("mongoose").Model<User, any, any, any, (Document<unknown, any, User, any, import("mongoose").DefaultSchemaOptions> & User & {
|
|
90
92
|
_id: import("mongoose").Types.ObjectId;
|
|
@@ -411,5 +413,23 @@ export declare const UserSchema: import("mongoose").Schema<User, import("mongoos
|
|
|
411
413
|
}, "id"> & {
|
|
412
414
|
id: string;
|
|
413
415
|
}>;
|
|
416
|
+
hasAchievement?: import("mongoose").SchemaDefinitionProperty<(achievementCode: string) => boolean, User, Document<unknown, {}, User, {
|
|
417
|
+
id: string;
|
|
418
|
+
}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<User & {
|
|
419
|
+
_id: import("mongoose").Types.ObjectId;
|
|
420
|
+
} & {
|
|
421
|
+
__v: number;
|
|
422
|
+
}, "id"> & {
|
|
423
|
+
id: string;
|
|
424
|
+
}>;
|
|
425
|
+
hasNoAchievement?: import("mongoose").SchemaDefinitionProperty<(achievementCode: string) => boolean, User, Document<unknown, {}, User, {
|
|
426
|
+
id: string;
|
|
427
|
+
}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<User & {
|
|
428
|
+
_id: import("mongoose").Types.ObjectId;
|
|
429
|
+
} & {
|
|
430
|
+
__v: number;
|
|
431
|
+
}, "id"> & {
|
|
432
|
+
id: string;
|
|
433
|
+
}>;
|
|
414
434
|
}, User>;
|
|
415
435
|
//# sourceMappingURL=user.schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/user.schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"user.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/user.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,12 @@ const user_tg_schema_1 = require("./user.tg.schema");
|
|
|
18
18
|
const user_google_schema_1 = require("./user.google.schema");
|
|
19
19
|
const user_fb_schema_1 = require("./user.fb.schema");
|
|
20
20
|
let User = class User {
|
|
21
|
+
hasAchievement(achievementCode) {
|
|
22
|
+
return this.achievements.some((item) => item === achievementCode);
|
|
23
|
+
}
|
|
24
|
+
hasNoAchievement(achievementCode) {
|
|
25
|
+
return !this.hasAchievement(achievementCode);
|
|
26
|
+
}
|
|
21
27
|
};
|
|
22
28
|
exports.User = User;
|
|
23
29
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.schema.js","sourceRoot":"","sources":["../../src/schemas/user.schema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwE;AAGxE,qDAA0C;AAE1C,qDAA0C;AAC1C,qDAA0C;AAC1C,qDAA0C;AAC1C,6DAAkD;AAClD,qDAA0C;AAoDnC,IAAM,IAAI,GAAV,MAAM,IAAI;
|
|
1
|
+
{"version":3,"file":"user.schema.js","sourceRoot":"","sources":["../../src/schemas/user.schema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export enum ActivityLogEnum {
|
|
2
2
|
USER_LOGIN = 'USER_LOGIN',
|
|
3
3
|
USER_GOT_BONUS = 'USER_GOT_BONUS',
|
|
4
|
+
USER_PLAYED_GAME = 'USER_PLAYED_GAME',
|
|
5
|
+
USER_WON_GAME = 'USER_WON_GAME',
|
|
6
|
+
USER_WON_PROFI = 'USER_WON_PROFI',
|
|
7
|
+
USER_WON_ONE_TABLE_TOURNAMENT = 'USER_WON_ONE_TABLE_TOURNAMENT',
|
|
4
8
|
}
|
|
@@ -59,45 +59,48 @@ export class ActivityLogRepository {
|
|
|
59
59
|
])
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
async
|
|
63
|
-
return await this.activityLogModel.countDocuments({
|
|
64
|
-
userId,
|
|
65
|
-
event: ActivityLogEnum.USER_LOGIN,
|
|
66
|
-
}).exec() === 1;
|
|
62
|
+
async userIsNewbie(userId: string): Promise<boolean> {
|
|
63
|
+
return await this.activityLogModel.countDocuments({ userId, event: ActivityLogEnum.USER_LOGIN }).exec() === 1;
|
|
67
64
|
}
|
|
68
65
|
|
|
69
|
-
async
|
|
70
|
-
userId:
|
|
71
|
-
userName: string,
|
|
72
|
-
game: string,
|
|
73
|
-
channel: string,
|
|
74
|
-
): Promise<ActivityLog> {
|
|
75
|
-
return this.addActivityLog({
|
|
76
|
-
date: new Date(),
|
|
77
|
-
event: ActivityLogEnum.USER_LOGIN,
|
|
78
|
-
userId,
|
|
79
|
-
userName,
|
|
80
|
-
game,
|
|
81
|
-
channel,
|
|
82
|
-
});
|
|
66
|
+
async getUserPlayedGamesCount(userId: string): Promise<number> {
|
|
67
|
+
return await this.activityLogModel.countDocuments({ userId, event: ActivityLogEnum.USER_PLAYED_GAME }).exec()
|
|
83
68
|
}
|
|
84
69
|
|
|
85
|
-
async
|
|
86
|
-
userId:
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
70
|
+
async getUserWonGamesCount(userId: string): Promise<number> {
|
|
71
|
+
return await this.activityLogModel.countDocuments({ userId, event: ActivityLogEnum.USER_WON_GAME }).exec()
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
async getUserWonProfiCount(userId: string): Promise<number> {
|
|
75
|
+
return await this.activityLogModel.countDocuments({ userId, event: ActivityLogEnum.USER_WON_PROFI }).exec()
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
async getUserWonOneTableTournamentCount(userId: string): Promise<number> {
|
|
79
|
+
return await this.activityLogModel.countDocuments({ userId, event: ActivityLogEnum.USER_WON_ONE_TABLE_TOURNAMENT }).exec()
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
async addUserLoginEvent(userId: string, userName: string, game: string, channel: string): Promise<ActivityLog> {
|
|
83
|
+
return this.addActivityLog({ date: new Date(), event: ActivityLogEnum.USER_LOGIN, userId, userName, game, channel });
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
async addUserGotBonuseEvent(userId: string, userName: string, game: string, channel: string, amount: number): Promise<ActivityLog> {
|
|
87
|
+
return this.addActivityLog({ date: new Date(), event: ActivityLogEnum.USER_GOT_BONUS, userId, userName, game, channel, amount, });
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
async addUserPlayedGameEvent(userId: string, userName: string, game: string, channel: string): Promise<ActivityLog> {
|
|
91
|
+
return this.addActivityLog({ date: new Date(), event: ActivityLogEnum.USER_PLAYED_GAME, userId, userName, game, channel, });
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
async addUserWonGameEvent(userId: string, userName: string, game: string, channel: string): Promise<ActivityLog> {
|
|
95
|
+
return this.addActivityLog({ date: new Date(), event: ActivityLogEnum.USER_WON_GAME, userId, userName, game, channel });
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
async addUserWonProfieEvent(userId: string, userName: string, game: string, channel: string): Promise<ActivityLog> {
|
|
99
|
+
return this.addActivityLog({ date: new Date(), event: ActivityLogEnum.USER_WON_PROFI, userId, userName, game, channel });
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
async addUserWonOneTableTournamentEvent(userId: string, userName: string, game: string, channel: string): Promise<ActivityLog> {
|
|
103
|
+
return this.addActivityLog({ date: new Date(), event: ActivityLogEnum.USER_WON_ONE_TABLE_TOURNAMENT, userId, userName, game, channel });
|
|
101
104
|
}
|
|
102
105
|
|
|
103
106
|
async addActivityLog(activityLog: Partial<ActivityLog>): Promise<ActivityLog> {
|
|
@@ -5,7 +5,7 @@ import { BulkWriteResult } from 'mongodb';
|
|
|
5
5
|
|
|
6
6
|
import { User, UserDocument } from '../';
|
|
7
7
|
|
|
8
|
-
function getFullNameFilter
|
|
8
|
+
function getFullNameFilter(userName: string) {
|
|
9
9
|
const regexpName = {
|
|
10
10
|
'$regex': userName,
|
|
11
11
|
'$options': 'i',
|
|
@@ -23,52 +23,52 @@ export type UserGameResultType = {
|
|
|
23
23
|
|
|
24
24
|
@Injectable()
|
|
25
25
|
export class UsersRepository {
|
|
26
|
-
constructor
|
|
26
|
+
constructor(@InjectModel(User.name) private userModel: Model<UserDocument>) {
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
async findById
|
|
29
|
+
async findById(id: string): Promise<User | null> {
|
|
30
30
|
return this.userModel
|
|
31
31
|
.findById(id)
|
|
32
32
|
.exec();
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
async findByVKId
|
|
35
|
+
async findByVKId(vkId: number): Promise<User | null> {
|
|
36
36
|
return this.userModel
|
|
37
37
|
.findOne({ 'vkUser.id': vkId })
|
|
38
38
|
.exec();
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
async findByOkId
|
|
41
|
+
async findByOkId(okId: string): Promise<User | null> {
|
|
42
42
|
return this.userModel
|
|
43
43
|
.findOne({ 'okUser.uid': okId })
|
|
44
44
|
.exec();
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
async findByYAId
|
|
47
|
+
async findByYAId(yaId: string): Promise<User | null> {
|
|
48
48
|
return this.userModel
|
|
49
49
|
.findOne({ 'yaUser.userId': yaId })
|
|
50
50
|
.exec();
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
async findByGoogleId
|
|
53
|
+
async findByGoogleId(googleId: string): Promise<User | null> {
|
|
54
54
|
return this.userModel
|
|
55
55
|
.findOne({ 'googleUser.userId': googleId })
|
|
56
56
|
.exec();
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
async findByFBId
|
|
59
|
+
async findByFBId(fbId: string): Promise<User | null> {
|
|
60
60
|
return this.userModel
|
|
61
61
|
.findOne({ 'fbUser.playerId': fbId })
|
|
62
62
|
.exec();
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
async findByTGId
|
|
65
|
+
async findByTGId(tgId: number): Promise<User | null> {
|
|
66
66
|
return this.userModel
|
|
67
67
|
.findOne({ 'tgUser.id': tgId })
|
|
68
68
|
.exec();
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
async findAndCount
|
|
71
|
+
async findAndCount(userName: string, limit: number, skip: number): Promise<{
|
|
72
72
|
items: Array<User>,
|
|
73
73
|
total: number
|
|
74
74
|
}> {
|
|
@@ -86,11 +86,11 @@ export class UsersRepository {
|
|
|
86
86
|
return { items, total };
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
async createUser
|
|
89
|
+
async createUser(user: Partial<User>): Promise<User> {
|
|
90
90
|
return this.userModel.create(user);
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
async updateUser
|
|
93
|
+
async updateUser(userId: string, user: Partial<User>, balanceAdding?: number): Promise<UserDocument | null> {
|
|
94
94
|
delete user.balance;
|
|
95
95
|
|
|
96
96
|
return this.userModel.findByIdAndUpdate(
|
|
@@ -105,7 +105,7 @@ export class UsersRepository {
|
|
|
105
105
|
).exec();
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
async saveGameResult
|
|
108
|
+
async saveGameResult(usersBalances: Array<UserGameResultType>): Promise<BulkWriteResult> {
|
|
109
109
|
return this.userModel.bulkWrite(
|
|
110
110
|
usersBalances.map((item) => ({
|
|
111
111
|
updateOne: {
|
|
@@ -121,4 +121,11 @@ export class UsersRepository {
|
|
|
121
121
|
})),
|
|
122
122
|
);
|
|
123
123
|
}
|
|
124
|
+
|
|
125
|
+
async addAchievement(userId: string, achievementCode: string): Promise<void> {
|
|
126
|
+
await this.userModel.findByIdAndUpdate(
|
|
127
|
+
userId,
|
|
128
|
+
{ $push: { achievements: achievementCode } })
|
|
129
|
+
.exec();
|
|
130
|
+
}
|
|
124
131
|
}
|
|
@@ -179,6 +179,14 @@ export class User {
|
|
|
179
179
|
|
|
180
180
|
@Prop({ default: [] })
|
|
181
181
|
bannedUsers: Array<string>;
|
|
182
|
+
|
|
183
|
+
hasAchievement(achievementCode: string): boolean {
|
|
184
|
+
return this.achievements.some((item) => item === achievementCode);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
hasNoAchievement(achievementCode: string): boolean {
|
|
188
|
+
return !this.hasAchievement(achievementCode);
|
|
189
|
+
}
|
|
182
190
|
}
|
|
183
191
|
|
|
184
192
|
export const UserSchema = SchemaFactory.createForClass(User);
|