1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-04 18:29:17 +02:00

refactoring swagger

This commit is contained in:
Vishal Banthia 2015-12-08 15:58:05 +09:00
parent 26ad95a36e
commit 9de5ba5fae
5 changed files with 234 additions and 148 deletions

View file

@ -0,0 +1,77 @@
var _ = require('lodash')
var Promise = require('bluebird')
var dbapi = require('../../../db/api')
var logger = require('../../../util/logger')
var datautil = require('../../../util/datautil')
var log = logger.createLogger('api:controllers:devices')
module.exports = {
getDevices: getDevices
, getDeviceBySerial: getDeviceBySerial
}
function getDevices(req, res) {
var fields = req.swagger.params.fields.value
dbapi.loadDevices()
.then(function(cursor) {
return Promise.promisify(cursor.toArray, cursor)()
.then(function(list) {
var deviceList = []
list.forEach(function(device) {
datautil.normalize(device, req.user)
if (fields) {
device = _.pick(device, fields.split(','))
}
deviceList.push(device)
})
res.json({
success: true
, devices: deviceList
})
})
})
.catch(function(err) {
log.error('Failed to load device list: ', err.stack)
res.status(500).json({
success: false
})
})
}
function getDeviceBySerial(req, res) {
var serial = req.swagger.params.serial.value
var fields = req.swagger.params.fields.value
dbapi.loadDevice(serial)
.then(function(device) {
if (device) {
datautil.normalize(device, req.user)
if(fields) {
device = _.pick(device, fields.split(','))
}
res.json({
success: true
, device: device
})
}
else {
res.status(404).json({
success: false
, description: 'Device not found'
})
}
})
.catch(function(err) {
log.error('Failed to load device "%s": ', req.params.serial, err.stack)
res.status(500).json({
success: false
})
})
}