31 lines
903 B
JavaScript
31 lines
903 B
JavaScript
|
const { Service } = require('flitter-di')
|
||
|
const Routine = require('../classes/routine/Routine')
|
||
|
|
||
|
/*
|
||
|
* routines Service
|
||
|
* -------------------------------------------------------------
|
||
|
* This is a service file that will be made available through Flitter's
|
||
|
* dependency injector to the rest of the application based on its given
|
||
|
* canonical name.
|
||
|
*
|
||
|
* e.g. app.di().service("routines")
|
||
|
*/
|
||
|
class RoutinesService extends Service {
|
||
|
static get services() {
|
||
|
return [...super.services, 'app', 'configs', 'hosts']
|
||
|
}
|
||
|
|
||
|
async get(name) {
|
||
|
this.app.make(Routine)
|
||
|
const config = this.configs.get(`routines:${name}`)
|
||
|
const hosts = {}
|
||
|
for ( const host_name of config.hosts ) {
|
||
|
hosts[host_name] = await this.hosts.get(host_name)
|
||
|
}
|
||
|
|
||
|
return new Routine(hosts, config, config.type)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = exports = RoutinesService
|