var util = require('util') var uuid = require('uuid') var _ = require('lodash') var dbapi = require('../db/api') var devices = require('stf-device-db/dist/devices-latest') module.exports.generate = function(wantedModel) { var serial = util.format( 'fake-%s' , uuid.v4(null, new Buffer(16)).toString('base64') ) return dbapi.saveDeviceInitialState(serial, { provider: { name: 'FAKE/1' , channel: '*fake' } , status: 'OFFLINE' }) .then(function() { var model = wantedModel || _.sample(Object.keys(devices)) return dbapi.saveDeviceIdentity(serial, { platform: 'Android' , manufacturer: 'Foo Electronics' , operator: 'Loss Networks' , model: model , version: '4.1.2' , abi: 'armeabi-v7a' , sdk: 8 + Math.floor(Math.random() * 12) , display: { density: 3 , fps: 60 , height: 1920 , id: 0 , rotation: 0 , secure: true , url: '/404.jpg' , width: 1080 , xdpi: 442 , ydpi: 439 } , phone: { iccid: '1234567890123456789' , imei: '123456789012345' , network: 'LTE' , phoneNumber: '0000000000' } , product: model }) }) .then(function() { return dbapi.setDeviceAbsent(serial) }) .return(serial) }