@opinio-dev/models 1.2.0 → 1.2.1-item-details.1
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/types/ratings/LeaderboardItem.d.ts +5 -1
- package/dist/types/ratings/LeaderboardSnapshot.d.ts +9 -3
- package/dist/validation/ratings/LeaderboardItemValidator.d.ts +2 -2
- package/dist/validation/ratings/LeaderboardItemValidator.js +3 -3
- package/dist/validation/ratings/LeaderboardSnapshotValidator.js +3 -3
- package/package.json +1 -1
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import { Item } from '../items/Item';
|
|
2
|
+
export interface ILeaderboardItemStored {
|
|
2
3
|
id: string;
|
|
3
4
|
itemId: string;
|
|
4
5
|
rank: number;
|
|
5
6
|
rating: number;
|
|
6
7
|
numberOfRatings: number;
|
|
7
8
|
}
|
|
9
|
+
export interface ILeaderboardItem extends ILeaderboardItemStored {
|
|
10
|
+
itemDetails: Item;
|
|
11
|
+
}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { ItemType } from '../items/ItemType.js';
|
|
2
|
-
import { ILeaderboardItem } from './LeaderboardItem.js';
|
|
3
|
-
|
|
2
|
+
import { ILeaderboardItem, ILeaderboardItemStored } from './LeaderboardItem.js';
|
|
3
|
+
interface IBaseLeaderboardSnapshot {
|
|
4
4
|
id: string;
|
|
5
5
|
itemType: ItemType;
|
|
6
|
-
leaderboardItems: ILeaderboardItem[];
|
|
7
6
|
date: Date;
|
|
8
7
|
}
|
|
8
|
+
export interface ILeaderboardSnapshotStored extends IBaseLeaderboardSnapshot {
|
|
9
|
+
items: ILeaderboardItemStored[];
|
|
10
|
+
}
|
|
11
|
+
export interface ILeaderboardSnapshot extends IBaseLeaderboardSnapshot {
|
|
12
|
+
items: ILeaderboardItem[];
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ILeaderboardItem } from '../../types/ratings/LeaderboardItem.js';
|
|
2
2
|
import { BaseValidator } from '../BaseValidator.js';
|
|
3
3
|
/**
|
|
4
|
-
* A validator for
|
|
4
|
+
* A validator for leaderboardItems.
|
|
5
5
|
*/
|
|
6
6
|
export declare class LeaderboardItemValidator extends BaseValidator<ILeaderboardItem> {
|
|
7
7
|
/**
|
|
8
8
|
* @inheritdoc
|
|
9
9
|
*/
|
|
10
|
-
protected _validateFields(
|
|
10
|
+
protected _validateFields(item: Partial<ILeaderboardItem>): Record<string, string>;
|
|
11
11
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { BaseValidator } from '../BaseValidator.js';
|
|
2
2
|
/**
|
|
3
|
-
* A validator for
|
|
3
|
+
* A validator for leaderboardItems.
|
|
4
4
|
*/
|
|
5
5
|
export class LeaderboardItemValidator extends BaseValidator {
|
|
6
6
|
/**
|
|
7
7
|
* @inheritdoc
|
|
8
8
|
*/
|
|
9
|
-
_validateFields(
|
|
10
|
-
const { id, itemId, rank, rating, numberOfRatings } =
|
|
9
|
+
_validateFields(item) {
|
|
10
|
+
const { id, itemId, rank, rating, numberOfRatings } = item;
|
|
11
11
|
const errors = {};
|
|
12
12
|
if (!id) {
|
|
13
13
|
errors.id = 'Rating id is required';
|
|
@@ -8,7 +8,7 @@ export class LeaderboardSnapshotValidator extends BaseValidator {
|
|
|
8
8
|
* @inheritdoc
|
|
9
9
|
*/
|
|
10
10
|
_validateFields(leaderboardSnapshot) {
|
|
11
|
-
const { id, itemType,
|
|
11
|
+
const { id, itemType, items, date } = leaderboardSnapshot;
|
|
12
12
|
const errors = {};
|
|
13
13
|
if (!id) {
|
|
14
14
|
errors.id = 'Rating id is required';
|
|
@@ -19,8 +19,8 @@ export class LeaderboardSnapshotValidator extends BaseValidator {
|
|
|
19
19
|
if (itemType && !ItemTypes.includes(itemType)) {
|
|
20
20
|
errors.itemType = `LeaderboardSnapshot itemType must be one of: ${ItemTypes.join(', ')}`;
|
|
21
21
|
}
|
|
22
|
-
if (!
|
|
23
|
-
errors.
|
|
22
|
+
if (!items) {
|
|
23
|
+
errors.items = 'Leaderboard items are required';
|
|
24
24
|
}
|
|
25
25
|
if (!date) {
|
|
26
26
|
errors.date = 'Rating date is required';
|