Skip to content

Commit c04bb95

Browse files
committed
Made the code clean
1 parent 32f0452 commit c04bb95

File tree

5 files changed

+16
-39
lines changed

5 files changed

+16
-39
lines changed

controllers/badge.js

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
const badgeQuery = require('../models/badges')
2-
const logger = require('../utils/logger')
32

43
/**
54
* Get badges data
@@ -24,19 +23,9 @@ const getBadges = async (req, res) => {
2423
const getUserBadges = async (req, res) => {
2524
try {
2625
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')
4029
} catch (error) {
4130
logger.error(`Error while fetching all user badges: ${error}`)
4231
return res.boom.serverUnavailable('Something went wrong please contact admin')

models/badges.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,20 @@ const fetchBadges = async ({
3636

3737
const fetchUserBadges = async (username) => {
3838
try {
39+
const userBadges = []
40+
let userExists = false
3941
const result = await fetchUser({ username })
4042
if (result.userExists) {
43+
userExists = true
4144
const userID = result.user.id
4245
const snapshot = await badgeModel.get()
43-
const userBadges = []
4446
snapshot.forEach((item) => {
4547
if (item.data().users.includes(userID)) {
4648
userBadges.push({ title: item.data().title, description: item.data().description })
4749
}
4850
})
49-
return { userExists: true, userBadges: userBadges }
5051
}
51-
return { userExists: false, userBadges: [] }
52+
return { userExists: userExists, userBadges: userBadges }
5253
} catch (err) {
5354
logger.error('Error retrieving user badges', err)
5455
return err

routes/badges.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@ router.get('/', badge.getBadges)
5757
* type: array
5858
* items:
5959
* $ref: '#/components/schemas/userBadges'
60+
* 404:
61+
* description: User not found
62+
* content:
63+
* application/json:
64+
* schema:
65+
* $ref: '#/components/schemas/errors/notFound'
6066
* 503:
6167
* description: serverUnavailable
6268
* content:

test/fixtures/userBadges/userBadges.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,12 @@
77

88
const userFound = {
99
userExists: true,
10-
userBadges: [{ title: 'badgeTitle', description: 'badgeDes' }]
10+
userBadges: [{ title: 'badgeTitle', description: 'badgeDescription' }]
1111
}
1212

1313
const userNotFound = {
1414
userExists: false,
1515
userBadges: []
1616
}
1717

18-
const badgesEmpty = {
19-
userExists: true,
20-
userBadges: []
21-
}
22-
23-
module.exports = { userFound, userNotFound, badgesEmpty }
18+
module.exports = { userFound, userNotFound }

test/integration/userBadges.test.js

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ describe('User badges', function () {
3030
return done()
3131
})
3232
})
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) {
3434
sinon.stub(badges, 'fetchUserBadges').returns(userBadges.userNotFound)
3535
chai
3636
.request(app)
@@ -41,20 +41,6 @@ describe('User badges', function () {
4141
expect(res.body.error).to.equal('Not Found')
4242
expect(res.body.message).to.equal('The user does not exist')
4343

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-
5844
return done()
5945
})
6046
})

0 commit comments

Comments
 (0)