Skip to content

Commit 3c22e2d

Browse files
committed
Updating UT's and removing some mkdocs tests for travis
1 parent c8edbd1 commit 3c22e2d

File tree

8 files changed

+113
-89
lines changed

8 files changed

+113
-89
lines changed

.travis.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ install:
55
- npm install
66
- npm install -g codecov
77
- npm install -g nyc
8-
- mkdir site
9-
- touch site/index.html
108
services:
119
- postgresql
1210
- docker

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[![Build Status](https://travis-ci.org/CodeForBaltimore/Bmore-Responsive.svg?branch=master)](https://travis-ci.org/CodeForBaltimore/Bmore-Responsive) [![codecov](https://codecov.io/gh/CodeForBaltimore/Bmore-Responsive/branch/master/graph/badge.svg)](https://codecov.io/gh/CodeForBaltimore/Bmore-Responsive) [![GitHub release](https://img.shields.io/github/release/Naereen/StrapDown.js.svg)](https://github.com/CodeForBaltimore/Bmore-Responsive/releases) [![Open Source Love svg1](https://badges.frapsoft.com/os/v1/open-source.svg?v=103)](https://github.com/ellerbrock/open-source-badges/)
1+
[![Build Status](https://travis-ci.org/CodeForBaltimore/Bmore-Responsive.svg?branch=master)](https://travis-ci.org/CodeForBaltimore/Bmore-Responsive) [![codecov](https://codecov.io/gh/CodeForBaltimore/Bmore-Responsive/branch/master/graph/badge.svg)](https://codecov.io/gh/CodeForBaltimore/Bmore-Responsive) [![Open Source Love svg1](https://badges.frapsoft.com/os/v1/open-source.svg?v=103)](https://github.com/ellerbrock/open-source-badges/)
22

33
# Bmore Responsive
44
A simple, flexible API to support emergency response coordination. Sample use cases include:

src/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import nunjucks from 'nunjucks'
88
import requestId from 'express-request-id'
99
import rateLimit from 'express-rate-limit'
1010
import routes from './routes'
11-
import serveIndex from 'serve-index'
1211
import swaggerDocument from '../swagger.json'
1312
import swaggerUi from 'swagger-ui-express'
1413
import utils from './utils'
@@ -20,7 +19,7 @@ const swaggerOptions = {
2019
}
2120
const apiLimiter = rateLimit({
2221
windowMs: 15 * 60 * 1000, // 15 minutes
23-
max: 1000
22+
max: 100
2423
})
2524

2625
nunjucks.configure('mail_templates', { autoescape: true })
@@ -38,7 +37,8 @@ if (process.env.NODE_ENV === 'production') app.use(apiLimiter)
3837
// Custom middleware
3938
app.use(async (req, res, next) => {
4039
req.context = {
41-
models
40+
models,
41+
// e: await utils.loadCasbin()
4242
}
4343

4444
next()

src/models/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const sequelize = new Sequelize(
3333
{
3434
logging: false,
3535
dialect: 'postgres',
36-
dialectOptions: dialectOptions
36+
dialectOptions
3737
}
3838
)
3939
const basename = path.basename(__filename)

src/routes/user-role.js

Lines changed: 76 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -7,95 +7,94 @@ router.use(utils.authMiddleware)
77
// Gets all roles.
88
router.get('/', async (req, res) => {
99
const response = new utils.Response()
10-
try {
11-
const e = await utils.loadCasbin()
12-
const rolesRaw = await e.getNamedPolicy('p')
13-
const roles = {}
14-
15-
16-
for (const role of rolesRaw) {
17-
if (roles[role[0]] !== undefined) {
18-
roles[role[0]].push({
19-
path: role[1],
20-
method: role[2]
21-
})
22-
} else {
23-
roles[role[0]] = [{
24-
path: role[1],
25-
method: role[2]
26-
}]
27-
}
28-
}
29-
30-
31-
response.setMessage(roles)
32-
} catch (e) {
33-
console.error(e)
34-
response.setCode(500)
35-
}
36-
37-
return res.status(response.getCode()).send(response.getMessage())
10+
try {
11+
const e = await utils.loadCasbin()
12+
const rolesRaw = await e.getNamedPolicy('p')
13+
const roles = {}
14+
15+
16+
for (const role of rolesRaw) {
17+
if (roles[role[0]] !== undefined) {
18+
roles[role[0]].push({
19+
path: role[1],
20+
method: role[2]
21+
})
22+
} else {
23+
roles[role[0]] = [{
24+
path: role[1],
25+
method: role[2]
26+
}]
27+
}
28+
}
29+
30+
31+
response.setMessage(roles)
32+
} catch (e) {
33+
console.error(e)
34+
response.setCode(500)
35+
}
36+
37+
return res.status(response.getCode()).send(response.getMessage())
3838
})
3939

4040
// Creates a new role.
4141
router.post('/', async (req, res) => {
4242
const response = new utils.Response()
43-
try {
44-
const { role, path, method } = req.body
45-
46-
if (role && path && method) {
47-
let added = false
48-
49-
const e = await utils.loadCasbin()
50-
const p = [role, path, method]
51-
added = await e.addPolicy(...p)
52-
53-
if (added) {
54-
55-
response.setMessage('policy created')
56-
} else {
57-
response.setCode(400)
58-
}
59-
} else {
60-
response.setCode(400)
61-
}
62-
63-
} catch (e) {
64-
console.error(e)
65-
response.setCode(500)
66-
}
67-
68-
return res.status(response.getCode()).send(response.getMessage())
43+
try {
44+
const { role, path, method } = req.body
45+
46+
if (role && path && method) {
47+
let added = false
48+
49+
const e = await utils.loadCasbin()
50+
const p = [role, path, method]
51+
added = await e.addPolicy(...p)
52+
53+
if (added) {
54+
55+
response.setMessage('policy created')
56+
} else {
57+
response.setCode(400)
58+
}
59+
} else {
60+
response.setCode(400)
61+
}
62+
63+
} catch (e) {
64+
console.error(e)
65+
response.setCode(500)
66+
}
67+
68+
return res.status(response.getCode()).send(response.getMessage())
6969
})
7070

7171
// Deletes a role.
7272
router.post('/delete', async (req, res) => {
7373
const response = new utils.Response()
74-
try {
74+
try {
7575
const { role, path, method } = req.body
7676

77-
if (role && path && method) {
78-
let removed = false
79-
80-
const e = await utils.loadCasbin()
81-
const p = [role, path, method]
82-
removed = await e.removePolicy(...p)
83-
84-
if (removed) {
85-
86-
response.setMessage('policy deleted')
87-
} else {
88-
response.setCode(400)
89-
}
90-
} else {
91-
response.setCode(400)
92-
}
93-
} catch (e) {
94-
console.error(e)
95-
response.setCode(500)
96-
}
97-
98-
return res.status(response.getCode()).send(response.getMessage())
77+
if (role && path && method) {
78+
let removed = false
79+
80+
const e = await utils.loadCasbin()
81+
const p = [role, path, method]
82+
removed = await e.removePolicy(...p)
83+
84+
if (removed) {
85+
response.setMessage('policy deleted')
86+
} else {
87+
response.setCode(400)
88+
}
89+
} else {
90+
response.setCode(400)
91+
}
92+
} catch (e) {
93+
console.error(e)
94+
response.setCode(500)
95+
}
96+
97+
return res.status(response.getCode()).send(response.getMessage())
9998
})
10099

101100
export default router

src/routes/user.js

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const router = new Router()
88
const max = (process.env.NODE_ENV !== 'production') ? 50000 : 5
99
const loginLimiter = rateLimit({
1010
windowMs: 60 * 60 * 1000,
11-
max: max,
11+
max,
1212
message: "Too many login attempts for this IP. Please try again later."
1313
})
1414

@@ -149,7 +149,12 @@ router.post('/', utils.authMiddleware, async (req, res) => {
149149
if (roles !== undefined) {
150150
const e = await utils.loadCasbin()
151151
for (const role of roles) {
152-
await e.addRoleForUser(email.toLowerCase(), role)
152+
await e.addRoleForUser(email.toLowerCase(), role)
153+
// await req.context.models.UserRole.create({
154+
// ptype: 'g',
155+
// v0: email.toLowerCase(),
156+
// v1: role
157+
// })
153158
}
154159
}
155160

@@ -233,8 +238,16 @@ router.delete('/:email', utils.authMiddleware, async (req, res) => {
233238
})
234239

235240
const e = await utils.loadCasbin()
236-
await e.deleteRolesForUser(req.params.email.toLowerCase())
237-
241+
await e.deleteRolesForUser(req.params.email.toLowerCase())
242+
// const roles = await req.context.models.UserRole.findAll({
243+
// where: {
244+
// v0: req.params.email.toLowerCase()
245+
// }
246+
// })
247+
248+
// for (const role of roles) {
249+
// await role.destroy()
250+
// }
238251

239252
await user.destroy()
240253

src/tests/entity.routes.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ describe('Entity positive tests', () => {
177177
done()
178178
})
179179
})
180-
it('should not get a single contact with valid UUID', done => {
180+
it('should not get a single entity with valid UUID', done => {
181181
request(app)
182182
.get(`/entity/${uuid()}`)
183183
.set('Accept', 'application/json')

src/utils/login.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,11 @@ class Login {
7979

8080
const e = await utils.loadCasbin()
8181
await e.addRoleForUser(this.user.email.toLowerCase(), this.role)
82+
// await models.UserRole.create({
83+
// ptype: 'g',
84+
// v0: this.email.toLowerCase(),
85+
// v1: this.role
86+
// })
8287
}
8388

8489
/**
@@ -93,6 +98,15 @@ class Login {
9398

9499
const e = await utils.loadCasbin()
95100
await e.deleteRolesForUser(this.user.email.toLowerCase())
101+
// const roles = await models.UserRole.findAll({
102+
// where: {
103+
// v0: this.email.toLowerCase()
104+
// }
105+
// })
106+
107+
// for (const role of roles) {
108+
// await role.destroy()
109+
// }
96110

97111
await user.destroy()
98112
}

0 commit comments

Comments
 (0)