The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/app/apps/lib/misc/formatAppInstanceForRest.ts

27 lines
983 B

import { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus';
import { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata';
import { AppLicenseValidationResult } from '@rocket.chat/apps-engine/server/marketplace/license';
import { ProxiedApp } from '@rocket.chat/apps-engine/server/ProxiedApp';
import { IAppStorageItem } from '@rocket.chat/apps-engine/server/storage';
export interface IAppInfoRest extends IAppInfo {
status: AppStatus;
languages: IAppStorageItem['languageContent'];
licenseValidation?: AppLicenseValidationResult;
}
export function formatAppInstanceForRest(app: ProxiedApp): IAppInfoRest {
const appRest: IAppInfoRest = {
...app.getInfo(),
status: app.getStatus(),
languages: app.getStorageItem().languageContent,
};
const licenseValidation = app.getLatestLicenseValidationResult();
if (licenseValidation.hasErrors || licenseValidation.hasWarnings) {
appRest.licenseValidation = licenseValidation;
}
return appRest;
}