mirror of
https://github.com/turt2live/matrix-dimension.git
synced 2024-10-01 01:05:53 -04:00
4965b61f2d
This still doesn't allow editing, but it supports showing the widgets at least.
35 lines
1.1 KiB
TypeScript
35 lines
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;
|
|
} |