File tree Expand file tree Collapse file tree 5 files changed +16
-39
lines changed Expand file tree Collapse file tree 5 files changed +16
-39
lines changed Original file line number Diff line number Diff line change 1
1
const badgeQuery = require ( '../models/badges' )
2
- const logger = require ( '../utils/logger' )
3
2
4
3
/**
5
4
* Get badges data
@@ -24,19 +23,9 @@ const getBadges = async (req, res) => {
24
23
const getUserBadges = async ( req , res ) => {
25
24
try {
26
25
const result = await badgeQuery . fetchUserBadges ( req . params . username )
27
- if ( result . userExists ) {
28
- if ( result . userBadges . length === 0 ) {
29
- return res . json ( {
30
- message : 'This user does not have any badges'
31
- } )
32
- }
33
- return res . json ( {
34
- message : 'User badges returned successfully!' ,
35
- userBadges : result . userBadges
36
- } )
37
- } else {
38
- return res . boom . notFound ( 'The user does not exist' )
39
- }
26
+ return result . userExists
27
+ ? res . json ( { message : 'User badges returned successfully!' , userBadges : result . userBadges } )
28
+ : res . boom . notFound ( 'The user does not exist' )
40
29
} catch ( error ) {
41
30
logger . error ( `Error while fetching all user badges: ${ error } ` )
42
31
return res . boom . serverUnavailable ( 'Something went wrong please contact admin' )
Original file line number Diff line number Diff line change @@ -36,19 +36,20 @@ const fetchBadges = async ({
36
36
37
37
const fetchUserBadges = async ( username ) => {
38
38
try {
39
+ const userBadges = [ ]
40
+ let userExists = false
39
41
const result = await fetchUser ( { username } )
40
42
if ( result . userExists ) {
43
+ userExists = true
41
44
const userID = result . user . id
42
45
const snapshot = await badgeModel . get ( )
43
- const userBadges = [ ]
44
46
snapshot . forEach ( ( item ) => {
45
47
if ( item . data ( ) . users . includes ( userID ) ) {
46
48
userBadges . push ( { title : item . data ( ) . title , description : item . data ( ) . description } )
47
49
}
48
50
} )
49
- return { userExists : true , userBadges : userBadges }
50
51
}
51
- return { userExists : false , userBadges : [ ] }
52
+ return { userExists : userExists , userBadges : userBadges }
52
53
} catch ( err ) {
53
54
logger . error ( 'Error retrieving user badges' , err )
54
55
return err
Original file line number Diff line number Diff line change @@ -57,6 +57,12 @@ router.get('/', badge.getBadges)
57
57
* type: array
58
58
* items:
59
59
* $ref: '#/components/schemas/userBadges'
60
+ * 404:
61
+ * description: User not found
62
+ * content:
63
+ * application/json:
64
+ * schema:
65
+ * $ref: '#/components/schemas/errors/notFound'
60
66
* 503:
61
67
* description: serverUnavailable
62
68
* content:
Original file line number Diff line number Diff line change 7
7
8
8
const userFound = {
9
9
userExists : true ,
10
- userBadges : [ { title : 'badgeTitle' , description : 'badgeDes ' } ]
10
+ userBadges : [ { title : 'badgeTitle' , description : 'badgeDescription ' } ]
11
11
}
12
12
13
13
const userNotFound = {
14
14
userExists : false ,
15
15
userBadges : [ ]
16
16
}
17
17
18
- const badgesEmpty = {
19
- userExists : true ,
20
- userBadges : [ ]
21
- }
22
-
23
- module . exports = { userFound, userNotFound, badgesEmpty }
18
+ module . exports = { userFound, userNotFound }
Original file line number Diff line number Diff line change @@ -30,7 +30,7 @@ describe('User badges', function () {
30
30
return done ( )
31
31
} )
32
32
} )
33
- it ( 'Should return a not found message if the user in not found' , function ( done ) {
33
+ it ( 'Should return a not found message if the user is not found' , function ( done ) {
34
34
sinon . stub ( badges , 'fetchUserBadges' ) . returns ( userBadges . userNotFound )
35
35
chai
36
36
. request ( app )
@@ -41,20 +41,6 @@ describe('User badges', function () {
41
41
expect ( res . body . error ) . to . equal ( 'Not Found' )
42
42
expect ( res . body . message ) . to . equal ( 'The user does not exist' )
43
43
44
- return done ( )
45
- } )
46
- } )
47
- it ( 'Should return no badges found if the user does not have any badges' , function ( done ) {
48
- sinon . stub ( badges , 'fetchUserBadges' ) . returns ( userBadges . badgesEmpty )
49
- chai
50
- . request ( app )
51
- . get ( '/badges/someuser' )
52
- . end ( ( err , res ) => {
53
- if ( err ) { return done ( ) }
54
- expect ( res ) . to . have . status ( 200 )
55
- expect ( res . body ) . to . be . a ( 'object' )
56
- expect ( res . body . message ) . to . equal ( 'This user does not have any badges' )
57
-
58
44
return done ( )
59
45
} )
60
46
} )
You can’t perform that action at this time.
0 commit comments