@@ -48,45 +48,54 @@ export async function getDatabaseUsers(): Promise<User[]> {
48
48
export async function checkForSuspiciousActivity ( ) : Promise < any [ ] > {
49
49
try {
50
50
const users = await getUsersFromMongo ( { softDeleted : { $ne : true } } )
51
- const suspiciousUsers = users . filter ( user => {
52
- if ( user . tokens . length < 10 ) return false
51
+ const suspiciousUsers = users
52
+ . filter ( ( user ) => {
53
+ if ( user . tokens . length < 10 ) return false
53
54
54
- const sortedTokens = user . tokens . sort ( ( a , b ) =>
55
- DateTime . fromISO ( b . claimedAt ) . toMillis ( ) - DateTime . fromISO ( a . claimedAt ) . toMillis ( )
56
- )
55
+ const sortedTokens = user . tokens . sort (
56
+ ( a , b ) =>
57
+ DateTime . fromISO ( b . claimedAt ) . toMillis ( ) -
58
+ DateTime . fromISO ( a . claimedAt ) . toMillis ( )
59
+ )
57
60
58
- let consecutiveQuickClaims = 0
59
- let suspiciousTokens = [ ]
60
- for ( let i = 1 ; i < sortedTokens . length ; i ++ ) {
61
- const timeDiff = DateTime . fromISO ( sortedTokens [ i - 1 ] . claimedAt ) . diff (
62
- DateTime . fromISO ( sortedTokens [ i ] . claimedAt ) , 'seconds'
63
- ) . seconds
61
+ let consecutiveQuickClaims = 0
62
+ let suspiciousTokens = [ ]
63
+ for ( let i = 1 ; i < sortedTokens . length ; i ++ ) {
64
+ const timeDiff = DateTime . fromISO ( sortedTokens [ i - 1 ] . claimedAt ) . diff (
65
+ DateTime . fromISO ( sortedTokens [ i ] . claimedAt ) ,
66
+ 'seconds'
67
+ ) . seconds
64
68
65
- if ( timeDiff < 5 ) {
66
- consecutiveQuickClaims ++
67
- suspiciousTokens . push ( sortedTokens [ i ] )
68
- if ( consecutiveQuickClaims >= 9 ) {
69
- suspiciousTokens . push ( sortedTokens [ i - 1 ] ) // Add the 10th token
70
- return true
69
+ if ( timeDiff < 5 ) {
70
+ consecutiveQuickClaims ++
71
+ suspiciousTokens . push ( sortedTokens [ i ] )
72
+ if ( consecutiveQuickClaims >= 9 ) {
73
+ suspiciousTokens . push ( sortedTokens [ i - 1 ] ) // Add the 10th token
74
+ return true
75
+ }
76
+ } else {
77
+ consecutiveQuickClaims = 0
78
+ suspiciousTokens = [ ]
71
79
}
72
- } else {
73
- consecutiveQuickClaims = 0
74
- suspiciousTokens = [ ]
75
80
}
76
- }
77
81
78
- return false
79
- } ) . map ( user => ( {
80
- userId : user . userId ,
81
- score : user . score ,
82
- suspiciousTokens : user . tokens
83
- . sort ( ( a , b ) => DateTime . fromISO ( b . claimedAt ) . toMillis ( ) - DateTime . fromISO ( a . claimedAt ) . toMillis ( ) )
84
- . slice ( 0 , 10 )
85
- . map ( token => ( {
86
- code : token . code ,
87
- claimedAt : token . claimedAt
88
- } ) )
89
- } ) )
82
+ return false
83
+ } )
84
+ . map ( ( user ) => ( {
85
+ userId : user . userId ,
86
+ score : user . score ,
87
+ suspiciousTokens : user . tokens
88
+ . sort (
89
+ ( a , b ) =>
90
+ DateTime . fromISO ( b . claimedAt ) . toMillis ( ) -
91
+ DateTime . fromISO ( a . claimedAt ) . toMillis ( )
92
+ )
93
+ . slice ( 0 , 10 )
94
+ . map ( ( token ) => ( {
95
+ code : token . code ,
96
+ claimedAt : token . claimedAt
97
+ } ) )
98
+ } ) )
90
99
91
100
return suspiciousUsers
92
101
} catch ( error ) {
@@ -95,15 +104,24 @@ export async function checkForSuspiciousActivity(): Promise<any[]> {
95
104
}
96
105
}
97
106
98
- export async function softDeleteUserById ( userId : string ) : Promise < SoftDeleteResult > {
107
+ export async function softDeleteUserById (
108
+ userId : string
109
+ ) : Promise < SoftDeleteResult > {
99
110
try {
100
111
const user = await softDeleteUser ( userId )
101
112
if ( ! user ) {
102
113
return { success : false , message : `User ${ userId } not found` }
103
114
}
104
- return { success : true , message : `User ${ userId } has been soft deleted` , user }
115
+ return {
116
+ success : true ,
117
+ message : `User ${ userId } has been soft deleted` ,
118
+ user
119
+ }
105
120
} catch ( error ) {
106
121
console . log ( `Error soft deleting user ${ userId } :` , error )
107
- return { success : false , message : 'An error occurred while soft deleting the user' }
122
+ return {
123
+ success : false ,
124
+ message : 'An error occurred while soft deleting the user'
125
+ }
108
126
}
109
127
}
0 commit comments