diff --git a/src/application-manager.d.ts b/src/application-manager.d.ts index 9e66ab9c..017ee832 100644 --- a/src/application-manager.d.ts +++ b/src/application-manager.d.ts @@ -1,6 +1,7 @@ import { EventEmitter } from 'events'; import { ServiceAction } from './device-api/common'; +import { DeviceApplicationState } from './types/state'; import Images = require('./compose/images'); import ServiceManager = require('./compose/service-manager'); @@ -45,7 +46,8 @@ export class ApplicationManager extends EventEmitter { public executeStepAction(serviceAction: ServiceAction, opts: Options): Promise; + public getStatus(): Promise; + } export default ApplicationManager; - diff --git a/src/device-api/v2.ts b/src/device-api/v2.ts index 50042728..6e4d0612 100644 --- a/src/device-api/v2.ts +++ b/src/device-api/v2.ts @@ -1,11 +1,11 @@ import * as Bluebird from 'bluebird'; -import { Response, Request, Router } from 'express'; +import { Request, Response, Router } from 'express'; import * as _ from 'lodash'; -import ApplicationManager from '../application-manager'; -import { doPurge, doRestart, serviceAction } from './common'; - +import { ApplicationManager } from '../application-manager'; import { appNotFoundMessage, serviceNotFoundMessage } from '../lib/messages'; +import Service from '../types/service'; +import { doPurge, doRestart, serviceAction } from './common'; export function createV2Api(router: Router, applications: ApplicationManager) { @@ -26,7 +26,7 @@ export function createV2Api(router: Router, applications: ApplicationManager) { res.status(404).send(appNotFoundMessage); return; } - const service = _.find(app.services, { imageId }); + const service = _.find(app.services, { imageId }) as Service | null; if (service == null) { res.status(404).send(serviceNotFoundMessage); return; diff --git a/src/types/state.ts b/src/types/state.ts new file mode 100644 index 00000000..621053d8 --- /dev/null +++ b/src/types/state.ts @@ -0,0 +1,16 @@ +export interface DeviceApplicationState { + local: { + [appId: string]: { + services: { + [serviceId: string]: { + status: string; + releaseId: number; + download_progress: number | null; + }; + }; + }; + }; + // TODO + dependent: any; + commit: string; +}