Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit adcd7fb

Browse files
committed
Now param method accepts a default value
param method accepts default value and added util module to manage common tasks under one file
1 parent 949a06f commit adcd7fb

File tree

6 files changed

+52
-34
lines changed

6 files changed

+52
-34
lines changed

lib/util.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
'use strict'
2+
3+
/**
4+
* adonis-framework
5+
* Copyright(c) 2015-2016 Harminder Virk
6+
* MIT Licensed
7+
*/
8+
9+
const util = exports = module.exports = {}
10+
11+
12+
/**
13+
* @description tells whether value exists or not by checking
14+
* it type
15+
* @method existy
16+
* @param {Mixed} value
17+
* @return {Boolean}
18+
*/
19+
util.existy = function (value) {
20+
return value !== undefined && value !== null
21+
}

src/Config/index.js

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
const autoLoad = require('auto-loader')
1010
const _ = require('lodash')
11+
const util = require('../../lib/util')
1112

1213
class Config {
1314

@@ -16,17 +17,6 @@ class Config {
1617
this.config = autoLoad.load(this.configPath)
1718
}
1819

19-
/**
20-
* @description tells whether value exists or not by checking
21-
* it type
22-
* @method existy
23-
* @param {Mixed} value
24-
* @return {Boolean}
25-
*/
26-
existy (value) {
27-
return value !== undefined && value !== null
28-
}
29-
3020
/**
3121
* @description get value for a given key from config store
3222
* @method get
@@ -36,9 +26,9 @@ class Config {
3626
* @public
3727
*/
3828
get (key, defaultValue) {
39-
defaultValue = this.existy(defaultValue) ? defaultValue : null
29+
defaultValue = util.existy(defaultValue) ? defaultValue : null
4030
const returnValue = _.get(this.config, key)
41-
return this.existy(returnValue) ? returnValue : defaultValue
31+
return util.existy(returnValue) ? returnValue : defaultValue
4232
}
4333

4434
/**

src/Env/index.js

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
const path = require('path')
1010
const dotenv = require('dotenv')
11+
const util = require('../../lib/util')
1112

1213
class Env {
1314

@@ -17,17 +18,6 @@ class Env {
1718
dotenv.load({path: pathToEnvFile})
1819
}
1920

20-
/**
21-
* @description tells whether value exists or not by checking
22-
* it type
23-
* @method existy
24-
* @param {Mixed} value
25-
* @return {Boolean}
26-
*/
27-
existy (value) {
28-
return value !== undefined && value !== null
29-
}
30-
3121
/**
3222
* @description get value of an existing key from
3323
* env file
@@ -37,7 +27,7 @@ class Env {
3727
* @return {Mixed}
3828
*/
3929
get (key, defaultValue) {
40-
defaultValue = this.existy(defaultValue) ? defaultValue : null
30+
defaultValue = util.existy(defaultValue) ? defaultValue : null
4131
let returnValue = process.env[key] || defaultValue
4232
if (returnValue === 'true' || returnValue === '1') {
4333
return true

src/Request/index.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const File = require('../File')
1212
const _ = require('lodash')
1313
const CatLog = require('cat-log')
1414
const log = new CatLog('adonis:framework')
15+
const util = require('../../lib/util')
1516

1617
/**
1718
* @class Request
@@ -60,9 +61,9 @@ class Request {
6061
* @public
6162
*/
6263
input (key, defaultValue) {
63-
defaultValue = defaultValue || null
64+
defaultValue = util.existy(defaultValue) ? defaultValue : null
6465
const input = this.all()
65-
return input[key] || defaultValue
66+
return util.existy(input[key]) ? input[key] : defaultValue
6667
}
6768

6869
/**
@@ -332,8 +333,9 @@ class Request {
332333
* @return {Mixed}
333334
* @public
334335
*/
335-
param (key) {
336-
return this.params()[key] || null
336+
param (key, defaultValue) {
337+
defaultValue = util.existy(defaultValue) ? defaultValue : null
338+
return util.existy(this.params()[key]) ? this.params()[key] : defaultValue
337339
}
338340

339341
/**
@@ -438,8 +440,8 @@ class Request {
438440
log.warn('Make use of Flash middleware to enable flash messaging')
439441
this._flash_messages = {}
440442
}
441-
defaultValue = defaultValue || null
442-
return this._flash_messages[key] || defaultValue
443+
defaultValue = util.existy(defaultValue) ? defaultValue : null
444+
return util.existy(this._flash_messages[key]) ? this._flash_messages[key] : defaultValue
443445
}
444446

445447
/**

src/Session/SessionManager/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const nodeCookie = require('node-cookie')
1010
const Type = require('type-of-is')
1111
const _ = require('lodash')
1212
const uuid = require('node-uuid')
13+
const util = require('../../../lib/util')
1314

1415
class SessionManager {
1516

@@ -317,9 +318,9 @@ class SessionManager {
317318
* @public
318319
*/
319320
* get (key, defaultValue) {
320-
defaultValue = defaultValue || null
321+
defaultValue = util.existy(defaultValue) ? defaultValue : null
321322
const sessionValues = yield this.all()
322-
return sessionValues[key] || defaultValue
323+
return util.existy(sessionValues[key]) ? sessionValues[key] : defaultValue
323324
}
324325

325326
/**

test/unit/request.spec.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,7 @@ describe('Request', function () {
524524
expect(res.body.id).to.equal(1)
525525
})
526526

527-
it('should return request null when param value for a given key does not exists', function * () {
527+
it('should return null when param value for a given key does not exists', function * () {
528528
const server = http.createServer(function (req, res) {
529529
const request = new Request(req, res, Config)
530530
request._params = {id:1}
@@ -537,6 +537,20 @@ describe('Request', function () {
537537
expect(res.body.name).to.equal(null)
538538
})
539539

540+
it('should return default value when param value for a given key does not exists', function * () {
541+
const server = http.createServer(function (req, res) {
542+
const request = new Request(req, res, Config)
543+
request._params = {id:1}
544+
const name = request.param('name', 'bar')
545+
res.writeHead(200, {"Content-type":"application/json"})
546+
res.end(JSON.stringify({name}),'utf8')
547+
})
548+
549+
const res = yield supertest(server).get("/").expect(200).end()
550+
expect(res.body.name).to.equal('bar')
551+
})
552+
553+
540554
it('should return an uploaded file as an instance of File object', function * () {
541555
const server = http.createServer(function (req, res) {
542556
var form = new formidable.IncomingForm();

0 commit comments

Comments
 (0)