matrix-dimension/src-ts/integrations/Integration.ts
Travis Ralston 4965b61f2d Re-wire the UI to support the new backend
This still doesn't allow editing, but it supports showing the widgets at least.
2017-12-20 21:28:43 -07:00

35 lines
No EOL
1.1 KiB
TypeScript

import { IntegrationRecord } from "../db/models/IntegrationRecord";
export class Integration {
// These are meant to be set by the underlying integration
public category: "bot" | "complex-bot" | "bridge" | "widget";
public type: string;
public requirements: IntegrationRequirement[];
public isEncryptionSupported = false;
// These are meant to be set by us
public displayName: string;
public avatarUrl: string;
public description: string;
public isEnabled: boolean;
public isPublic: boolean;
constructor(record: IntegrationRecord) {
this.type = record.type;
this.displayName = record.name;
this.avatarUrl = record.avatarUrl;
this.description = record.description;
this.isEnabled = record.isEnabled;
this.isPublic = record.isPublic;
}
}
export interface IntegrationRequirement {
condition: "publicRoom" | "canSendEventTypes";
argument: any;
// For publicRoom this is true or false (boolean)
// For canSendEventTypes this is an array of {isState: boolean, type: string}
// For userInRoom this is the user ID
expectedValue: any;
}