@@ -12,6 +12,29 @@ export const getLeaderboardRankResponseSchema = Joi.array()
12
12
)
13
13
. required ( ) ;
14
14
15
+ export const postLeaderboardSchema = Joi . object ( {
16
+ id : Joi . number ( ) . optional ( ) ,
17
+ name : Joi . string ( ) . required ( ) ,
18
+ scoreStrategy : Joi . string ( )
19
+ . valid ( ...Object . values ( ScoreStrategy ) )
20
+ . optional ( ) ,
21
+ resetStrategy : Joi . string ( )
22
+ . valid ( ...Object . values ( ResetStrategy ) )
23
+ . optional ( ) ,
24
+ } ) . required ( ) ;
25
+
26
+ export const leaderboardSchema = Joi . object ( {
27
+ id : Joi . number ( ) ,
28
+ name : Joi . string ( ) ,
29
+ scoreStrategy : Joi . string ( ) ,
30
+ resetStrategy : Joi . string ( ) ,
31
+ _gameTypeId : Joi . number ( ) ,
32
+ createdAt : Joi . date ( ) ,
33
+ updatedAt : Joi . date ( ) ,
34
+ } ) . optional ( ) ;
35
+
36
+ export const multipleLeaderboardSchema = Joi . array ( ) . items ( leaderboardSchema ) . optional ( ) ;
37
+
15
38
export const getUserLeaderboardResultScoreResponseSchema = Joi . object ( {
16
39
id : Joi . number ( ) . required ( ) ,
17
40
_leaderboardEntryId : Joi . number ( ) . required ( ) ,
@@ -28,6 +51,10 @@ export const getLeaderboardResultScorePageSchema = Joi.object({
28
51
_leaderboardResultsMeta : Joi . array ( ) . items ( Joi . object ( ) ) . optional ( ) ,
29
52
} ) . optional ( ) ;
30
53
54
+ export const multipleLeaderboardResultScoreSchema = Joi . array ( )
55
+ . items ( getLeaderboardResultScorePageSchema )
56
+ . optional ( ) ;
57
+
31
58
export const postLeaderboardResultScoreResquestSchema = Joi . object ( {
32
59
id : Joi . number ( ) . optional ( ) ,
33
60
score : Joi . number ( ) . required ( ) ,
@@ -45,28 +72,30 @@ export const postLeaderboardResultScoreResponseSchema = Joi.object({
45
72
newEntry : Joi . boolean ( ) . required ( ) ,
46
73
} ) . required ( ) ;
47
74
48
- export const postLeaderboardSchema = Joi . object ( {
49
- id : Joi . number ( ) . optional ( ) ,
50
- name : Joi . string ( ) . required ( ) ,
51
- scoreStrategy : Joi . string ( )
52
- . valid ( ...Object . values ( ScoreStrategy ) )
53
- . optional ( ) ,
54
- resetStrategy : Joi . string ( )
55
- . valid ( ...Object . values ( ResetStrategy ) )
75
+ export const updateLeaderboardResultRequestSchema = Joi . object ( {
76
+ id : Joi . number ( ) . required ( ) ,
77
+ score : Joi . number ( ) . required ( ) ,
78
+ _leaderboardResultsMeta : Joi . array ( )
79
+ . items (
80
+ Joi . object ( {
81
+ attribute : Joi . string ( ) . required ( ) ,
82
+ value : Joi . string ( ) . required ( ) ,
83
+ } )
84
+ )
56
85
. optional ( ) ,
57
86
} ) . required ( ) ;
58
87
59
- export const leaderboardSchema = Joi . object ( {
60
- id : Joi . number ( ) ,
61
- name : Joi . string ( ) ,
62
- scoreStrategy : Joi . string ( ) ,
63
- resetStrategy : Joi . string ( ) ,
64
- _gameTypeId : Joi . number ( ) ,
65
- createdAt : Joi . date ( ) ,
66
- updatedAt : Joi . date ( ) ,
67
- } ) . optional ( ) ;
68
-
69
- export const multipleLeaderboardSchema = Joi . array ( ) . items ( leaderboardSchema ) . optional ( ) ;
70
- export const multipleLeaderboardResultScoreSchema = Joi . array ( )
71
- . items ( getLeaderboardResultScorePageSchema )
72
- . optional ( ) ;
88
+ export const updateLeaderboardResultResponseSchema = Joi . object ( {
89
+ id : Joi . number ( ) . required ( ) ,
90
+ score : Joi . number ( ) . required ( ) ,
91
+ _userId : Joi . number ( ) . required ( ) ,
92
+ _leaderboardEntryId : Joi . number ( ) . required ( ) ,
93
+ _leaderboardResultsMeta : Joi . array ( )
94
+ . items (
95
+ Joi . object ( {
96
+ attribute : Joi . string ( ) . required ( ) ,
97
+ value : Joi . string ( ) . required ( ) ,
98
+ } )
99
+ )
100
+ . optional ( ) ,
101
+ } ) . required ( ) ;
0 commit comments