evrythng
Version:
Official Javascript SDK for the EVRYTHNG API.
45 lines (41 loc) • 1.13 kB
JavaScript
import Entity from './Entity'
import ReactorScript from './ReactorScript'
import ReactorSchedule from './ReactorSchedule'
import ReactorLog from './ReactorLog'
import Redirector from './Redirector'
import Resource from '../resource/Resource'
import SecretKey from './SecretKey'
import Scope from '../scope/Scope'
import { mixinResources } from '../util/mixin'
const path = '/applications'
const ApplicationResources = mixinResources([
ReactorScript,
ReactorSchedule,
ReactorLog,
Redirector,
SecretKey
])
/**
* Represents an Application entity.
*
* @extends Entity
*/
export default class Application extends ApplicationResources(Entity) {
/**
* Return simple resource factory for Applications.
*
* @static
* @return {{application: Function}}
*/
static resourceFactory () {
return {
application (id) {
// Only allowed on Entities and Resources.
if (this instanceof Scope) {
throw new Error('Application is not a top-level resource.')
}
return Resource.factoryFor(Application, path, ApplicationResources).call(this, id)
}
}
}
}