jp.db.schemas 2.0.26 → 2.1.0

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.
Files changed (90) hide show
  1. package/dist/index.d.ts +6 -4
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +5 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/models/activity-log.enum.d.ts +5 -0
  6. package/dist/models/activity-log.enum.d.ts.map +1 -0
  7. package/dist/models/activity-log.enum.js +9 -0
  8. package/dist/models/activity-log.enum.js.map +1 -0
  9. package/dist/repositories/activity-log.repository.d.ts +11 -0
  10. package/dist/repositories/activity-log.repository.d.ts.map +1 -0
  11. package/dist/repositories/activity-log.repository.js +93 -0
  12. package/dist/repositories/activity-log.repository.js.map +1 -0
  13. package/dist/repositories/index.d.ts +2 -1
  14. package/dist/repositories/index.d.ts.map +1 -1
  15. package/dist/repositories/index.js +3 -1
  16. package/dist/repositories/index.js.map +1 -1
  17. package/dist/schemas/activity_log.schema.d.ts +105 -0
  18. package/dist/schemas/activity_log.schema.d.ts.map +1 -0
  19. package/dist/schemas/activity_log.schema.js +57 -0
  20. package/dist/schemas/activity_log.schema.js.map +1 -0
  21. package/dist/schemas/daily_bonus.schema.d.ts +12 -0
  22. package/dist/schemas/daily_bonus.schema.d.ts.map +1 -1
  23. package/dist/schemas/daily_bonus.schema.js +8 -0
  24. package/dist/schemas/daily_bonus.schema.js.map +1 -1
  25. package/package.json +31 -30
  26. package/readme.md +3 -3
  27. package/src/index.ts +226 -219
  28. package/src/models/activity-log.enum.ts +4 -0
  29. package/src/models/tournament-participant.interface.ts +5 -5
  30. package/src/models/tournament-status.enum.ts +6 -6
  31. package/src/models/tournament-template.enum.ts +3 -3
  32. package/src/models/tournament-winner.interface.ts +7 -7
  33. package/src/repositories/activity-log.repository.ts +93 -0
  34. package/src/repositories/admin.repository.ts +23 -23
  35. package/src/repositories/article.repository.ts +33 -33
  36. package/src/repositories/balance-history.repository.ts +15 -15
  37. package/src/repositories/banners.repository.ts +54 -54
  38. package/src/repositories/complains.repository.ts +30 -30
  39. package/src/repositories/daily-bonus.repository.ts +19 -19
  40. package/src/repositories/game-result.repository.ts +15 -15
  41. package/src/repositories/index.ts +47 -45
  42. package/src/repositories/menu.repository.ts +21 -21
  43. package/src/repositories/notification.repository.ts +54 -54
  44. package/src/repositories/premium.repository.ts +19 -19
  45. package/src/repositories/products.repository.ts +29 -29
  46. package/src/repositories/rooms.repository.ts +17 -17
  47. package/src/repositories/rule.repository.ts +19 -19
  48. package/src/repositories/scheduled-tournaments.repository.ts +30 -30
  49. package/src/repositories/servers.repository.ts +18 -18
  50. package/src/repositories/setting.repository.ts +19 -19
  51. package/src/repositories/simple-rooms.repository.ts +17 -17
  52. package/src/repositories/tournament-many-tables-rooms.repository.ts +132 -132
  53. package/src/repositories/tournament-one-table-rooms.repository.ts +106 -106
  54. package/src/repositories/users.repository.ts +124 -124
  55. package/src/repositories/welcome.repository.ts +19 -19
  56. package/src/schemas/achievement.schema.ts +40 -40
  57. package/src/schemas/activity_log.schema.ts +37 -0
  58. package/src/schemas/admin.schema.ts +22 -22
  59. package/src/schemas/article.schema.ts +37 -37
  60. package/src/schemas/balance_history.schema.ts +37 -37
  61. package/src/schemas/banner.schema.ts +40 -40
  62. package/src/schemas/channel_message.schema.ts +31 -31
  63. package/src/schemas/complain.schema.ts +46 -46
  64. package/src/schemas/daily_bonus.schema.ts +56 -50
  65. package/src/schemas/feature.schema.ts +28 -28
  66. package/src/schemas/game_result.schema.ts +68 -68
  67. package/src/schemas/menu.schema.ts +40 -40
  68. package/src/schemas/notification.schema.ts +61 -61
  69. package/src/schemas/premium.schema.ts +45 -45
  70. package/src/schemas/product.schema.ts +123 -123
  71. package/src/schemas/purchase.schema.ts +64 -64
  72. package/src/schemas/purchase_channel.schema.ts +31 -31
  73. package/src/schemas/rating.schema.ts +46 -46
  74. package/src/schemas/rooms.schema.ts +63 -63
  75. package/src/schemas/rule.schema.ts +45 -45
  76. package/src/schemas/scheduled_tournament.schema.ts +93 -93
  77. package/src/schemas/server.schema.ts +22 -22
  78. package/src/schemas/setting.schema.ts +55 -55
  79. package/src/schemas/simple_rooms.schema.ts +46 -46
  80. package/src/schemas/tournament_many_tables_rooms.schema.ts +84 -84
  81. package/src/schemas/tournament_one_table_rooms.schema.ts +81 -81
  82. package/src/schemas/user.fb.schema.ts +33 -33
  83. package/src/schemas/user.google.schema.ts +24 -24
  84. package/src/schemas/user.ok.schema.ts +52 -52
  85. package/src/schemas/user.schema.ts +184 -184
  86. package/src/schemas/user.tg.schema.ts +30 -30
  87. package/src/schemas/user.vk.schema.ts +70 -70
  88. package/src/schemas/user.ya.schema.ts +24 -24
  89. package/src/schemas/welcome.schema.ts +45 -45
  90. package/src/utils.ts +3 -3
@@ -1,33 +1,33 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { Article, ArticleDocument } from '../';
6
-
7
- @Injectable()
8
- export class ArticleRepository {
9
- constructor (@InjectModel(Article.name) private articleModel: Model<ArticleDocument>) {
10
- }
11
-
12
- async findAllArticles (): Promise<Array<Article>> {
13
- return this.articleModel
14
- .find()
15
- .sort({ createDate: -1 })
16
- .exec();
17
- }
18
-
19
- async findLastArticle (): Promise<Article | null> {
20
- return await this.articleModel
21
- .findOne()
22
- .sort({ createDate: -1 })
23
- .exec();
24
- }
25
-
26
- async findTop3Articles (): Promise<Array<Article>> {
27
- return this.articleModel
28
- .find()
29
- .sort({ createDate: -1 })
30
- .limit(3)
31
- .exec();
32
- }
33
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { Article, ArticleDocument } from '../';
6
+
7
+ @Injectable()
8
+ export class ArticleRepository {
9
+ constructor (@InjectModel(Article.name) private articleModel: Model<ArticleDocument>) {
10
+ }
11
+
12
+ async findAllArticles (): Promise<Array<Article>> {
13
+ return this.articleModel
14
+ .find()
15
+ .sort({ createDate: -1 })
16
+ .exec();
17
+ }
18
+
19
+ async findLastArticle (): Promise<Article | null> {
20
+ return await this.articleModel
21
+ .findOne()
22
+ .sort({ createDate: -1 })
23
+ .exec();
24
+ }
25
+
26
+ async findTop3Articles (): Promise<Array<Article>> {
27
+ return this.articleModel
28
+ .find()
29
+ .sort({ createDate: -1 })
30
+ .limit(3)
31
+ .exec();
32
+ }
33
+ }
@@ -1,15 +1,15 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { BalanceHistory, BalanceHistoryDocument } from '../';
6
-
7
- @Injectable()
8
- export class BalanceHistoryRepository {
9
- constructor (@InjectModel(BalanceHistory.name) private balanceHistoryModel: Model<BalanceHistoryDocument>) {
10
- }
11
-
12
- public async createBalanceHistory (gameResult: Partial<BalanceHistory>): Promise<BalanceHistory> {
13
- return this.balanceHistoryModel.create(gameResult);
14
- }
15
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { BalanceHistory, BalanceHistoryDocument } from '../';
6
+
7
+ @Injectable()
8
+ export class BalanceHistoryRepository {
9
+ constructor (@InjectModel(BalanceHistory.name) private balanceHistoryModel: Model<BalanceHistoryDocument>) {
10
+ }
11
+
12
+ public async createBalanceHistory (gameResult: Partial<BalanceHistory>): Promise<BalanceHistory> {
13
+ return this.balanceHistoryModel.create(gameResult);
14
+ }
15
+ }
@@ -1,54 +1,54 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { Banner, BannerDocument } from '../';
6
-
7
- @Injectable()
8
- export class BannersRepository {
9
- constructor (@InjectModel(Banner.name) private bannerModel: Model<BannerDocument>) {
10
- }
11
-
12
- async findById (id: string): Promise<Banner | null> {
13
- return this.bannerModel
14
- .findById(id)
15
- .exec();
16
- }
17
-
18
- async findAndCount (limit: number, skip: number): Promise<{
19
- items: Array<Banner>,
20
- total: number
21
- }> {
22
- const items = await this.bannerModel
23
- .find()
24
- .sort({ createDate: -1 })
25
- .limit(limit)
26
- .skip(skip)
27
- .exec();
28
-
29
- const total = await this.bannerModel
30
- .find()
31
- .countDocuments()
32
- .exec();
33
-
34
- return { items, total };
35
- }
36
-
37
- public async createBanner (banner: Banner): Promise<Banner> {
38
- return this.bannerModel.create(banner);
39
- }
40
-
41
- async updateBanner (bannerId: string, banner: Partial<Banner>): Promise<void> {
42
- await this.bannerModel.findByIdAndUpdate(
43
- bannerId,
44
- {
45
- $set: {
46
- ...banner,
47
- },
48
- }).exec();
49
- }
50
-
51
- public async removeBanner (bannerId: string): Promise<void> {
52
- await this.bannerModel.findByIdAndDelete(bannerId);
53
- }
54
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { Banner, BannerDocument } from '../';
6
+
7
+ @Injectable()
8
+ export class BannersRepository {
9
+ constructor (@InjectModel(Banner.name) private bannerModel: Model<BannerDocument>) {
10
+ }
11
+
12
+ async findById (id: string): Promise<Banner | null> {
13
+ return this.bannerModel
14
+ .findById(id)
15
+ .exec();
16
+ }
17
+
18
+ async findAndCount (limit: number, skip: number): Promise<{
19
+ items: Array<Banner>,
20
+ total: number
21
+ }> {
22
+ const items = await this.bannerModel
23
+ .find()
24
+ .sort({ createDate: -1 })
25
+ .limit(limit)
26
+ .skip(skip)
27
+ .exec();
28
+
29
+ const total = await this.bannerModel
30
+ .find()
31
+ .countDocuments()
32
+ .exec();
33
+
34
+ return { items, total };
35
+ }
36
+
37
+ public async createBanner (banner: Banner): Promise<Banner> {
38
+ return this.bannerModel.create(banner);
39
+ }
40
+
41
+ async updateBanner (bannerId: string, banner: Partial<Banner>): Promise<void> {
42
+ await this.bannerModel.findByIdAndUpdate(
43
+ bannerId,
44
+ {
45
+ $set: {
46
+ ...banner,
47
+ },
48
+ }).exec();
49
+ }
50
+
51
+ public async removeBanner (bannerId: string): Promise<void> {
52
+ await this.bannerModel.findByIdAndDelete(bannerId);
53
+ }
54
+ }
@@ -1,30 +1,30 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { Complain, ComplainDocument } from '../';
6
-
7
- @Injectable()
8
- export class ComplainsRepository {
9
- constructor (@InjectModel(Complain.name) private complainModel: Model<ComplainDocument>) {
10
- }
11
-
12
- async findAndCount (limit: number, skip: number): Promise<{
13
- items: Array<Complain>,
14
- total: number
15
- }> {
16
- const items = await this.complainModel
17
- .find()
18
- .sort({ createDate: -1 })
19
- .limit(limit)
20
- .skip(skip)
21
- .exec();
22
-
23
- const total = await this.complainModel
24
- .find()
25
- .countDocuments()
26
- .exec();
27
-
28
- return { items, total };
29
- }
30
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { Complain, ComplainDocument } from '../';
6
+
7
+ @Injectable()
8
+ export class ComplainsRepository {
9
+ constructor (@InjectModel(Complain.name) private complainModel: Model<ComplainDocument>) {
10
+ }
11
+
12
+ async findAndCount (limit: number, skip: number): Promise<{
13
+ items: Array<Complain>,
14
+ total: number
15
+ }> {
16
+ const items = await this.complainModel
17
+ .find()
18
+ .sort({ createDate: -1 })
19
+ .limit(limit)
20
+ .skip(skip)
21
+ .exec();
22
+
23
+ const total = await this.complainModel
24
+ .find()
25
+ .countDocuments()
26
+ .exec();
27
+
28
+ return { items, total };
29
+ }
30
+ }
@@ -1,20 +1,20 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { DailyBonus, DailyBonusDocument } from '../';
6
- import { getChannelRegExpFilter } from '../utils';
7
-
8
- @Injectable()
9
- export class DailyBonusRepository {
10
- constructor (@InjectModel(DailyBonus.name) private dailyBonusModel: Model<DailyBonusDocument>) {
11
- }
12
-
13
- async findDailyBonuses (channel: string, game: string): Promise<Array<DailyBonus> | null> {
14
- return this.dailyBonusModel
15
- .find({
16
- channels: getChannelRegExpFilter(channel),
17
- })
18
- .exec();
19
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { DailyBonus, DailyBonusDocument } from '../';
6
+ import { getChannelRegExpFilter } from '../utils';
7
+
8
+ @Injectable()
9
+ export class DailyBonusRepository {
10
+ constructor (@InjectModel(DailyBonus.name) private dailyBonusModel: Model<DailyBonusDocument>) {
11
+ }
12
+
13
+ async findDailyBonuses (channel: string, game: string): Promise<Array<DailyBonus> | null> {
14
+ return this.dailyBonusModel
15
+ .find({
16
+ channels: getChannelRegExpFilter(channel),
17
+ })
18
+ .exec();
19
+ }
20
20
  }
@@ -1,15 +1,15 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { GameResult, GameResultDocument } from '../';
6
-
7
- @Injectable()
8
- export class GameResultRepository {
9
- constructor (@InjectModel(GameResult.name) private gameResultModel: Model<GameResultDocument>) {
10
- }
11
-
12
- public async createGameResult (gameResult: Partial<GameResult>): Promise<GameResult> {
13
- return this.gameResultModel.create(gameResult);
14
- }
15
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { GameResult, GameResultDocument } from '../';
6
+
7
+ @Injectable()
8
+ export class GameResultRepository {
9
+ constructor (@InjectModel(GameResult.name) private gameResultModel: Model<GameResultDocument>) {
10
+ }
11
+
12
+ public async createGameResult (gameResult: Partial<GameResult>): Promise<GameResult> {
13
+ return this.gameResultModel.create(gameResult);
14
+ }
15
+ }
@@ -1,45 +1,47 @@
1
- import { AdminRepository } from './admin.repository';
2
- import { ArticleRepository } from './article.repository';
3
- import { BannersRepository } from './banners.repository';
4
- import { ComplainsRepository } from './complains.repository';
5
- import { NotificationRepository } from './notification.repository';
6
- import { ProductsRepository } from './products.repository';
7
- import { ScheduledTournamentsRepository } from './scheduled-tournaments.repository';
8
- import { ServersRepository } from './servers.repository';
9
- import { UsersRepository } from './users.repository';
10
- import { MenuRepository } from './menu.repository';
11
- import { RuleRepository } from './rule.repository';
12
- import { SettingRepository } from './setting.repository';
13
- import { PremiumRepository } from './premium.repository';
14
- import { WelcomeRepository } from './welcome.repository';
15
- import { DailyBonusRepository } from './daily-bonus.repository';
16
- import { RoomsRepository } from './rooms.repository';
17
- import { GameResultRepository } from './game-result.repository';
18
- import { BalanceHistoryRepository } from './balance-history.repository';
19
- import { SimpleRoomsRepository } from './simple-rooms.repository';
20
- import { TournamentOneTableRoomsRepository } from './tournament-one-table-rooms.repository';
21
- import { TournamentManyTablesRoomsRepository } from './tournament-many-tables-rooms.repository';
22
-
23
- export {
24
- AdminRepository,
25
- ArticleRepository,
26
- BannersRepository,
27
- ComplainsRepository,
28
- NotificationRepository,
29
- ProductsRepository,
30
- ScheduledTournamentsRepository,
31
- ServersRepository,
32
- UsersRepository,
33
- MenuRepository,
34
- RuleRepository,
35
- SettingRepository,
36
- PremiumRepository,
37
- WelcomeRepository,
38
- DailyBonusRepository,
39
- RoomsRepository,
40
- GameResultRepository,
41
- BalanceHistoryRepository,
42
- SimpleRoomsRepository,
43
- TournamentOneTableRoomsRepository,
44
- TournamentManyTablesRoomsRepository,
45
- }
1
+ import { AdminRepository } from './admin.repository';
2
+ import { ArticleRepository } from './article.repository';
3
+ import { BannersRepository } from './banners.repository';
4
+ import { ComplainsRepository } from './complains.repository';
5
+ import { NotificationRepository } from './notification.repository';
6
+ import { ProductsRepository } from './products.repository';
7
+ import { ScheduledTournamentsRepository } from './scheduled-tournaments.repository';
8
+ import { ServersRepository } from './servers.repository';
9
+ import { UsersRepository } from './users.repository';
10
+ import { MenuRepository } from './menu.repository';
11
+ import { RuleRepository } from './rule.repository';
12
+ import { SettingRepository } from './setting.repository';
13
+ import { PremiumRepository } from './premium.repository';
14
+ import { WelcomeRepository } from './welcome.repository';
15
+ import { DailyBonusRepository } from './daily-bonus.repository';
16
+ import { RoomsRepository } from './rooms.repository';
17
+ import { GameResultRepository } from './game-result.repository';
18
+ import { BalanceHistoryRepository } from './balance-history.repository';
19
+ import { SimpleRoomsRepository } from './simple-rooms.repository';
20
+ import { TournamentOneTableRoomsRepository } from './tournament-one-table-rooms.repository';
21
+ import { TournamentManyTablesRoomsRepository } from './tournament-many-tables-rooms.repository';
22
+ import { ActivityLogRepository } from './activity-log.repository';
23
+
24
+ export {
25
+ AdminRepository,
26
+ ArticleRepository,
27
+ BannersRepository,
28
+ ComplainsRepository,
29
+ NotificationRepository,
30
+ ProductsRepository,
31
+ ScheduledTournamentsRepository,
32
+ ServersRepository,
33
+ UsersRepository,
34
+ MenuRepository,
35
+ RuleRepository,
36
+ SettingRepository,
37
+ PremiumRepository,
38
+ WelcomeRepository,
39
+ DailyBonusRepository,
40
+ RoomsRepository,
41
+ GameResultRepository,
42
+ BalanceHistoryRepository,
43
+ SimpleRoomsRepository,
44
+ TournamentOneTableRoomsRepository,
45
+ TournamentManyTablesRoomsRepository,
46
+ ActivityLogRepository,
47
+ }
@@ -1,21 +1,21 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { Menu, MenuDocument } from '../';
6
- import { getChannelRegExpFilter } from '../utils';
7
-
8
- @Injectable()
9
- export class MenuRepository {
10
- constructor (@InjectModel(Menu.name) private menuModel: Model<MenuDocument>) {
11
- }
12
-
13
- async findMenus (channel: string, game: string): Promise<Array<Menu> | null> {
14
- return this.menuModel
15
- .find({
16
- channels: getChannelRegExpFilter(channel),
17
- })
18
- .exec();
19
- }
20
- }
21
-
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { Menu, MenuDocument } from '../';
6
+ import { getChannelRegExpFilter } from '../utils';
7
+
8
+ @Injectable()
9
+ export class MenuRepository {
10
+ constructor (@InjectModel(Menu.name) private menuModel: Model<MenuDocument>) {
11
+ }
12
+
13
+ async findMenus (channel: string, game: string): Promise<Array<Menu> | null> {
14
+ return this.menuModel
15
+ .find({
16
+ channels: getChannelRegExpFilter(channel),
17
+ })
18
+ .exec();
19
+ }
20
+ }
21
+
@@ -1,54 +1,54 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { Notification, NotificationDocument } from '../';
6
-
7
- @Injectable()
8
- export class NotificationRepository {
9
- constructor (@InjectModel(Notification.name) private notificationModel: Model<NotificationDocument>) {
10
- }
11
-
12
- async findById (id: string): Promise<Notification | null> {
13
- return this.notificationModel
14
- .findById(id)
15
- .exec();
16
- }
17
-
18
- async findAndCount (limit: number, skip: number): Promise<{
19
- items: Array<Notification>,
20
- total: number
21
- }> {
22
- const items = await this.notificationModel
23
- .find()
24
- .sort({ createDate: -1 })
25
- .limit(limit)
26
- .skip(skip)
27
- .exec();
28
-
29
- const total = await this.notificationModel
30
- .find()
31
- .countDocuments()
32
- .exec();
33
-
34
- return { items, total };
35
- }
36
-
37
- public async crateNotification (notification: Notification): Promise<Notification> {
38
- return this.notificationModel.create(notification);
39
- }
40
-
41
- async updateNotification (notificationId: string, notification: Partial<Notification>): Promise<void> {
42
- await this.notificationModel.findByIdAndUpdate(
43
- notificationId,
44
- {
45
- $set: {
46
- ...notification,
47
- },
48
- }).exec();
49
- }
50
-
51
- public async removeNotification (notificationId: string): Promise<void> {
52
- await this.notificationModel.findByIdAndDelete(notificationId);
53
- }
54
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { Notification, NotificationDocument } from '../';
6
+
7
+ @Injectable()
8
+ export class NotificationRepository {
9
+ constructor (@InjectModel(Notification.name) private notificationModel: Model<NotificationDocument>) {
10
+ }
11
+
12
+ async findById (id: string): Promise<Notification | null> {
13
+ return this.notificationModel
14
+ .findById(id)
15
+ .exec();
16
+ }
17
+
18
+ async findAndCount (limit: number, skip: number): Promise<{
19
+ items: Array<Notification>,
20
+ total: number
21
+ }> {
22
+ const items = await this.notificationModel
23
+ .find()
24
+ .sort({ createDate: -1 })
25
+ .limit(limit)
26
+ .skip(skip)
27
+ .exec();
28
+
29
+ const total = await this.notificationModel
30
+ .find()
31
+ .countDocuments()
32
+ .exec();
33
+
34
+ return { items, total };
35
+ }
36
+
37
+ public async crateNotification (notification: Notification): Promise<Notification> {
38
+ return this.notificationModel.create(notification);
39
+ }
40
+
41
+ async updateNotification (notificationId: string, notification: Partial<Notification>): Promise<void> {
42
+ await this.notificationModel.findByIdAndUpdate(
43
+ notificationId,
44
+ {
45
+ $set: {
46
+ ...notification,
47
+ },
48
+ }).exec();
49
+ }
50
+
51
+ public async removeNotification (notificationId: string): Promise<void> {
52
+ await this.notificationModel.findByIdAndDelete(notificationId);
53
+ }
54
+ }
@@ -1,20 +1,20 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectModel } from '@nestjs/mongoose';
3
- import { Model } from 'mongoose';
4
-
5
- import { Premium, PremiumDocument } from '..';
6
- import { getChannelRegExpFilter } from '../utils';
7
-
8
- @Injectable()
9
- export class PremiumRepository {
10
- constructor (@InjectModel(Premium.name) private premiumModel: Model<PremiumDocument>) {
11
- }
12
-
13
- async findPremium (channel: string, game: string): Promise<Array<Premium> | null> {
14
- return this.premiumModel
15
- .find({
16
- channels: getChannelRegExpFilter(channel),
17
- })
18
- .exec();
19
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectModel } from '@nestjs/mongoose';
3
+ import { Model } from 'mongoose';
4
+
5
+ import { Premium, PremiumDocument } from '..';
6
+ import { getChannelRegExpFilter } from '../utils';
7
+
8
+ @Injectable()
9
+ export class PremiumRepository {
10
+ constructor (@InjectModel(Premium.name) private premiumModel: Model<PremiumDocument>) {
11
+ }
12
+
13
+ async findPremium (channel: string, game: string): Promise<Array<Premium> | null> {
14
+ return this.premiumModel
15
+ .find({
16
+ channels: getChannelRegExpFilter(channel),
17
+ })
18
+ .exec();
19
+ }
20
20
  }