mirror of
https://github.com/openstf/stf
synced 2025-10-04 10:19:30 +02:00
51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
var util = require('util')
|
|
|
|
var syrup = require('syrup')
|
|
|
|
var logger = require('../../../util/logger')
|
|
|
|
module.exports = syrup()
|
|
.dependency(require('../support/http'))
|
|
.dependency(require('./input'))
|
|
.define(function(options, http, input) {
|
|
var log = logger.createLogger('device:plugins:browsers')
|
|
|
|
log.info('Fetching browser list')
|
|
return input.getBrowsers()
|
|
.then(function(browsers) {
|
|
var icons = Object.create(null)
|
|
|
|
browsers.apps.forEach(function(app) {
|
|
icons[app.component] = app.icon.toBuffer()
|
|
app.icon = util.format(
|
|
'%s/api/v1/browsers/%s/icon'
|
|
, http.get('public url')
|
|
, app.component
|
|
)
|
|
})
|
|
|
|
http.get(
|
|
'/api/v1/browsers/:package/:activity/icon'
|
|
, function(req, res) {
|
|
var component = util.format(
|
|
'%s/%s'
|
|
, req.params.package
|
|
, req.params.activity
|
|
)
|
|
|
|
var icon = icons[component]
|
|
|
|
if (icon) {
|
|
res.set('Content-Type', 'image/png')
|
|
res.set('Content-Length', icon.length)
|
|
res.send(200, icon)
|
|
}
|
|
else {
|
|
res.send(404)
|
|
}
|
|
}
|
|
)
|
|
|
|
return browsers
|
|
})
|
|
})
|