Skip to content

Commit

Permalink
move devices endpoint from app unit to api unit
Browse files Browse the repository at this point in the history
  • Loading branch information
vbanthia committed Jul 22, 2016
1 parent 0e8b308 commit d6f3768
Show file tree
Hide file tree
Showing 5 changed files with 115 additions and 50 deletions.
1 change: 1 addition & 0 deletions lib/units/api/config/default.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ swagger:
swagger_controllers:
- onError: json_error_handler
- cors
- swagger_params_parser
- swagger_security
- _swagger_validate
- express_compatibility
Expand Down
61 changes: 61 additions & 0 deletions lib/units/api/controllers/device.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
var Promise = require('bluebird')

var dbapi = require('../../../db/api')
var logger = require('../../../util/logger')
var datautil = require('../../../util/datautil')

var log = logger.createLogger('api:contoller:device')

module.exports = {
getDevices: getDevices
, getDeviceBySerial: getDeviceBySerial
};

function getDevices(req, res) {
dbapi.loadDevices()
.then(function(cursor) {
return Promise.promisify(cursor.toArray, cursor)()
.then(function(list) {
list.forEach(function(device) {
datautil.normalize(device, req.user)
})

res.json({
success: true
, devices: list
})
})
})
.catch(function(err) {
log.error('Failed to load device list: ', err.stack)
res.json(500, {
success: false
})
})
}

function getDeviceBySerial(req, res) {
var serial = req.swagger.params.serial.value

dbapi.loadDevice(serial)
.then(function(device) {
if (device) {
datautil.normalize(device, req.user)
res.json({
success: true
, device: device
})
}
else {
res.json(404, {
success: false
})
}
})
.catch(function(err) {
log.error('Failed to load device "%s": ', req.params.serial, err.stack)
res.json(500, {
success: false
})
})
}
52 changes: 51 additions & 1 deletion lib/units/api/swagger/api_v1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ info:
contact:
url: http://openstf.io/
email: [email protected]
basePath: /api/v1/
basePath: /api/v1
schemes:
- http
- https
Expand All @@ -33,6 +33,42 @@ paths:
description: Unexpected Error
schema:
$ref: "#/definitions/ErrorResponse"
/devices:
x-swagger-router-controller: device
get:
summary: Device List
description: List of all the STF devices including Disconnected and Offline
operationId: getDevices
responses:
"200":
description: List of Devices
schema:
$ref: "#/definitions/DeviceListResponse"
default:
description: Unexpected Error
schema:
$ref: "#/definitions/ErrorResponse"
/devices/{serial}:
x-swagger-router-controller: device
get:
summary: Device Information
description: Device Information
operationId: getDeviceBySerial
parameters:
- name: serial
in: path
description: Device Serial
required: true
type: string
responses:
"200":
description: Device Information
schema:
$ref: "#/definitions/DeviceResponse"
default:
description: Unexpected Error
schema:
$ref: "#/definitions/ErrorResponse"

definitions:
UserResponse:
Expand All @@ -41,6 +77,20 @@ definitions:
properties:
user:
type: object
DeviceListResponse:
required:
- devices
properties:
devices:
type: array
items:
type: object
DeviceResponse:
required:
- device
properties:
device:
type: object
ErrorResponse:
required:
- message
Expand Down
47 changes: 0 additions & 47 deletions lib/units/app/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -146,53 +146,6 @@ module.exports = function(options) {
})
})

app.get('/app/api/v1/devices', function(req, res) {
dbapi.loadDevices()
.then(function(cursor) {
return Promise.promisify(cursor.toArray, cursor)()
.then(function(list) {
list.forEach(function(device) {
datautil.normalize(device, req.user)
})

res.json({
success: true
, devices: list
})
})
})
.catch(function(err) {
log.error('Failed to load device list: ', err.stack)
res.json(500, {
success: false
})
})
})

app.get('/app/api/v1/devices/:serial', function(req, res) {
dbapi.loadDevice(req.params.serial)
.then(function(device) {
if (device) {
datautil.normalize(device, req.user)
res.json({
success: true
, device: device
})
}
else {
res.json(404, {
success: false
})
}
})
.catch(function(err) {
log.error('Failed to load device "%s": ', req.params.serial, err.stack)
res.json(500, {
success: false
})
})
})

app.get('/app/api/v1/accessTokens', function(req, res) {
dbapi.loadAccessTokens(req.user.email)
.then(function(cursor) {
Expand Down
4 changes: 2 additions & 2 deletions res/app/components/stf/device/device-service.js
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ module.exports = function DeviceServiceFactory($http, socket, EnhanceDeviceServi
, digest: false
})

oboe('/app/api/v1/devices')
oboe('/api/v1/devices')
.node('devices[*]', function(device) {
tracker.add(device)
})
Expand All @@ -190,7 +190,7 @@ module.exports = function DeviceServiceFactory($http, socket, EnhanceDeviceServi
}

deviceService.load = function(serial) {
return $http.get('/app/api/v1/devices/' + serial)
return $http.get('/api/v1/devices/' + serial)
.then(function(response) {
return response.data.device
})
Expand Down

0 comments on commit d6f3768

Please sign in to comment.